CurrentNewsApp

This application has been developed in accordance with the Android Architectural Architecture using the Android jetpack libraries.

App Screenshots

Tech stack & Open-source Libraries

  • Minimum SDK level 26
  • 100% Kotlin based
  • Coroutines
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • A single-activity architecture, using the Navigation component to manage fragment operations.
    • LiveData - Data objects that notify views when the underlying database changes.
    • Lifecycle - perform an action when lifecycle state changes
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Repository - Located in data layer that contains application data and business logic.
  • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
  • Android Hilt - Dependency Injection Library
  • Retrofit A type-safe HTTP client for Android and Java
  • Room Local and listing of data
  • Gson Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object
  • Picasso An image loading library for Android backed by Kotlin Coroutines
  • Material Design

Package Structure

salihkinali.currentnewsapp  # Root Package
.
├── data                    # Data layer
│   ├── local               # ArticleDao,Converters and NewsDatabase     
│   ├── model               # Article, News and Source Data classes
│   ├── repository          # MainRepository
│   ├── service             # ApiHelper and ApiService
|
├── di                      # Dependency Injection              
│   │── database            # Database Module
│   │── network             # NetworkModule
│
├── ui                      # Activity/View(Ui) layer
│   ├── base                # Base Adapter and Base ViewHolder
│   ├── detail              # NewsDetail page and viewmodel
|   ├── favorite            # Favorite Page and Room Database
|   ├── home                # Home Page 
|   ├── onboarding          # Introduction of the application
|   ├── search              # Search news part of the application
|   ├── setting             # Sharing codes and getting feedback
|   ├── webview             # Referral to the original source of the news
|   
├── util                    # Util Classes / Kotlin extensions / Helper Classes