{"id":13610199,"url":"https://github.com/jaredsburrows/android-gif-search","last_synced_at":"2025-04-08T11:14:27.908Z","repository":{"id":11074709,"uuid":"61517561","full_name":"jaredsburrows/android-gif-search","owner":"jaredsburrows","description":"Gif LazyVerticalGrid MVVM using Dagger 2 + Hilt with Retrofit 2, Moshi, Kotlin Coroutines, JUnit, Espresso and Robolectric tests!","archived":false,"fork":false,"pushed_at":"2025-03-31T15:05:02.000Z","size":2823,"stargazers_count":406,"open_issues_count":4,"forks_count":49,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-01T10:09:43.104Z","etag":null,"topics":["android","android-gif","dagger2","espresso","jetpack-compose","junit","kotlin","kotlin-android","kotlin-coroutines","kotlin-dsl","ktlint","moshi","mvvm","mvvm-architecture","retrofit2","robolectric","tenor"],"latest_commit_sha":null,"homepage":"https://play.google.com/store/apps/details?id=com.burrowsapps.gif.search","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/jaredsburrows.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"jaredsburrows","patreon":"jaredsburrows","open_collective":"jaredsburrows","ko_fi":"jaredsburrows","tidelift":null,"community_bridge":null,"liberapay":"jaredsburrows","issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://paypal.me/jaredsburrows","https://venmo.com/jaredsburrows","https://cash.app/$jaredburrows","https://buymeacoffee.com/jaredsburrows"]}},"created_at":"2016-06-20T04:47:57.000Z","updated_at":"2025-03-31T15:03:55.000Z","dependencies_parsed_at":"2024-01-19T17:26:34.054Z","dependency_job_id":"33e302ad-e6d8-43ea-bd7d-4290d0562337","html_url":"https://github.com/jaredsburrows/android-gif-search","commit_stats":{"total_commits":1128,"total_committers":5,"mean_commits":225.6,"dds":0.3342198581560284,"last_synced_commit":"9b822c68243eccbc00c56edabbbef32dad58da94"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fandroid-gif-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fandroid-gif-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fandroid-gif-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredsburrows%2Fandroid-gif-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaredsburrows","download_url":"https://codeload.github.com/jaredsburrows/android-gif-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247829512,"owners_count":21002997,"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":["android","android-gif","dagger2","espresso","jetpack-compose","junit","kotlin","kotlin-android","kotlin-coroutines","kotlin-dsl","ktlint","moshi","mvvm","mvvm-architecture","retrofit2","robolectric","tenor"],"created_at":"2024-08-01T19:01:42.381Z","updated_at":"2025-04-08T11:14:27.891Z","avatar_url":"https://github.com/jaredsburrows.png","language":"Kotlin","funding_links":["https://github.com/sponsors/jaredsburrows","https://patreon.com/jaredsburrows","https://opencollective.com/jaredsburrows","https://ko-fi.com/jaredsburrows","https://liberapay.com/jaredsburrows","https://paypal.me/jaredsburrows","https://venmo.com/jaredsburrows","https://cash.app/$jaredburrows","https://buymeacoffee.com/jaredsburrows"],"categories":["Kotlin"],"sub_categories":[],"readme":"# Gif Search using Jetpack Compose + Kotlin\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n[![build](https://github.com/jaredsburrows/android-gif-search/actions/workflows/build.yml/badge.svg)](https://github.com/jaredsburrows/android-gif-search/actions/workflows/build.yml)\n[![Twitter Follow](https://img.shields.io/twitter/follow/jaredsburrows.svg?style=social)](https://twitter.com/jaredsburrows)\n\n\nGif LazyVerticalGrid MVVM using Dagger 2 + Hilt with Retrofit 2, Moshi, Kotlin Coroutines,\nJUnit, Espresso and Robolectric tests!\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://i.imgur.com/BATyXSX_d.webp?maxwidth=760\u0026fidelity=grand\" target=\"_blank\"\u003e\u003cimg src=\"https://i.imgur.com/BATyXSX_d.webp?maxwidth=760\u0026fidelity=grand\" width=\"250px\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://i.imgur.com/TXiAiS2_d.webp?maxwidth=760\u0026fidelity=grand\" target=\"_blank\"\u003e\u003cimg src=\"https://i.imgur.com/TXiAiS2_d.webp?maxwidth=760\u0026fidelity=grand\" width=\"250px\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://play.google.com/store/apps/details?id=com.burrowsapps.gif.search\"\u003e\u003cimg src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\" alt=\"Get it on Google Play\" height=\"100\"/\u003e\n\u003c/p\u003e\n\n## Build\n\n**Build the APK:**\n\n```shell\ngradlew assembleDebug\n```\n\n**Install the APK:**\n\n```shell\ngradlew installDebug\n```\n\n## Test\n\n**Run [Junit](https://junit.org/junit4/) Unit Tests:**\n\n```shell\ngradlew testDebug\n```\n\n**Run [Espresso](https://developer.android.com/training/testing/ui-testing/espresso-testing.html)\nInstrumentation Tests:**\n\n```shell\ngradlew connectedDebugAndroidTest\n```\n\n## Report\n\n**Generate [Dex Method Count](https://github.com/KeepSafe/dexcount-gradle-plugin) Report:**\n\n```shell\ngradlew countDebugDexMethods\n```\n\n**Generate [License](https://github.com/jaredsburrows/gradle-license-plugin) Report:**\n\n```shell\ngradlew licenseDebugReport\n```\n\n**Generate [Lint](https://developer.android.com/tools/help/lint.html) Report:**\n\n```shell\ngradlew lintDebug\n```\n\n## Local Debug Run\n\n```shell\ngradlew dependencyUpdates\n```\n\n```shell\nosv-scanner -r . \u0026\u0026 \\\n\ngradlew ktlintCheck \u0026\u0026 \\\ngradlew ktlintFormat \u0026\u0026 \\\n\ngradlew lintDebug \u0026\u0026 \\\ngradlew lintFixDebug  \u0026\u0026 \\\n\ngradlew testDebug\n```\n\n## License\n\n```\nCopyright (C) 2017 Jared Burrows\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   https://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredsburrows%2Fandroid-gif-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaredsburrows%2Fandroid-gif-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredsburrows%2Fandroid-gif-search/lists"}