{"id":20148044,"url":"https://github.com/droiddevgeeks/githubfirebaseissue","last_synced_at":"2025-09-08T00:14:11.230Z","repository":{"id":53540909,"uuid":"242398652","full_name":"droiddevgeeks/GithubFirebaseIssue","owner":"droiddevgeeks","description":"GitHub web API to retrieve all open issues associated with the firebase-ios-sdk repository.","archived":false,"fork":false,"pushed_at":"2021-04-01T06:16:26.000Z","size":180,"stargazers_count":7,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T19:52:59.940Z","etag":null,"topics":["caching","dagger-android-injection","dagger2","dagger2-android","dagger2-mvvm","hilt-android","hilt-dependency-injection","junit-test","kotlin","kotlin-android","livedata-viewmodel","mocking-framework","mockito","mvvm-architecture","mvvm-pattern","offline","retrofit2-rxjava2","rxjava2-dagger2-retrofit2","shimmerlayout","unit-testing"],"latest_commit_sha":null,"homepage":"http://developer.github.com/v3/issues","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/droiddevgeeks.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}},"created_at":"2020-02-22T19:22:57.000Z","updated_at":"2025-04-03T09:35:54.000Z","dependencies_parsed_at":"2022-08-24T18:40:50.027Z","dependency_job_id":null,"html_url":"https://github.com/droiddevgeeks/GithubFirebaseIssue","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/droiddevgeeks/GithubFirebaseIssue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droiddevgeeks%2FGithubFirebaseIssue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droiddevgeeks%2FGithubFirebaseIssue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droiddevgeeks%2FGithubFirebaseIssue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droiddevgeeks%2FGithubFirebaseIssue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/droiddevgeeks","download_url":"https://codeload.github.com/droiddevgeeks/GithubFirebaseIssue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droiddevgeeks%2FGithubFirebaseIssue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274113636,"owners_count":25224450,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["caching","dagger-android-injection","dagger2","dagger2-android","dagger2-mvvm","hilt-android","hilt-dependency-injection","junit-test","kotlin","kotlin-android","livedata-viewmodel","mocking-framework","mockito","mvvm-architecture","mvvm-pattern","offline","retrofit2-rxjava2","rxjava2-dagger2-retrofit2","shimmerlayout","unit-testing"],"created_at":"2024-11-13T22:33:53.721Z","updated_at":"2025-09-08T00:14:11.200Z","avatar_url":"https://github.com/droiddevgeeks.png","language":"Kotlin","readme":"# Github Firebase Ios sdk Issue\nGitHub web API to retrieve all open issues associated with the firebase-ios-sdk repository.\n\n\n\nDocumentation for the GitHub issues API can be found here: http://developer.github.com/v3/issues\n\nThe URL to fetch issues associated with the firebase-ios-sdk repository can be found here: https://api.github.com/repos/firebase/firebase-ios-sdk/issues\n\nComments of an Issue: https://api.github.com/repos/firebase/firebase-ios-sdk/issues/3228/comments\n\n\nDisplay a list of issues per user\n\nOrder by most-recently updated issue first\n\nIssue titles and first 140 characters of the issue body should be shown in the list\n\nAllow the user to tap an issue to display next screen (detail screen) containing all comments for that issue.\n\nAll the comments should be shown on the detail screen. The complete comment body and username of each comment author should be shown on this screen.\n\nImplement persistent storage in the application for caching data so that the issues are only fetched once in 24 hours. The persistent storage should only contain the latest data and any old data can be discarded.\n\n\n### Libraries\n* [Android Support Library][support-lib]\n* [Android Architecture Components][arch]\n* [Android Data Binding][data-binding]\n* [Dagger 2][dagger2] for dependency injection\n* [Retrofit][retrofit] for REST api communication\n* [mockito][mockito] for mocking in tests\n\n\n[Gson](https://code.google.com/p/google-gson/) is another popular choice and being a smaller library than Jackson, you might prefer it to avoid 65k methods limitation. Also, if you are using  \n\n\u003ca name=\"networklibs\"\u003e\u003c/a\u003e\n**Networking, caching.** There are a couple of battle-proven solutions for performing requests to backend servers, which you should use rather than implementing your own client. We recommend basing your stack around [OkHttp](http://square.github.io/okhttp/) for efficient HTTP requests and using [Retrofit](http://square.github.io/retrofit/) to provide a typesafe layer. \n\n\n**RxJava** is a library for Reactive Programming, in other words, handling asynchronous events. It is a powerful paradigm, but it also has a steep learning curve. We recommend taking some caution before using this library to architect the entire application. We have written some blog posts on it: [[1]](http://blog.futurice.com/tech-pick-of-the-week-rx-for-net-and-rxjava-for-android), [[2]](http://blog.futurice.com/top-7-tips-for-rxjava-on-android), [[3]](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754), [[4]](http://blog.futurice.com/android-development-has-its-own-swift). For a reference app, our open source app [Freesound Android](https://github.com/futurice/freesound-android) makes extensive use of RxJava 2.\n\nIf you have no previous experience with Rx, start by applying it only for responses from app's backend APIs. Alternatively, start by applying it for simple UI event handling, like click events or typing events on a search field. If you are confident in your Rx skills and want to apply it to the whole architecture, then write documentation on all the tricky parts. Keep in mind that another programmer unfamiliar to RxJava might have a very hard time maintaining the project. Do your best to help them understand your code and also Rx.\n\nUse [RxAndroid](https://github.com/ReactiveX/RxAndroid) for Android threading support and [RxBinding](https://github.com/JakeWharton/RxBinding) to easily create Observables from existing Android components.\n\nA collection of samples using the [Architecture Components](https://developer.android.com/arch):\n\n- [Lifecycle-aware components](https://developer.android.com/topic/libraries/architecture/lifecycle)\n- [ViewModels](https://developer.android.com/topic/libraries/architecture/viewmodel)\n- [LiveData](https://developer.android.com/topic/libraries/architecture/livedata)\n\n\n### Test Frameworks\n\n**Use [JUnit](https://developer.android.com/training/testing/unit-testing/local-unit-tests.html) for unit testing** Plain, Android dependency-free unit testing on the JVM is best done using [Junit](https://junit.org). \n\n#### Local Unit Tests\n##### ViewModel Tests\nEach ViewModel is tested using local unit tests with mock Repository\nimplementations.\n##### Usecase Tests\nEach usecase is tested using local unit tests with mockito \u0026 junit\n##### Repository Tests\nEach Repository is tested using local unit tests with mockito \u0026 junit\n\n[Medium]https://medium.com/mindorks/effective-livedata-testing-13d17b555d9b\n\nhttps://medium.com/mindorks/unit-testing-for-viewmodel-19f4d76b20d4\n\nhttps://medium.com/mindorks/unit-testing-viewmodel-part-2-4a1fa93d656d\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroiddevgeeks%2Fgithubfirebaseissue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdroiddevgeeks%2Fgithubfirebaseissue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroiddevgeeks%2Fgithubfirebaseissue/lists"}