Skip to content

This Kotlin-based Android app uses the Unsplash API to display random photos, browse by category, download images, and view photo details

Notifications You must be signed in to change notification settings

hossein69ameri/WallpaperApp

Repository files navigation

WallpaperApp

This Android application, built with Kotlin and powered by the Unsplash API, allows users to explore and download stunning photos. It features random photo display, categorized photo lists, and detailed photo information, offering a seamless experience with modern technology integration.

Screen Shot

wall2.webm

Technologies

  • MVVM Architecture
  • Kotlin Coroutines
  • Kotlin Flow
  • LiveData
  • Single activity pattern
  • REST API
  • Safe Args
  • Kotlin Parcelize
  • Pagination
  • Shimmer RecyclerView
  • Base Activity ,Fragment
  • Dependency injection

Built with

Kotlin - First class and official programming language for Android development.

Shimmer RecyclerView - A custom Shimmer RecyclerView which adopt to list / grid transition automatically and also supports multiple view types while shimmering.

RotateView - For Rotate Image.

KenBurnsView - Android ImageViews animated by Ken Burns Effect.

Font Calligraphy - View Inflation you can intercept.

Retrofit + OkHttp - RESTful API and networking client.

Hilt - Dependency injection.

ViewBinding - View binding is a feature that allows you to more easily write code that interacts with views.

Android Architecture Components - A collections of libraries that help you design robust, testable, and maintainable apps.

ViewModel - UI related data holder, lifecycle aware.

Navigation component - Fragment routing handler.

Coroutines - Concurrency design pattern for asynchronous programming.

Flow - Stream of value that returns from suspend function.

Coil - Image loading.

DynamicSize - New units of measure for support all of screen devices.

Architectures

android-mvvm-architecture

  • View: The purpose of this layer is to inform the ViewModel about the user’s action. This layer observes the ViewModel and does not contain any kind of application logic.

  • ViewModel: It exposes those data streams which are relevant to the View. Moreover, it serves as a link between the Model and the View.

  • Model: This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data.

Contact

Have a project? DM me at

hossein.arabameri69@gmail.com

Acknowledgments

Special thanks to Mr Mohammad Nouri for providing the course that helped me.

About

This Kotlin-based Android app uses the Unsplash API to display random photos, browse by category, download images, and view photo details

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages