An Open Source News App like Bloomberg!
- Minimum SDK level 21
- Java based, RxAndroid + LiveData for asynchronous.
- Jetpack
- Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- DataBinding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository Pattern
- Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
- gson: A Java serialization/deserialization library to convert Java Objects into JSON and back.
- Material-Components: Material design components for building ripple animation, and CardView.
- Glide: Loading images from the network.
This App is based on the MVVM architecture and the Repository pattern, which follows the Google's official architecture guidance.
The overall architecture of this App is composed of two layers; the UI layer and the data layer. Each layer has dedicated components and they have each different responsibilities.
- FCM - Remainders (Time for News)
- Periodic News refreshes using Work Manager
- Dagger
- Unit and Espresso Tests
- Animations
- Bottom Sheets
- Webscraping and WebView enhancements - Customise fonts, clean reader view, navigaions, text size
- Long Press news card to preview like instagram
- Gestures
- Foreground Service to detect news from SMS