{"id":20064090,"url":"https://github.com/hossein69ameri/wallpaperapp","last_synced_at":"2026-04-17T18:02:52.267Z","repository":{"id":258227380,"uuid":"870588115","full_name":"hossein69ameri/WallpaperApp","owner":"hossein69ameri","description":"This Kotlin-based Android app uses the Unsplash API to display random photos, browse by category, download images, and view photo details","archived":false,"fork":false,"pushed_at":"2024-10-16T06:47:22.000Z","size":6033,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-02T10:41:52.082Z","etag":null,"topics":["android","coil","hilt","kotlin","mvvm","pagination","picture","wallpaper","wallpaper-app","xml"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hossein69ameri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-10T10:08:03.000Z","updated_at":"2024-10-16T13:35:09.000Z","dependencies_parsed_at":"2024-10-18T08:04:25.291Z","dependency_job_id":null,"html_url":"https://github.com/hossein69ameri/WallpaperApp","commit_stats":null,"previous_names":["hossein69ameri/wallpaperapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hossein69ameri/WallpaperApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein69ameri%2FWallpaperApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein69ameri%2FWallpaperApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein69ameri%2FWallpaperApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein69ameri%2FWallpaperApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hossein69ameri","download_url":"https://codeload.github.com/hossein69ameri/WallpaperApp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein69ameri%2FWallpaperApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31939788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","coil","hilt","kotlin","mvvm","pagination","picture","wallpaper","wallpaper-app","xml"],"created_at":"2024-11-13T13:44:45.395Z","updated_at":"2026-04-17T18:02:52.252Z","avatar_url":"https://github.com/hossein69ameri.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WallpaperApp\nThis Android application, built with Kotlin and powered by the [Unsplash API](https://unsplash.com/), 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.\n\n# Screen Shot\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/27668d88-071f-407b-9405-e19a5bac7282\" data-canonical-src=\"https://gyazo.com/eb5c5741b6a9a16c692170a41a49c858.png\" width=\"300\" height=\"600\" /\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/42f4b999-5739-43ab-a966-f7d29b7fbe7e\" data-canonical-src=\"https://gyazo.com/eb5c5741b6a9a16c692170a41a49c858.png\" width=\"300\" height=\"600\" /\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/e6ca74e8-d76f-4a75-bca4-ab466ffa0c52\" data-canonical-src=\"https://gyazo.com/eb5c5741b6a9a16c692170a41a49c858.png\" width=\"300\" height=\"600\" /\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/5e60edaf-54da-4b47-b11c-178f7002eb46\" data-canonical-src=\"https://gyazo.com/eb5c5741b6a9a16c692170a41a49c858.png\" width=\"300\" height=\"600\" /\u003e\n\u003c/div\u003e\n\n[wallpaper.webm](https://github.com/user-attachments/assets/71af986c-2ea2-419e-a6d7-d7a7147e8ef9)\n\n# Technologies\n\n* MVVM Architecture\n* Kotlin Coroutines\n* Kotlin Flow\n* LiveData\n* Single activity pattern\n* REST API\n* Safe Args\n* Kotlin Parcelize\n* Pagination\n* Shimmer RecyclerView\n* Base Activity ,Fragment\n* Dependency injection\n\n# Built with\n[Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.\n\n[Shimmer RecyclerView](https://github.com/omtodkar/ShimmerRecyclerView) - A custom Shimmer RecyclerView which adopt to list / grid transition automatically and also supports multiple view types while shimmering.\n\n[RotateView](https://github.com/MrNouri/RotateView) - For Rotate Image.\n\n[KenBurnsView](https://github.com/flavioarfaria/KenBurnsView) - Android ImageViews animated by Ken Burns Effect.\n\n[Font Calligraphy](https://github.com/InflationX/ViewPump) - View Inflation you can intercept.\n\n[Retrofit](https://square.github.io/retrofit/) + [OkHttp](https://square.github.io/okhttp/) - RESTful API and networking client.\n\n[Hilt](https://dagger.dev/hilt/) - Dependency injection.\n\n[ViewBinding](https://developer.android.com/topic/libraries/view-binding) - View binding is a feature that allows you to more easily write code that interacts with views.\n\n[Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - A collections of libraries that help you design robust, testable, and maintainable apps.\n\n[ViewModel](https://developer.android.com/reference/androidx/lifecycle/ViewModel) - UI related data holder, lifecycle aware.\n\n[Navigation component](https://developer.android.com/guide/navigation) - Fragment routing handler.\n\n[Coroutines](https://developer.android.com/kotlin/coroutines) - Concurrency design pattern for asynchronous programming.\n\n[Flow](https://developer.android.com/kotlin/flow) - Stream of value that returns from suspend function.\n\n[Coil](https://github.com/coil-kt/coil) - Image loading.\n\n[DynamicSize](https://github.com/MrNouri/DynamicSizes) - New units of measure for support all of screen devices.\n\n# Architectures\n\n![android-mvvm-architecture](https://github.com/user-attachments/assets/9d9a470c-b022-4b78-94a1-6c60efa6fa24)\n\n* **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.\n  \n* **ViewModel**: It exposes those data streams which are relevant to the View. Moreover, it serves as a link between the Model and the View.\n\n* **Model**: This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data.\n\n# Contact\nHave a project? DM me at\n\nhossein.arabameri69@gmail.com\n\n# Acknowledgments\nSpecial thanks to [Mr Mohammad Nouri](https://github.com/MrNouri) for providing the course that helped me.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhossein69ameri%2Fwallpaperapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhossein69ameri%2Fwallpaperapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhossein69ameri%2Fwallpaperapp/lists"}