Progressive Migration Your Native Android App to iOS with Compose Multiplatform

Discover how to gradually transform your Android app into a full Compose Multiplatform project, without breaking functionality along the way. This ebook guides you step by step, showing how to keep adding features, maintain a working Android version, and ultimately rise with an iOS-ready app from the same evolving codebase.

Codelab Objectives

In this codelab, you’ll explore:

  • Set up a KMP shared module to support Android and iOS
  • Use umbrella modules to manage shared dependencies and avoid iOS framework duplication
  • Identify and migrate platform-agnostic business models and utility classes to commonMain
  • Migrate domain logic and repository contracts while ensuring platform independence
  • Move data, business, and presentation layers to the shared module
  • Replace platform-specific networking (e.g., Retrofit) with KMP-compatible Ktor library
  • Use Kotlinx Serialization for cross-platform JSON parsing
  • Migrate Room database to Kotlin Multiplatform using KSP and commonMain setup
  • Adapt Room DAOs for KMP by replacing unsupported return types like Flow
  • Inject platform-specific Room database instances from Android and iOS into the shared module
  • Replace non-KMP-compatible DI frameworks (Hilt) with KMP-ready tools like Koin
  • Use Kotlin Coroutines and Flow to manage shared asynchronous state across Android and iOS
  • Use Compose Multiplatform to share UI code when needed

Codelab Content

Meet the instructor

Ioannis Anifantakis

Content Author & Course Instructor

More courses by the instructor