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

  •        207

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.

https://proandroiddev.com/offline-apps-its-easier-than-you-think-9ff97701a73f
https://github.com/jshvarts/OfflineSampleApp

Tags
Implementation
License
Platform

   




Related Projects

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.

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.

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.


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.

CleanArchitectureRxSwift - Example of Clean Architecture of iOS app using RxSwift

  •    Swift

The Platform is a concrete implementation of the Domain in a specific platform like iOS. It does hide all implementation details. For example Database implementation whether it is CoreData, Realm, SQLite etc. Application is responsible for delivering information to the user and handling user input. It can be implemented with any delivery pattern e.g (MVVM, MVC, MVP). This is the place for your UIViews and UIViewControllers. As you will see from the example app, ViewControllers are completely independent of the Platform. The only responsibility of a view controller is to "bind" the UI to the Domain to make things happen. In fact, in the current example we are using the same view controller for Realm and CoreData.

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.

Espresso - 🚚 Espresso is an express delivery tracking app designed with Material Design style, built on MVP(Model-View-Presenter) architecture with RxJava2, Retrofit2, Realm database and ZXing

  •    Java

Espresso is an express delivery tracking app designed with Material Design style, built on MVP(Model-View-Presenter) architecture with RxJava2, Retrofit2, Realm database and ZXing.The source code in this repository reflects the app which supports mobile devices running Android 5.0+.

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

RxCoordinator - 🎌 Reactive navigation library for iOS based on the coordinator pattern

  •    Swift

“How does an app transition from a ViewController to another?”. This question is common and puzzling regarding iOS development. There are many answers, as every architecture has different implementation variations. Some do it from the view controller, while some do it using a router/coordinator, which is an object that connects view models. Setup the root view controller in the AppDelegate.

RxJava2-Android-Samples - RxJava 2 Android Examples - Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android

  •    Java

RxJava 2.0 has been completely rewritten from scratch on top of the Reactive-Streams specification. The specification itself has evolved out of RxJava 1.x and provides a common baseline for reactive systems and libraries. Because Reactive-Streams has a different architecture, it mandates changes to some well known RxJava types.

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

  •    Kotlin

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.

SwinjectMVVMExample - An example to use Swinject in MVVM architecture with ReactiveCococa

  •    Swift

This is an example project to demonstrate dependency injection and Swinject in MVVM (Model-View-ViewModel) architecture with ReactiveCocoa. The app asynchronously searches, downloads and displays images obtained from Pixabay via its API. The following blog posts demonstrate step-by-step development of the project.