Git Product home page Git Product logo

grocerysync-android's Introduction

Grocery Sync for Couchbase Lite Android

An example app that uses the Couchbase Lite Android mobile database framework.

This example code corresopnds to the master branch of Couchbase Lite Android.

Architecture

If Couchbase Lite is configured to sync it's changes with a Sync Gateway, then all changes will automatically background sync bi-directionally such that any changes on either device will propagate to the other.

Install Android Studio

Screencasts

The following screencasts walk you through getting GrocerySync up and running:

The screencasts follow the instructions in the remainder of this document.

Getting the code

$ git clone https://github.com/couchbaselabs/GrocerySync-Android.git
$ git submodule update --init

Import the project in Android Studio

Follow the same instructions as importing Couchbase Lite

Run the app via Android Studio

  • Run it using the "play" or "debug" buttons in the UI

Congratulations! If you got this far and see this UI, you have your first Couchbase Lite Android app up and running.

Install Sync Gateway

  1. Download and install Sync Gateway (see the installation page for details).

  2. Start Sync Gateway with the configuration file in the root of this project.

    ~/Downloads/couchbase-sync-gateway/bin/sync_gateway sync-gateway-config.json
  3. Open MainActivity.java and update the SYNC_URL constant to point to your Sync Gateway instance.

    public static final String SYNC_URL = "http://10.0.2.2:4984/grocery-sync";
    • If you are using the Genymotion emulator: http://10.0.3.2:4984/grocery-sync
    • If you are using the standard android emulator: http://10.0.2.2:4984/grocery-sync
    • If you are running on a device: http://<ip of sync gw>:4984/grocery-sync
  4. Build and run the app.

  5. Add items and they should be visible on the Sync Gateway Admin UI at [http://localhost:4985/_admin/] (http://localhost:4985/_admin/).

Change the dependency from Maven -> Direct code dependency (optional)

By default, this project depends on the Couchbase Lite maven artifacts. However, it can also depend on the CBLite code directly, which is useful if you need to modify the Couchbase Lite code. (Note: if you are using maven artifacts, since we ship the source code artifacts, you should already be able to browse the code and debug)

See the build.gradle and settings.gradle files for instructions on how to do this.

Run via Gradle (optional)

If you would rather run the project via the command line, you can do the following:

  • Run the android emulator
  • Run ./gradlew clean && ./gradlew installDebug
  • Switch to the emulator and you should have a new app called GrocerySync-Android
  • Tap it to open the app

Compile with submodules (Couchbase Lite from source code) (optional)

If you would rather compile the project with couchbase lite source codes, you can do the following:

  • Open sttings.gradle, remove /* and */.
  • Open build.gradle in GrocerySync-Android folder, comment out compile 'com.couchbase.lite:couchbase-lite-android:1.1.0' and remove // for compile project(':libraries:couchbase-lite-android'), compile project(':libraries:couchbase-lite-java-core'), and compile project(':libraries:couchbase-lite-java-native:sqlite-default').

Additional Information

Where to go from here: creating your own Couchbase-Lite app

See the Getting Started Guide.

Support

See Getting Help

grocerysync-android's People

Contributors

mschoch avatar tleyden avatar pasin avatar andreibaranouski avatar jamesnocentini avatar bastianvs avatar hideki avatar

Watchers

James Cloos avatar Jesus cuevas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.