1: Display scrollable list of available flowers with recyclerView(pagination)
2: Live search for a specific flower by name or latin name
3: Bottom-navigation menu, currently navigating to blank fragment
Architecture used in this project MVVM (Model-View - ViewModel).
-Fragment contains code for updating UI and registering events; In some cases, view has direct access to data values and observe for their changes.
-ViewModel contains logic and data that are used in fragment and views.
MVVM cleanly separates the user interface from the application logic.
Retrofit with Moshi for api request and converting json to Kotlin object.
Coroutines for maintaining a synchronous way of coding without dealing with hard readable callbacks.
Glide used as an Image loader.
RecyclerView is used for displaying list of flowers. At this point, RecyclerView is not necessary but, as the api data grow in the future it will be useful.
Hilt used for dependency injection
Room database
Firebase crashlytics
- Separate data layer (Network, Local)
- Update the error handling in the base classes.
- Memory management should be updated in the base fragments and viewmodels
- Use room for offline mode
- Add CI/CD