countries - An example Android app using Retrofit, Realm, Parceler, Dagger and the MVVM pattern with the data binding lib

  •        125

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. 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.

https://github.com/patloew/countries

Tags
Implementation
License
Platform

   




Related Projects

Theatre - Pet project using Clean Architecture + MVVM + Reactive Extensions + Android Architecture Components

  •    Kotlin

Pet project using Clean Architecture + MVVM + Reactive Extensions + Android Architecture Components. The data is fetched from LondonTheatreDirect API. The overriding rule of this architecture says that the source code dependencies always point inwards. The outer tiers can only dependent of inner tiers. Therefore, the inner tiers know nothing about the outer tiers. The more further you go through the concentric circles, the higher level the software becomes. Which means that the level of abstraction increases.

YoutubeUX - With MVVM Architecture pattern using Android Architecture Components This is a sample app demonstrating Youtube player animation using constraint layout

  •    Kotlin

This video demonstarte the app animation. The app uses ViewModel to abstract the data from UI and MovieRepository as single source of truth for data. MovieRepository first fetch the data from database if exist than display data to the user and at the same time it also fetches data from the webservice and update the result in database and reflect the changes to UI from database.

android-showcase - 💎Android application following best practices: Kotlin, coroutines, Clean Architecture, feature modules, tests, MVVM, static analysis

  •    Kotlin

Showcase is a sample project that presents modern, 2019 approach to Android application development using Kotlin and latest tech-stack. The goal of the project is to demonstrate best practices, provide a set of guidelines, and present modern Android application architecture that is modular, scalable, maintainable and testable. This application may look simple, but it has all of these small details that will set the rock-solid foundation of the larger app suitable for bigger teams and long application lifecycle. Many of the project design decisions follow official Google recommendations.

People-MVVM - Android Sample to explain Model View View Model and DataBinding in android applications

  •    Java

Example android Model View View Model and DataBinding used to explain how to use this pattern in our android applications. This example was created to support an article explanation Escribiendo android apps con Data Binding (spanish) and also it was created for a talk MVVM-android Meetup Androidinights by GDG Androidtitlan Mexico City March 2016.

ChangeDetection - Automatically track websites changes on Android in background.

  •    Kotlin

This app also showcases all the Android Architecture Components working together: Room, ViewModels, LiveData, Paging, WorkManager and Navigation. The app uses a Model-View-ViewModel (MVVM) architecture for the presentation layer. Each of the fragments corresponds to a MVVM View. The View and ViewModel communicate using LiveData and general good principles.


OfflineSampleApp - Sample Offline-First MVVM app that uses Android Priority Job Queue, Room, Retrofit2, LiveData, LifecycleObserver, RxJava2, Dagger Android

  •    Java

Offline App (or Offline-First App) enables user to seamlessly interact with it by using local device storage and then synchronizing the data with some remote storage (cloud database, etc) later via a background process. This app is a working sample that showcases one way of implementing offline commenting capability on Android platform. Users' comments are stored in local Room database first. Then a background job is spawned to synchronize local data with remote database if and when Internet connection is available.

Posts - A sample Android app using Kotlin, Dagger 2, RxJava, RxAndroid, Retrofit and Android Architecture Components with a modular setup & effective networking

  •    Kotlin

A sample app to demonstrate the building of a good, modular and scalable Android app using Kotlin, Android Architecture Components (LiveData, ViewModel & Room), Dagger, RxJava and RxAndroid among others. Effective Networking - Using a combination of Retrofit, Rx, Room and LiveData, we are able to handle networking in the most effective way.

AndroidArchitecture - Recommended architecture by Android

  •    Java

Recommended architecture by Android. This repo shows that how to use LiveData, Room Persistence, Dagger 2, Retrofit, MVVM and DataBinding. Still under development. MovieList page is completed with recommended architecture techniques and new android components. Detail page will be completed soon. PRs are welcome. Replace your MovieDB API_KEY to run this example.

android-arch-news-sample - News app built using new Android Architecture Guidelines and Kotlin

  •    Kotlin

It's an extremely simple app which uses NewsAPI to show the latest news from Google News. It uses Retrofit 2 to fetch the news from the API and save them into database using Room. The main aim of this sample app is show how to use the new Architecture Guidelines with Kotlin. The app uses ViewModel to abstract the data from UI and Repository as single source of truth for data. Repository fetch the data from database if it doesn't exist then it fetches from the webservice.

RoboBinding - A data-binding Presentation Model(MVVM) framework for the Android platform.

  •    Java

As personal time contraints, I am currently unable to keep up. Please use official android databinding instead. A data-binding Presentation Model (MVVM) framework for the Android platform. RoboBinding helps you write UI code that is easier to read, test and maintain without performance compromise (code generation instead of java reflection).

Android-Architecture-Components-Kotlin - Sample used to practice Kotlin and Android Architecture Components

  •    Kotlin

Android Sample Kotlin Devises (currency converter) used to practice Kotlin and Android Architecture Components. I wrote a post in my blog called Support of Kotlin & Architecture Components to explain how Android Architecture Components works.

MVVM_Hacker_News - Android MVVM experiment project using the official Data Binding library

  •    Java

Android MVVM experiment project using the official Data Binding library

Android-CleanArchitecture-Kotlin - This is a movies sample app in Kotlin, which is part of a serie of blog posts I have written about architecting android application using different approaches

  •    Kotlin

The purpose of this repo is to follow up Clean Architecture principles by bringing them to Android. It is worth saying that the idea is to take advantage of the Kotlin Programming Language features plus also pull in lessons learned and ideas from other interesting aproaches like Functional Programming. There is another Android Clean Architecture repository written in Java: https://github.com/android10/Android-CleanArchitecture with really nice discussions: https://github.com/android10/Android-CleanArchitecture/issues. Article, lessons learned and some more material coming up. Check the following known bugs and TODO list.

qksms - The most beautiful SMS messenger app for Android

  •    Java

QKSMS is an open source replacement to the stock messaging app on Android. It is currently available on the Google Play Store.We highly encourage contributions to QKSMS; we want to make it as easy and streamlined as possible. If you have any suggestions on how we can improve our workflow, please feel free to contact me.