This is currently a playground to get to know with Kotlin Mobile Multiplatform in combination with a shared Jetpack Compose UI.
Service | Status |
---|---|
- | - |
Because of the complexity a non-dependency approach as iOS has is not possible. The following dependencies are required to run the app:
- KotlinX coroutines as a foundation (X means extension)
- Ktor for Network requests and parsing
- Ballast for Jetpack Compose navigation
- Coil used to fetch remote images
- Setup shared ui
:shared:commonMain
to contain Jetpack Compose ui - Setup
:shared:androidMain
to containerizes and use:shared:commonMain
ui - Setup
:shared:iOSMain
to containerizes and use:shared:commonMain
ui - Setup a new
:desktopApp
that must use shared ui - Strip down
:androidApp
to use shared ui - Strip down
:iOSApp
app to use shared ui - Get rid of
:iOSApp
build log flodding
- Add in-app navigation feature (screen transitations)
- Add fetching local data (first screen, csv)
- Add fetching remote data (second screen, json)
- Add fetching remore assets (second screen, article images)
- Add user default persisted flags (third screen)
- Create a fake but real world example of an app ui
- Evaluate how the translation from Android MD3 controls like
BottomBar
works in iOS - Evaluate how it would be possible to create "custom" ui for each platform but use it in
:shared:commonMain
- Check how's the memory consumption
- Check if there is no memory leakage
Main feature
- Added
RemoteImage
asactual
andexpected
implementation - Fixed list / scrolling insets
- Dynamic tab view selection handling
UI
Main feature
- Added Ktor to fetch and parse JSON data
- Added
HttpClientFactory
asactual
andexpected
implementation - Added "open in external app" sample
UI
Main feature
- Added
ResourceReader
asactual
andexpected
implementation - Added CSV parsing for German license plate names
- Added more "complex" UI with keyboard events
UI
Main feature
Project setup and basic Jetpack Compose UI sharing between :androidApp
, :iosApp
and :shared
UI
- David Herman for helping me with all Kotlin
- Adrian Witaszak for helping me to get started with KMM and shared ui
- Marcel Reiter for showing me how to work with Jetpack Compose shenanigans
If you wanna talk about Kotlin, KMM, Shared Compose UI, Jetpack Compose pr Jetpack Compose for Web, I would highly recommend to join David's tiny but awesome Discord server for his awesome CfW-enhancing web framework called Kobweb. I never meet such brilliant folks that are not too "good" to help beginners.
This project is licensed under the MIT License - see the LICENSE file for details. Dependencies or assets maybe licensed differently.