An overengineered android app. Meant to showcase the nice things you can use for larger apps. Primarily JetBrains/KotlinMPP focused.
Uses http://deckofcardsapi.com/ as a simple api to connect to.
- 100% Kotlin
- Kotlin DSL instead of Groovy for Gradle
- Kotlin Coroutines
- FlowBinding
- Android Architecture MVVM (using Coroutine Support)
- A local simplified MVU pattern similar to Oolong
- Ktor for http client
- KotlinXSerialization
- Glide for Images
- SqlDelight for Persistence
- Koin
- Timber for logging
- Mockk
- JUnit5
- Abstract too early
- Lasagna more than is strictly necessary
- Use big/complex systems to implement one thing, just in case it needs to be implemented many times.