Ultimate template for creating new Compose Multiplatform application for Android, iOS and Desktop.
- Generate keystore to sign app Android
- Splash screen for Android and iOS
- Icons for Android and iOS
- Homescreen shortcuts for Android and iOS
- Bundle identifier and package name
- Link Firebase project for Android and iOS
- Associate web page for deep links with app on Android and iOS
- If you use Gitlab, configure Access Token in CI/CD variables to update screenshots via pipeline
Run configurations for Jetbrains IDEs are available in the .run directory.
| Platform | Gradle task | Notes |
|---|---|---|
| Android | :composeApp:assembleDebug | This only assembles apk. Use IDE to also automatically launch |
| Android | Use run configuration to generate Baseline Profile separately | |
| JVM | :composeApp:run | |
| JVM (hot reload) | Run from IDE | |
| iOS | Run from IDE | |
| iOS - RELEASE | Run from IDE | |
| iOS (XCode) | https://stackoverflow.com/a/78334953/12021861 |
| Task | Platform | Description |
|---|---|---|
| :composeApp:assembleDebug | Android | Assembles debug apk |
| :composeApp:bundleRelease | Android | Create release bundle for store distribution. Also generates baseline profile |
| :composeApp:jvmTest | JVM | Run common (Unit and UI) and architecture tests |
| :composeApp:testDebugUnitTest | Android | Run common (Unit and UI) and screenshot tests |
| :components:jvmTest | JVM | Run common (Unit and UI) for components module |
| Type | Definition |
|---|---|
| TODO | Thing to do |
| WAIT | This change is waiting for some PR |
| RELEASE | Things to do before releasing in stores |
- Libraries
- Unstyled components
- Compose SwiftUI bridge
- Clean Architecture
- Navigation
- Primary Scaffold
- Homescreen shortcuts
- Deeplinks
- Platform Transitions
- DI
- Storage
- Network - Ktorfit
- RemoteMediator
- Logger
- Result
- Firebase Messaging for iOS and Android
- In-App-Updates on Android
- Splash screen
- KmpEssentials
- Toast
- In App Review
- Components module
- Utils
- Crashlytics
- Baseline Profile
- Tests
- CI pipelines to run tests and update screenshots
- Write tests for ScrollIndicator, WAIT takahirom/roborazzi#757 takahirom/roborazzi#754 Kotlin/kotlinx-kover#772
- Maybe use Preview annotation for screenshot tests in future
- Can't run commonTests on iOS RevenueCat/purchases-kmp#420 getsentry/sentry-kotlin-multiplatform#176
- AboutLibraries
- Detekt
- BlockHound
nowinandroid, CMPMemeCreator, Open-API-Android-App, kmp-movie, CryptoTracker, architecture-samples, Android - Clean Architecture - Kotlin, MVVMTodo, Clean-Notes, AnimeListApp, NoteAppKMM, CleanArchitectureNoteApp