{"id":15068793,"url":"https://github.com/anitaa1990/github-trending-repos","last_synced_at":"2025-04-09T08:12:50.491Z","repository":{"id":117940211,"uuid":"165803236","full_name":"anitaa1990/Github-Trending-Repos","owner":"anitaa1990","description":"An Android App that lists the most trending repositories from Github.","archived":false,"fork":false,"pushed_at":"2025-01-30T09:21:58.000Z","size":5710,"stargazers_count":62,"open_issues_count":2,"forks_count":25,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-09T08:12:44.392Z","etag":null,"topics":["android","android-app","android-application","android-studio","dagger2-android","dagger2-mvvm","databinding","java8","kotlin-android","mvvm-architecture","offline-first","repository-pattern","rxjava2-dagger2-retrofit2"],"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/anitaa1990.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":"2019-01-15T07:13:23.000Z","updated_at":"2025-02-06T01:35:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"ada68d39-2fde-4992-af76-1034ae5bcbeb","html_url":"https://github.com/anitaa1990/Github-Trending-Repos","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/anitaa1990%2FGithub-Trending-Repos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FGithub-Trending-Repos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FGithub-Trending-Repos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anitaa1990%2FGithub-Trending-Repos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anitaa1990","download_url":"https://codeload.github.com/anitaa1990/Github-Trending-Repos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999864,"owners_count":21031046,"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-app","android-application","android-studio","dagger2-android","dagger2-mvvm","databinding","java8","kotlin-android","mvvm-architecture","offline-first","repository-pattern","rxjava2-dagger2-retrofit2"],"created_at":"2024-09-25T01:39:18.282Z","updated_at":"2025-04-09T08:12:50.475Z","avatar_url":"https://github.com/anitaa1990.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Github Trending Repositories in Android\n\nAn Android App that lists the most trending repositories in Android from Github.\n\n\u003cimg src=\"https://github.com/anitaa1990/Github-Trending-Repos/blob/master/media/1.gif\" width=\"200\" style=\"max-width:100%;\"\u003e   \u003cimg src=\"https://github.com/anitaa1990/Github-Trending-Repos/blob/master/media/2.gif\" width=\"200\" style=\"max-width:100%;\"\u003e\u003c/br\u003e\u003c/br\u003e\n\n#### App Features\n* Users can view the most trending repositories in Android from Github.\n* Users can filter based on language.\n* Users can share repositories they like.\n\n\n#### App Architecture \nBased on mvvm architecture and repository pattern.\n\n\u003cimg src=\"https://github.com/anitaa1990/Github-Trending-Repos/blob/master/media/3.png\" width=\"500\" style=\"max-width:500%;\"\u003e\n \n #### The app includes the following main components:\n\n* A local database that servers as a single source of truth for data presented to the user. \n* A web api service.\n* A repository that works with the database and the api service, providing a unified data interface.\n* A ViewModel that provides data specific for the UI.\n* The UI, which shows a visual representation of the data in the ViewModel.\n* Unit Test cases for API service, Database, Repository and ViewModel.\n\n\n#### App Packages\n* \u003cb\u003edata\u003c/b\u003e - contains \n    * \u003cb\u003eapi\u003c/b\u003e - contains the api classes to make api calls to FreshlyPressed server, using Retrofit. \n    * \u003cb\u003edb\u003c/b\u003e - contains the db classes to cache network data.\n    * \u003cb\u003erepository\u003c/b\u003e - contains the repository classes, responsible for triggering api requests and saving the response in the database.\n* \u003cb\u003edi\u003c/b\u003e - contains dependency injection classes, using Dagger2.   \n* \u003cb\u003eui\u003c/b\u003e - contains classes needed to display Activity.\n* \u003cb\u003eutil\u003c/b\u003e - contains classes needed for activity redirection, ui/ux animations.\n\n\n#### App Specs\n* Minimum SDK 16\n* [Java8](https://java.com/en/download/faq/java8.xml) (in [master](https://github.com/anitaa1990/Github-Trending-Repos/tree/master) branch) \u0026 [Kotlin](https://kotlinlang.org/) (in [kotlin_support](https://github.com/anitaa1990/Github-Trending-Repos/tree/kotlin_support) branch)\n* MVVM Architecture\n* Android Architecture Components (LiveData, Lifecycle, ViewModel, Room Persistence Library, ConstraintLayout)\n* [RxJava2](https://github.com/ReactiveX/RxJava) for implementing Observable pattern.\n* [Dagger 2](https://google.github.io/dagger/) for dependency injection.\n* [Retrofit 2](https://square.github.io/retrofit/) for API integration.\n* [Gson](https://github.com/google/gson) for serialisation.\n* [Okhhtp3](https://github.com/square/okhttp) for implementing interceptor, logging and mocking web server.\n* [Mockito](https://site.mockito.org/) for implementing unit test cases\n* [Picasso](http://square.github.io/picasso/) for image loading.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanitaa1990%2Fgithub-trending-repos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanitaa1990%2Fgithub-trending-repos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanitaa1990%2Fgithub-trending-repos/lists"}