Developer Advocate, JetBrains
Anton is a Developer Advocate in the Kotlin team at JetBrains. With a professional background in server-side development, Anton has been building tools for developers for more than ten years. Recognized as a Java Champion since 2014, he often presents as a speaker at large software conferences and contributes to the Kotlin YouTube channel.
Area of Expertise
AI Assistant provides AI-powered features for software development based on the JetBrains AI service. The service transparently connects you, the IDE user, to different large language models.
This session demonstrates the capabilities of AI Assistant in IntelliJ IDEA by exercising the prompts for various development workflows: explore legacy code, improve the existing code via refactoring and tests, learn new technology, or implement new functionality in your application – let’s see how the AI Assistant can improve our productivity.
Modern IDEs are quite complex. Even IDE developers say they sometimes discover new features only while reading the IDE's code.
IntelliJ IDEA is packed with useful features that enhance developer productivity and simplify working with the code. This session takes you through the cool features of IntelliJ IDEA: refactorings, shortcuts, fast navigation, code completion kung-fu, live templates, structured search, language injection, the debugger (that is a gem on its own), and other productivity features that the IDE provides.
We will also look at the latest additions to IntelliJ IDEA, including the AI assistant plugin that brings the advancements in Machine Learning closer to the developer tooling.
Historically, debuggers are used to help locate and fix bugs. Nowadays, the debugger in IntelliJ IDEA can help you do much more than that. Let's see how the debugger helps make the development process more productive. I demo various features for debugging Java applications, including not-so-standard ones, like:
* Lambda breakpoints
* Stream chain tracing
* Dropping the frame
* Emulated method breakpoint
* Evaluate and log
* Non-suspending breakpoints
* Custom data renderers and more
100% live “coding” session
When you program in your favorite IDE, the text editor enriches the code with helpful information to spot issues early in development. Code formatting, possible resource leaks, taint analysis, and vulnerabilities in project dependencies - are all useful for you as a developer to create quality code.
In this session, you will learn about the tools provided within IntelliJ IDEA to help you work with code and improve the quality of your code. This is a live coding session demonstrating various static analysis techniques. We will also explore how the same tools can be applied in the CI pipeline to build quality gates and monitor the project's health.
Programming doesn’t always have to be about mobile, web applications, and databases. Instead, let’s have some fun and use Kotlin to create something expressive, beautiful, and eye-catching.
In this session, Anton will explore Compose Multiplatform for creative coding with Kotlin. We’ll start from the basics by drawing some geometric shapes on the canvas. Then, by applying some basic math, we’ll see how geometric shapes can transform into tangible, visual artwork that you might want to put on your living room wall!
Then, we'll add some controls for the application using a MIDI keyboard and discover the possibilities for interacting with the device to control the program.
IntelliJ IDEA is packed with useful features that enhance developer productivity and simplify working with the code. This session takes you through the cool features of IntelliJ IDEA: refactorings, shortcuts, fast navigation, code completion kung-fu, live templates, structured search, dependency matrix, and other productivity tips and tricks that the IDE provides.
You will learn what the IDE offers for Spring developers, including language injection, database support, actuator integration, and project health monitoring with Qodana.
Spring Framework provides first-class support for Kotlin thanks to the features provided by the programming language. The Spring Framework uses Kotlin extension functions to add new specific conveniences to existing APIs. In this session, you will learn about the extensions and DSLs provided in Spring for Kotlin developers. Also, you will learn about Kotlin's language features that make extending the existing Java APIs possible.
Learn how to create type-safe and statically typed DSLs in Kotlin. In this session, you will learn about the language features that make DSL creation possible:
- Top-level extension functions and properties
- Trailing lambda expressions as function parameters
- SAM type conversion
- Functional literals with receiver
- Infix functions
- Standard library scope functions
- Context receivers
Step by step, using the features above, I will convert Java code based on the builder pattern into an internal Kotlin DSL. The talk highlights the specific cases for using the DSL approach in Kotlin and the tradeoffs for introducing this programming technique into the projects.
Ktor is an asynchronous web framework built using Kotlin and coroutines. It enables developers to create both server and client applications. In this session, we will focus primarily on Ktor for backend development. We’ll see what features Ktor provides and create a simple application with WebSockets and a database.
It's easy to start using Kotlin — like Java, so your experience will easily allow you to begin programming in Java style. However, learning Kotlin's best practices is a must to take full advantage of the language.
Kotlin programming language provides many features for writing concise code. On the flip side, overusing those features will result in clever code that is harder to maintain. Let’s analyze how these features could be applied in different scenarios.
This session will examine the features that make programs look beautiful and readable:
* Functions and expressions
* Extensions and standard library goodies
* Null-safety quirks & bolts
* Type-safe builders, a.k.a DSLs
Kotlin is a modern programming language initially created as a "better Java." However, Kotlin provides not just a better syntax but a ton of new interesting features. In this session, you will learn about the subset of the lesser-known features that might not be immediately useful and look obscure at first sight. How does the reified keyword in Kotlin work? What is the difference between inline and crossinline, and why is noinline required? What's the deal with context receivers, and what's the lambda with the receiver? After this session, you will have an idea about the hidden Kotlin gems features and when to apply these features.
Kotlin's standard library has a lot of useful functionality to offer. In this presentation, we will unearth some hidden gems that will come in handy the next time you write Kotlin code. Because if you know how to wield it, the Kotlin standard library is a powerful tool that can help you be more productive in solving your problems and be more expressive in your code.
Developer Advocate, JetBrains