Kotlin Multiplatform project targeting Android and iOS.
:sharedis the Kotlin Multiplatform module for shared domain, data, SQLDelight, DI, and shared presentation logic.shared/src/commonMaincontains business logic, repositories, use cases, and shared presentation state.shared/src/androidMaincontains Android-specific Kotlin actuals and integrations used by the shared module.:androidAppcontains the Android application entry point, navigation shell, and Android Compose UI.shared/src/iosMaincontains iOS-specific Kotlin actuals and integrations used by the shared module.iosApp/contains the SwiftUI iOS application.
- JDK 17
- Android SDK
- Xcode and an iOS Simulator runtime for iOS builds
./gradlew :androidApp:assembleDebug./gradlew :shared:allTests :androidApp:testDebugUnitTestUse the same verification command that CI and local delivery use:
./gradlew detekt :shared:allTests :androidApp:testDebugUnitTest :androidApp:assembleDebug --no-daemonAndroid:
./gradlew :androidApp:installDebugiOS:
Open iosApp/iosApp.xcodeproj in Xcode and run the iosApp scheme on an available simulator.
The project includes optional account-backed synchronization (Firebase-backed) with a local-first working model:
- Local-only mode remains available.
- Signed-in mode keeps a local working copy and syncs with the remote account dataset.
- Reconciliation and sign-out behavior are explicit to avoid silent data loss.
Remote sync docs: