SearchBooks is an app built with Jetpack Compose and architecture of MVVM + MVI.
This sample showcases:
-
Books screen : the list of new books
-
Search of books screen : the list of searched books
- Support keyword for search
- addition operation: android|java
- subtraction operation : android-java
- direct search : "android-java"
- Support Infinite scroll
- when scroll meets the 5th item from the bottom, to load more items
- Support keyword for search
-
Support caching
- Improved loading speed by caching (sqlite and memory)
- the flow of to get list of new books
- memory caching
- database caching (sqlite-room)
- remote data
- the flow of to get details of a book
- database caching (sqlite-room)
- remote data
- the search method has no cached
- the flow of to get list of new books
- Improved loading speed by caching (sqlite and memory)
-
Details of a book screen: the details of a selected book
-
Support android instrumented test
Full video : https://youtu.be/RB_gvO5JI5M
- jacoco coverage
- report badge
- CI with github actions
- CD with firebase
The project is layered with a View, Presentation, Model separation and presents a blend between MVVM and MVI.
Architecture layers:
- View
- ViewModel
- Model
- android instrumented test
- android unit test
- UI
- Language
- DI
- Database
- Jetpack
- Network