The application is a simple movie searching app using Jetpack Compose. Purpose is to acquire enough knowledge that can be used in the company. Android Gradle plugin requires Java 11 to run. (Compose 100%)
- DarkTheme
- LightTheme
- Base on Google Recommended Architecture (UI Layer - Domain Layer - Data Layer) similar to Clean Architecture
- We tried to removed the Android dependency(LiveData, AAC viewModel etc...) from the ViewModel. To expand to kotlin-multi-platform(KMM) in the future.
- Using Mvvm with repository pattern (Model-View-ViewModel)
- Kotlin (Coroutine, Flow)
- Jetpack
- Compose
- Navigation
- ViewModel(AAC)
- Paging3
- Material
- Dagger-Hilt
- Retrofit
- OkHttp
- Kotlinx-serialization
- Accompanist
- SwipeRefresh
- System-ui-controller
- Coil
- Room (RemoteMediator - Room paging)
- Timber
- UnitTest
- JUnit
- Kotlinx-coroutines-test
- Truth(Google)
- Mockito
- OkHttp(MockWebServer)
- Core-testing
- AndroidTest(Instrumentation Test)
- Expresso
- Compose-ui-junit
- Hilt-android-testing
- App (UI Layer) android dependencies
- Data (Data Layer) network, datasource dependencies
- Domain (Domain Layer) Pure kotlin, java
- Base (Collection of utility functions used in UI Layer)
- build-logic (Managing dependencies using toml)
- Test-shared (Unit, Android test dependencies)
Beginner in testing(Studying...) 🙏
- Local Database (Room-Paging)
- MovieDetailScreen
- Support System Theme (Dark, Light)
- Animation
- MVI migration