Kontent is an Demo Content Browsing application using ITunesService
The project is structured with Kotlin Multiplatform in mind.
The project currently only contains two Module:
- Android App Module
- Common Module (KMM)
The common
module contains all the application logic which could be shared across multiple platforms.
TODO: Create iOS App Module to use the common module
Most Libraries used in the Project are KMM compatible:
- Ktor for Networking
- Kotlin Serializationx for Serialization
- Koin for Dependency Injection
- SqlDelight for Database Caching
- MultiplatformSettings for SharedPreferences/NSUserDefaults
The project also heavily utilizes Coroutines
and Flow
for handling states and fetching data.
The project uses MVVM architecture which utilizes Flow
instead of either LiveData
or RxJava
for its reactive components.
The project follows the recommended Android Architecture.
The Android Application is fully created with Jetpack Compose which simplifies alot of UI components and allows alot of components/composable to be much more reusable and flexible.
TODO: Create iOS App with Swift UI
- Add Unit Test, UI and Integration Test
- Review existing compose components
- Create custom theme (currently uses default theme)
- Add BuildTypes and Variants
- Create the iOS Application
A Signed APK could be retrieved here.
Note: The apk is signed with a debug key.