Medium post covering this app: Building Offline-First App using MVVM, RxJava, Room and Priority Job Queue
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.
With offline apps
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.
This background job is designed to be persistent--it is guaranteed to execute even after app or device restarts while waiting for the network connection.
ViewModelinteracting with UseCases and the latter interacting with local database. Making each layer highly testable.
LifecycleObserver. For this to work, the app has to be in foreground.
Copyright 2017 James Shvarts 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.