The starting point for new KMP projects is the Kotlin Multiplatform Wizard (kmp.jetbrains.com), which generates a project structure with Android (Jetpack Compose), iOS (SwiftUI), shared logic, and your choice of networking (Ktor), local database (SQLDelight or Room multiplatform), and dependency injection (Koin or Kodein) already configured.
For teams migrating an existing Android app, the recommended approach is the 'strangler fig' pattern: create the shared KMP module alongside the existing Android app, migrate logic modules one at a time (start with data models and API clients), then build the iOS app against the shared layer in parallel. The shared layer grows over time while the Android app continues to function.
Testing is a first-class story in KMP. Kotlin test runs on all platforms. Business logic tested in the shared module is tested once, verified on both platforms. Platform-specific integration tests (camera, biometrics, push notifications) are written in the platform's native test framework and call into the shared layer.