D-KMP architecture - official sample
This is the official sample of the D-KMP architecture, presenting a simple master/detail app, for both Android and iOS.
For more info on the D-KMP Architecture, please read the relevant Medium article.
Key features of the D-KMP architecture:
- it uses the latest declarative UI toolkits: JetpackCompose for Android and SwiftUI for iOS
- it fully shares the ViewModel (and the DataLayer) via Kotlin MultiPlatform
- it implements the MVI pattern and the unidirectional data flow
- it uses Kotlin's StateFlow for the multi-platform observable mechanism
- it implements the CQRS pattern, by providing 2 types of functions to the UI layer: Events and StateProviders
Data sources used by this sample:
other popular KMP libraries for connecting to different data sources:
- local db (using SqlDelight)
- realtime db (using Firestore)
- graphQL (using Apollo GraphQL)
- device bluetooth (using Kable)