Skip to content

IbrahimEzzatSaad/Wally

Repository files navigation

presentation.mp4

Wally

Wallpaper finder and downloader app Demonstrate the Jetpack Compose UI using Unsplash API Made with by Ibrahim Ezzat

Architecture 🗼

  • 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

Architecture

Libraries 📚

  • 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.
    • Flows - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Room - Database Library
  • Material Components for Android
    • Modular and customizable Material Design UI components for Android.
  • Dagger - Hilt - Dependency Injection Framework
  • Coil - Image loader library.

Package Structure 🗂

.
.
.
├── 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

Contribute 🤝

If you want to contribute to this app, you're always welcome!

Design ❤️

Design is inspired from @anwargul0x - Walper

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages