A 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. Countries can be bookmarked and are then stored locally with Realm. Retrofit is used to fetch the country information from the free REST Countries service. For JSON parsing, custom Gson TypeAdapters are used. PaperParcel is used to make the Country objects Parcelable. Also, Dagger 2 is used for dependency injection.
The purpose of this is app is to show how:
- the MVVM architectural pattern can be used with the data binding library
- Retrofit, Realm, PaperParcel and Gson with custom TypeAdapters work together
- Dagger 2 can be used with different Scopes
This project can also be used as a template for new apps. Check out the template branch for a cleaned up version of this project.
Copyright 2016 Patrick Löwenstein
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.