{"id":13428770,"url":"https://github.com/patloew/countries","last_synced_at":"2025-10-08T11:15:07.178Z","repository":{"id":39617541,"uuid":"54782013","full_name":"patloew/countries","owner":"patloew","description":"An example Android app using Retrofit, Realm, Parceler, Dagger and the MVVM pattern with the data binding lib.","archived":false,"fork":false,"pushed_at":"2018-07-06T11:46:31.000Z","size":560,"stargazers_count":613,"open_issues_count":4,"forks_count":102,"subscribers_count":34,"default_branch":"kotlin","last_synced_at":"2025-05-25T12:04:06.606Z","etag":null,"topics":["android","android-architecture","android-mvvm","dagger","data-binding","gson","kotlin","kotlin-android","mvvm","mvvm-pattern","parceler","realm","retrofit"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patloew.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":"2016-03-26T14:11:54.000Z","updated_at":"2025-04-27T09:37:59.000Z","dependencies_parsed_at":"2022-09-16T14:01:05.899Z","dependency_job_id":null,"html_url":"https://github.com/patloew/countries","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patloew/countries","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patloew%2Fcountries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patloew%2Fcountries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patloew%2Fcountries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patloew%2Fcountries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patloew","download_url":"https://codeload.github.com/patloew/countries/tar.gz/refs/heads/kotlin","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patloew%2Fcountries/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278931698,"owners_count":26070800,"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-10-08T02:00:06.501Z","response_time":56,"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":["android","android-architecture","android-mvvm","dagger","data-binding","gson","kotlin","kotlin-android","mvvm","mvvm-pattern","parceler","realm","retrofit"],"created_at":"2024-07-31T01:01:04.723Z","updated_at":"2025-10-08T11:15:07.163Z","avatar_url":"https://github.com/patloew.png","language":"Kotlin","readme":"# Countries\n\n[![Build Status](https://travis-ci.org/patloew/countries.svg?branch=kotlin)](https://travis-ci.org/patloew/countries)\n\nA sample Android app written in Kotlin, which lists all countries with some additional information (currencies, languages, …). The app uses the MVVM pattern with the [Android data binding lib](http://developer.android.com/tools/data-binding/guide.html). Countries can be bookmarked and are then stored locally with [Realm](https://github.com/realm/realm-java). [Retrofit](https://github.com/square/retrofit) is used to fetch the country information from the free [REST Countries](http://restcountries.eu) service. For JSON parsing, custom [Gson](https://github.com/google/gson) TypeAdapters are used. [PaperParcel](https://github.com/grandstaish/paperparcel) is used to make the Country objects Parcelable. Also, [Dagger 2](https://github.com/google/dagger) is used for dependency injection.\n\nThe purpose of this is app is to show how:\n* [the MVVM architectural pattern can be used with the data binding library](https://nullpointer.wtf/android/mvvm-architecture-data-binding-library/)\n* [Retrofit, Realm, PaperParcel and Gson with custom TypeAdapters work together](https://nullpointer.wtf/android/using-retrofit-realm-parceler/)\n* Dagger 2 can be used with different Scopes\n\nThis project can also be used as a template for new apps. Check out the template branch for a cleaned up version of this project.\n\n# License\n\n\tCopyright 2016 Patrick Löwenstein\n\n\tLicensed under the Apache License, Version 2.0 (the \"License\");\n\tyou may not use this file except in compliance with the License.\n\tYou may obtain a copy of the License at\n\n\t    http://www.apache.org/licenses/LICENSE-2.0\n\n\tUnless required by applicable law or agreed to in writing, software\n\tdistributed under the License is distributed on an \"AS IS\" BASIS,\n\tWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\tSee the License for the specific language governing permissions and\n\tlimitations under the License.","funding_links":[],"categories":["Libraries","Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatloew%2Fcountries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatloew%2Fcountries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatloew%2Fcountries/lists"}