com.example.recipe # Root Package
βββ data # For data handling.
β
β βββ remote # Remote Data Handlers
| β βββ api # Retrofit API for remote end point.
β βββ repository # Single source of data.
|
βββ model # Model classes
|
βββ di # Dependency Injection
β βββ module # DI Modules
|
βββ ui # Activity/View layer
β βββ base # Base View
β βββ main # Main Screen Activity & ViewModel
| β βββ adapter # Adapter for RecyclerView
| β βββ viewmodel # ViewHolder for RecyclerView
β βββ details # Detail Screen Activity and ViewModel
|
βββ utils # Utility Classes / Kotlin extensions
Library | comment |
---|---|
Kotlin | First class and official programming language for Android development. |
Coroutines | For asynchronous and more. |
Android Architecture Components | Collection of libraries that help you design robust, testable, and maintainable apps. |
-------->LiveData | Data objects that notify views when the underlying database changes. |
--------->ViewModel | Stores UI-related data that isn't destroyed on UI changes. |
--------->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. |
-----------> Room | SQLite object mapping library. |
Retrofit | A type-safe HTTP client for Android and Java. |
Moshi | A modern JSON library for Kotlin and Java. |