A Simple Demonstration of the New York Times App

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.

GitHub