android-showcase
android-showcase copied to clipboard
💎 Android application following best practices: Kotlin, Coroutines, JetPack, Clean Architecture, Feature Modules, Tests, MVVM, DI, Static Analysis...
com.igorwojda.showcase E/AndroidRuntime: FATAL EXCEPTION: main Process: com.igorwojda.showcase, PID: 9269 java.lang.ExceptionInInitializerError at com.igorwojda.showcase.app.ShowcaseApplication$kodein$1.invoke(ShowcaseApplication.kt:25) at com.igorwojda.showcase.app.ShowcaseApplication$kodein$1.invoke(ShowcaseApplication.kt:20) at org.kodein.di.internal.KodeinImpl$Companion.newBuilder(KodeinImpl.kt:22) at org.kodein.di.internal.KodeinImpl$Companion.access$newBuilder(KodeinImpl.kt:21) at org.kodein.di.internal.KodeinImpl.(KodeinImpl.kt:19) at org.kodein.di.Kodein$Companion$lazy$1.invoke(Kodein.kt:447) at org.kodein.di.Kodein$Companion$lazy$1.invoke(Kodein.kt:429) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at org.kodein.di.LazyKodein.getBaseKodein(Unknown Source:2) at...
Some elements within `android` block are duplicated in each module. Ideally this configuration should be applied only once (and work all the times, even for future modules). ``` android {...
`compileOptions` and `kotlinOptions` block are duplicated in each module. Ideally this configuration should be applied only once (and work all the times, even for future modules). ``` compileOptions { sourceCompatibility...
We could add some UI test to the project (Espresso?) eg. basic tests like - run the app - navigate to details of first item - navigate to favourites/profile
Package it into an apk to install and open the program to crash (debugging is normal)
Stetho/Flipper are great tools for looking inside your Android/iOS app. But they are not tools we should leave in the app when we build a Release. Show through additional modules...
http://facebook.github.io/stetho/ is no longer being worked on. https://fbflipper.com/ is the new Stetho, also from Facebook. Replace
[ArchUnit](https://www.archunit.org/) is a framework that allows to test app architecture. It looks like it's not suited for android, so some research, experimentation and potentially contribution to `ArchUnit` may be required...
We could write custom [detekt](https://arturbosch.github.io/detekt/) rule. It can be any rule, but one example that comes to my head is rule that verifies clean architecture layers (verify `dependency rule` correctness)...