- 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
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