A Kotlin first, github browsing app made to test out new Android components and ideas. Utilizes clean architecture, MVVM, and Android Jetpack/Architecture Components.
Uses Room for persistence and as the single source of truth (SSOT). The Repository layer consist solely of RxJava while the ViewModel exposes Android LiveData components for the UI.
- Navigation
- ViewModel
- LiveData
- ConstraintLayout
- SwipeRefreshLayout
- Preferences
- ViewPager2
- Material Components
- Retrofit: A type-safe HTTP client for Android and Java
- Gson: A Java serialization/deserialization library to convert Java Objects into JSON and back
- Room: The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- RxJava: A library for composing asynchronous and event-based programs by using observable sequences.
- RxAndroid: RxJava bindings for Android
- Glide: An image loading and caching library for Android focused on smooth scrolling
- Add API authentication to prevent rate limiting
- Define models separately as DTOs and Domain Models
- Establish clearer relations in Domain Models
- Add an expiration to the cache
- Add paging to home and issue pages
- Add both unit and integration tests
- Add more animations with MotionLayout