A Kotlin Multiplatform app (Android and iOS) that shows learning cards in a full-screen vertical pager. The cards are filled with artworks from a public museum collection API.
Built in February 2024 (21 and 22 Feb). The project grew out of the Kotlin Multiplatform "museum" sample (the first data class was renamed from Museum to Question).
- One Compose Multiplatform UI in
commonMainfor both platforms. Each platform has a thin entry point:MainActivityon Android andMainViewControlleron iOS. - A vertical, snapping pager for a short-video style feed, and a list screen with overlapping image cards.
- Ktor with kotlinx.serialization for networking, and Kamel for async image loading.
- Koin for dependency injection, Voyager for screen models and navigation, and moko-resources for strings.
- SQLDelight with platform
DriverFactoryimplementations. So far only the tutorial schema is wired in.
Kotlin 1.9, Compose Multiplatform 1.5, Ktor 2, Koin, Voyager, Kamel, SQLDelight 2, Gradle (version catalog). Android min SDK 24, plus an iOS app.
Open the project in Android Studio or Fleet with the Kotlin Multiplatform plugin. Run composeApp on Android, or open iosApp in Xcode for iOS.
The local import feature and the database layer never went past scaffolding, and there are no tests. Today I would define the shared domain and a test suite in commonMain before building screens.