NY Times
NY Times is an Minimal News Android application built to describe the use of JSoup with Modern Android development tools. Made with love by Spikeysanju.
Built With
- Kotlin - First class and official programming language for Android development.
- JSoup - Open source Java HTML parser, with the best of HTML5 DOM methods and CSS selectors, for easy data extraction.
- Coroutines - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- Flow - A flow is an asynchronous version of a Sequence, a type of collection whose values are lazily produced.
- Jetpack DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Room - SQLite object mapping library.
- Jetpack Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app
- Material Components for Android - Modular and customizable Material Design UI components for Android.
Package Structure
www.thecodemonks.techbytes # Root Package
.
├── data # For data handling.
│ ├── db # Local Persistence Database. Room (SQLite) database
| │ ├── dao # Data Access Object for Room
| | |── database # Datbase Instance
|
├── model # Model classes
|
|
├── ui # Activity/View layer
│ ├── |── base # Base Activity
| │ ├── adapter # Adapter for RecyclerView
| │ └── viewmodel # Viewmodels for Articles
| │ ├── articles # Articles Fragment
| │ ├── details # Details Fragment
| │ ├── bookmarks # Bookmarks Fragment
|
|
|── utils # Utils for URls
## Architecture
This app uses MVVM (Model View View-Model) architecture.