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.

ANDROID-ROOM-DB-DIAGRAM

GitHub