presentation.mp4
Wallpaper finder and downloader app Demonstrate the Jetpack Compose UI using Unsplash API Made with 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