Most Active Speaker

Pavlo Stavytskyi

Pavlo Stavytskyi

Sr. Staff Software Engineer at Turo | Google Developer Expert for Android, Kotlin

San Francisco, California, United States

Pavlo is a Google Developer Expert for Android and Kotlin. He works at Turo as Sr. Staff Software Engineer. Previously he worked at Lyft on mobile infrastructure. He develops Android apps, focusing on mobile performance, developer productivity, and infrastructure.

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • Android
  • Kotlin
  • Bazel
  • Performance
  • Gradle
  • Jetpack Compose
  • Architecture
  • Developer Productivity

Designing Jetpack Compose architecture for gradual transition from Fragments

While the engineering community is excited about adopting Jetpack Compose, in reality, we all have existing codebases that rely on a legacy UI stack.

In this talk, I will share how we designed a Jetpack Compose architecture at Turo that provides seamless integration in the existing fragment-based codebase.

I will cover how we leveraged the power of Kotlin Symbol Processing (KSP) API to build an abstraction over the navigation that enables easy multi-module navigation out-of-the-box and covers the following navigation scenarios:
• fragment to compose
• compose to compose
• compose to fragment

How we reduced startup time of Turo Android app by 77%

The startup time of a mobile app is one of the most important indicators of its performance and has a significant impact on the user experience. A fast-loading app not only provides a positive first impression, but also increases engagement and retention, reduces user churn, and can improve visibility in app store rankings.

In this talk, I'm going to share how the startup time of the Turo Android app was reduced by 77%. You will learn how to apply best practices and Android developer tools to improve the startup performance of your Android apps.

Scalable multi-module architecture for Jetpack Compose apps

Jetpack Compose, navigation, multi-module architecture, API and Impl modules, dependency injection — in this talk, we will see how these components can be combined into a scalable multi-module architecture using best practices in Android development. We will also see how to use a Compose Navigation API to efficiently navigate through features in multi-module apps.

Advanced techniques for building Kotlin DSL(s)

How to create Kotlin DSL that looks like the syntax of a programming language?
In this talk, I would like to talk about advanced techniques for creating Kotlin DSL.
As an example, we will see how to build a DSL that looks like a Starlark programming language, a Python dialect used for writing build scripts for Bazel build system. This DSL is a declarative code generator that builds an abstract syntax tree of a Starlark language and then generates a formatted code based on it.
However, all the concepts described in this talk are applicable to any kind of Kotlin DSL(s) including ones for Android projects.
The example project was presented at BazelCon 2021, a Google conference about Bazel build system: https://youtu.be/dz-CFEwJuko
In addition, there is a blog post that shows the capabilities of this DSL: https://proandroiddev.com/304fa8b3680c
The source code is available on GitHub: https://github.com/Morfly/airin

Measuring CPU performance of Android apps

In this session, I'm going to talk about how at Lyft we measure the CPU performance of our apps and share our insights about it.
The main goal is to identify how much load the app puts on the CPU and how to use this information to improve its performance.
We will see, what metrics we need to collect, and how to retrieve and calculate them.

Automated migration of Android apps to Bazel build system

Migrating large projects that consist of hundreds or thousands of modules and being maintained by a large team, from Gradle to Bazel might be challenging. I would like to discuss the process of automation of the migration that includes the development and usage of a Gradle plugin as well as a type-safe and declarative Kotlin DSL for Bazel code generation.
An automated migration can save a lot of time and effort for organizations by making the transition to Bazel build system smoothly and allow to enjoy the benefits Bazel provides much sooner.
The ideas that will be discussed in this talk were used in the project for automated migration to Bazel, called Airin: https://github.com/Morfly/airin
More information about it could be found in the talk from BazelCon 2021: https://youtu.be/dz-CFEwJuko
Or in this blog post: https://proandroiddev.com/304fa8b3680c

Android Worldwide January 2024 Sessionize Event

January 2024

P99 CONF 2023 Sessionize Event

October 2023

droidcon NYC 2023 Sessionize Event

September 2023 New York City, New York, United States

mobileWeek 2023 Sessionize Event

August 2023 San Mateo, California, United States

Android Worldwide July 2023 Sessionize Event

July 2023

droidcon San Francisco 2023 Sessionize Event

June 2023 San Francisco, California, United States

Android Worldwide October 2022 Sessionize Event

October 2022

P99 CONF 2022 Sessionize Event

October 2022

droidcon NYC 2022 Sessionize Event

September 2022 New York City, New York, United States

Android Worldwide July 2022 Sessionize Event

July 2022

droidcon San Francisco 2022 Sessionize Event

June 2022 San Francisco, California, United States

BazelCon 2021

November 2021

Pavlo Stavytskyi

Sr. Staff Software Engineer at Turo | Google Developer Expert for Android, Kotlin

San Francisco, California, United States

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