#Tools and devices
- Android studio
- Emulator Nexus 5X API 30
- Emulator Pixel XL 4 API 30
#This project includes
- MVVM architecture
- Retrofit
- Coroutines
- Google hilt
- Data binding
- Live data
- UI and unit test cases. UI test cases will be green if internet is available.
- Screen rotation data persists
- network-security-config inspired from https://developer.android.com/training/articles/security-config
- Generic error handling
- Different layout for odd and even rows
- Use of Repository layer is not done. However, I have done similar code here. a. https://github.com/tauqir295/Clean-Network-Layer/tree/main/network b. https://github.com/tauqir295/CatGalleryImageSelector/tree/main/cat-gallery/src/main/java/com/gallery/cat/network
#Enhancement
- Can add configuration structure.
- Can pass base url from host app via configuration.
- Use security protocols for network calls.
- Bug fixes and ui changes can be scope for future changes.
- Release and proguard configuration.
- Remove redundant code if any.
Architecture source is inspired from android developer community https://developer.android.com/jetpack/guide
Why to use hilt and not Dagger or Koin? Hilt is built on top of the Dagger dependency injection library, providing a standard way to incorporate Dagger into an Android application. More details from android developer site - https://developer.android.com/training/dependency-injection/hilt-android#hilt-and-dagger
The proposed solution can be done in numerous ways.