- Realm Version with the implementation of PagingSource
- Room Version with the default(from room) implementation of PagingSource
- The project use Gradle Version catalog FeaturePreview versions and dependencies are in
../gradle/libs.versions.tol
- 95% of Gradle Scripts and Plugins are in
.kts
, all Plugins and Scripts are available inbuild-logic
subModule - Clean Architecture
- MVVM pattern
- Data Binding/ViewBinding
- Koin for dependency injection
- Retrofit for REST
- OkHttp as Client
- DataStore for Preferences
- Realm Kotlin SDK for local cache
- Room SDK for local cache (in
Room
branch) - Material components for styling
- StateFlows for ui updates (and SharedFlows + LiveData)
- Coroutines everywhere
- Jetpack navigation
- Picasso 🖼
- UseCase Pattern for data management
- PagingSource/PagingAdapter/PagingData
- BottomSheet and RightSheet
LeakCanary(disabled because PagingSource..)- KSP for annotation processor
- Kotlin Serialization for serialization
- Jetpack SplashScreen api
- Lottie
- Night mode auto
- Tests : junit / mockk / robolectric / kluent 😍 / turbine / jetpack scenarios / espresso / custom rules / .....
- KtLint
- Jacoco
- Github Actions
- Maestro for more Instrumental tests 😍
- many other things ....
uiBox
module is used as a custom views module for the appuiBox
module is used as a custom views module for the app- USERNAME :
admin
- PASSWORD :
admin
- Compose [Branch]
Hilt instead of Koin[Branch] (won't use Hilt since it is always in Java)
- Replace loading by Facebook Shimmer
- maybe show more information in item detail view ?
- convert project to compose 🤩
--
https://github.com/OKatrych/RightSheetBehavior
https://developer.android.com/guide/topics/ui/splash-screen