Konstantin Tskhovrebov
Compose Multiplatform @ JetBrains
10 years Android developer 4+ Kotlin developer
Kotlin Multiplatform Beyond the Basics
This is an intermediate / advanced workshop for experienced Android developers. It is aimed at engineers who have built projects with Kotlin and Jetpack Compose and now want to progress onto multiplatform application development.
The workshop is split into two parts. In the morning session, we’ll build an application entirely using Kotlin Multiplatform libraries. This will feature a Compose Multiplatform user interface, testing with kotlin.test and Kotest, and networking with Ktor and coroutines. Additional libraries will be used to show data caching, dependency injection, serialization, and more.
In the afternoon session, we’ll explore real-world issues associated with taking these kinds of applications into production. We’ll explore general issues with architecture and deployment but then shift our focus to issues specific to iOS. In particular, we’ll cover how best to package and expose Kotlin APIs to be consumed by Swift code, and vice versa. We’ll also explore how to share business logic with a SwiftUI interface, work with XCode, and distribute your application.
Morning Topics
- Review the basics of KMP development.
- Introducing the workshop sample application.
- Adding shared business logic with unit tests.
- Platform integration with expected and actual declarations.
- Extending the existing Compose Multiplatform UI.
- Interacting with services via Ktor and coroutines.
- Creating integration tests at different levels.
- Refactoring the app to use dependency injection.
- Adding client side caching to improve performance.
Afternoon Topics
- Best practices for building multiplatform applications.
- Guidelines for creating and distributing your KMP library.
- Making the most out of the existing KMP ecosystem.
- A primer for using XCode effectively in KMP apps.
- Effectively sharing Kotlin APIs with Swift codebases.
- Mixing Compose Multiplatform and SwiftUI components.
- Options for testing a Compose Multiplatform UI in iOS.
- Distributing your shared code to iOS teammates.