Speaker

Andrei Shikov

Andrei Shikov

Going fast with Kotlin

Kotlin is leaning on JVM a lot, making most Java features accessible and easy to use. Sometimes, however, this results in curiously unexpected results during execution if you are trying to optimise your library and squeeze every last ounce of performance.

Andrei spent last year optimising performance of Compose on Android. Written fully in Kotlin, it relies on performance-oriented features of the language to optimize the runtime as much as possible. This talk shares some interesting gotchas about Kotlin performance and guardrails that Compose team have setup for themselves to ensure it keeps going fast.

Improving LazyColumn performance

Do you ever look at a LazyColumn and wonder: what is going on inside? Under a simple API surface, you’ll see arguably the most complex component in the Compose UI. Few possess the knowledge about inner workings of lazy layouts that are effectively used as a performance benchmark for every layer of the framework. Do you want to peek behind the curtain and learn more?

This talk will provide a detailed description of Lazy layouts internals and performance characteristics, summarizing a year long team effort to improve composition performance. Aside from the theory and cool performance stories, you’ll also get practical tips derived from the experience of the Compose team.

Understanding Recomposition Performance Pitfalls

Did you ever have your app drop a frame? Or do you just want to achieve that buttery 60fps?

Jetpack Compose changed the way we write apps, and with that, there are also new ways to optimize performance. You will learn how to identify common issues, find the root cause and, finally, optimize your app’s code.

Through the lens of Compose internals, the talk will help you build an understanding of recomposition pitfalls related to state, stability and lambdas. Don’t know Compose in-depth yet? Don’t worry, just come along!

Thinking outside the Box: Custom Compose layouts

Jetpack Compose brought a new and simpler way of creating complex custom layouts with unique behaviors. In this talk, you’ll learn how to unlock the full potential of Compose layout system to create pixel perfect components.

We will dive deeper into advanced concepts behind building custom layouts. We will talk about the interaction between composition and layout, go over use cases for subcomposition, layout intrinsics and other intricate topics, and touch upon optimizing for performance of your custom layouts.

Performance in Compose: Lessons learned from Lazy layouts

The Compose team focused on performance extensively over the last few years. Many of the findings are documented and shared in different forms, but optimization continues to be one of the arcane arts of Compose.

In this talk, Andrei shares his own experience on optimizing Lazy layouts, focusing on the most notable tips that might help your application performance. He will provide a detailed description of Compose performance characteristics, summarizing a year long team effort to improve (re-)composition performance. Aside from the theory, you’ll also get practical tips about improving your composables derived from the experience of the Compose team.

The magic of compiler extensions

Did you know that Kotlin compiler has a plugin system which allows extend its capabilities in breathtaking ways? Many highly important first party libraries, from serialization to Android specific extensions are done exactly this way. This talk explores results of my own experiments with this system and the possibilities it opens.

Get ready for a dive into compiler structure focusing on practical extension without breaking the language rules. We will go through plugins released by the community and the current state of development for those who dare to create compiler plugins themselves. At last, you will see how the compiler plugins compare to annotation processing and understand pros and cons of each.

Eager for more? Come and listen!

Andrei Shikov

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top