{"id":13608156,"url":"https://github.com/akshay2211/ImgurSearchSample","last_synced_at":"2025-04-12T14:32:10.563Z","repository":{"id":47406297,"uuid":"306916440","full_name":"akshay2211/ImgurSearchSample","owner":"akshay2211","description":"Android Application sample based on Mvvm, Koin, LiveData, Paging, Room \u0026 Coroutines","archived":false,"fork":false,"pushed_at":"2021-09-01T17:24:09.000Z","size":6660,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T04:28:20.827Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akshay2211.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-24T15:45:31.000Z","updated_at":"2024-11-08T17:20:09.000Z","dependencies_parsed_at":"2022-08-19T18:21:16.723Z","dependency_job_id":null,"html_url":"https://github.com/akshay2211/ImgurSearchSample","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay2211%2FImgurSearchSample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay2211%2FImgurSearchSample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay2211%2FImgurSearchSample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshay2211%2FImgurSearchSample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshay2211","download_url":"https://codeload.github.com/akshay2211/ImgurSearchSample/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248581272,"owners_count":21128138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-01T19:01:24.741Z","updated_at":"2025-04-12T14:32:07.114Z","avatar_url":"https://github.com/akshay2211.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"# Imgur Search Sample\nAndroid Application sample based on Mvvm, Koin, LiveData, Paging, Room, AndroidX Preference \u0026amp; Coroutines. It requires an [Imgur.com](https://imgur.com/) API Client ID which has to be added in [Constants.kt](app/src/main/java/com/interview/project/ui/utils/Constants.kt)\n\n## It contains\n1. **Home Page**\n  * Search bar to search images via Imgur Api\n  * List of the images retrieved by local db\n2. **Inner page**\n  * Full width view of selected image\n  * Input view for local comments\n  * List of comments retried from local db\n3. **Settings**\n  * Theme selector\n  * Cache Cleaner\n\n\u003cdiv\u003e\n  \u003cimg float=left width=24% src=\"media/home-dark.png\"\u003e\n  \u003cimg float=left width=24% src=\"media/home-light.png\"\u003e\n  \u003cimg float=left width=24% src=\"media/inner-page.png\"\u003e\n  \u003cimg float=left width=24% src=\"media/theme.png\"\u003e\n\u003c/div\u003e\n\nDark theme | Light Theme | Inner page | Preference\n--- | --- | --- | ---\n\n## How it Works\nWhen text is typed in search view data is fetched from database. If data is not available in local database network call is made and inserted into local database and reflected back in UI. When image list is scrolled and all the values from database is reflected in UI another Network call is made to fetch the next page data and insert it into the database, and this process goes on. Each search is stored in key value pairs to get data which is searched before instantly.\n\n## Features\n1. ***MVVM*** architecture pattern\n2. Offline support\n3. Day Night Theme supported\n4. Option to retry when network call fails\n5. Latest AndroidX preference for settings\n6. Design compatible to both phone and tablet\n7. Infinite scroll via Paging\n8. 250ms debounce on search\n9. Pull to refersh \n\n\n## Libraries Used\n\n `Android Architecture Components`\n* LiveData\n* ViewModel\n* Paging\n* Preference\n\n `Dependency Injection`\n* Koin\n\n `Asynchronous Programming`\n* Kotlin Coroutines\n\n`Image Loading`\n* Glide\n \n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshay2211%2FImgurSearchSample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshay2211%2FImgurSearchSample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshay2211%2FImgurSearchSample/lists"}