presentation.mp4
Wallpaper finder and downloader app Demonstrate the Jetpack Compose UI using Unsplash API Made by Ibrahim Ezzat
- Single Activity No Fragment
- MVVM Pattern
View: Renders UI and delegates user actions to ViewModel
ViewModel: Can have simple UI logic but most of the time just gets the data from UseCase.
UseCase: Contains all business rules and they written in the manner of single responsibility principle.
Repository: Single source of data. Responsible for getting data from one or more data sources.
For more information you can check Guide to app architecture
- Kotlin - First class and official programming language for Android development.
- Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
- Coroutines - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- Material Components for Android
- Modular and customizable Material Design UI components for Android.
- Dagger - Hilt - Dependency Injection Framework
- Coil - Image loader library.
.
.
.
├── Data
| ├── API # RetroFit
| ├── paging # Paging3 - RemoteMediator - Pager
| ├── cache # Room Database
| └── di # Hilt Dependency Injection
|
|
├── Domain
| ├── Repository # Repository interface
| |
| └── UseCases # App UseCases
|
├── UI
| ├── theme # Compose Theme
| |
| ├── component # UI components composables
| |
| ├── navigation # NavigationHost & Destinations
| |
| ├── model # Model for ViewModel & Categories List
| |
| └── screens # UI Screens
|
├── utils # Useful classes
|
└── APP.kt # @HiltAndroidApp
If you want to contribute to this app, you're always welcome!
Design is inspired from @anwargul0x - Walper