Rental Search - Android Application
High Level Requirements:
- Application for Phone/Tablets with 4 screens
- Screen 1 - Get Region as input
- Screen 2 - Get Number of Rooms as input
- Screen 3 - Get Rent Per Week as input
- Screen 4 - Show search results
Use of open source libraries are allowed. Design and implementations are open to engineering/dev teams. Assume standard Non-Functional requirements * No ANRs, * No config change crashes * Handle connectivity errors * Be good to Doze/Strict Modes
Objective:
- Demonstrate how to use MVVM with Jetpack Libraries - ViewModel, Navigation, Data Binding, Hilt
- Use Clean Architecture to demonstrate Testability and Separation of Concerns
- Note: Excuse the UI/UX - The focus is only on Clean Architecutre
Change Log:
- Initial commit with auto-generated code
- Added desugaring library to compile against Java 11
- Added Logging - logback-android
- Changed source library src/main/kotlin
- Added presentation module for ViewModels
- Added fragments for other search inputs and results
- Added Navigation library with safeargs
- Enabled click listener for "Next" button for navigation
- Updated ReadMe.txt
- ViewModel is now shared
- Added other modules with respective dependencies
- Enabled Up navigation
TODO:
- Use View/Data binding and update layouts
- Use RecyclerView with dummy data for search results
- Use Retrofit to get dummy data via network
- Use Room to save network / dummy data
- Use Coroutines to get data from room and update with fresh network calls
Nice to have:
- Option to save/favorite search queries
- Display favorite queries in first screen
- Background fetching for favorite queries via WorkManager
- Notify user for changes in favorite query search results
- Use Splash API