{"id":45157427,"url":"https://github.com/couchbase-examples/android-java-cblite-userprofile-sync","last_synced_at":"2026-02-20T05:02:43.042Z","repository":{"id":38443322,"uuid":"446905178","full_name":"couchbase-examples/android-java-cblite-userprofile-sync","owner":"couchbase-examples","description":"Quickstart in Couchbase Lite using a standalone database with Android and Java. This tutorial will show you how to use Sync Gateway to sync information between your local database and Couchbase Server.","archived":false,"fork":false,"pushed_at":"2024-05-03T04:02:20.000Z","size":1263,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-05-03T19:18:28.612Z","etag":null,"topics":["android","android-java","couchbase","couchbase-lite","couchbase-mobile","java","mobile"],"latest_commit_sha":null,"homepage":"https://developer.couchbase.com/tutorial-quickstart-android-java-sync","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/couchbase-examples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-11T16:48:57.000Z","updated_at":"2024-05-03T19:18:28.613Z","dependencies_parsed_at":"2024-05-01T04:27:36.775Z","dependency_job_id":"46c9840a-0f49-4664-8dc2-01a8319cb8d5","html_url":"https://github.com/couchbase-examples/android-java-cblite-userprofile-sync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/couchbase-examples/android-java-cblite-userprofile-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase-examples%2Fandroid-java-cblite-userprofile-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase-examples%2Fandroid-java-cblite-userprofile-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase-examples%2Fandroid-java-cblite-userprofile-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase-examples%2Fandroid-java-cblite-userprofile-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/couchbase-examples","download_url":"https://codeload.github.com/couchbase-examples/android-java-cblite-userprofile-sync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase-examples%2Fandroid-java-cblite-userprofile-sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29641929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T03:21:14.183Z","status":"ssl_error","status_checked_at":"2026-02-20T03:18:24.455Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-java","couchbase","couchbase-lite","couchbase-mobile","java","mobile"],"created_at":"2026-02-20T05:02:39.143Z","updated_at":"2026-02-20T05:02:43.033Z","avatar_url":"https://github.com/couchbase-examples.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Standalone](https://github.com/couchbase-examples/android-java-cblite-userprofile-sync/actions/workflows/build-workflow.yml/badge.svg)](https://github.com/couchbase-examples/android-java-cblite-userprofile-sync/actions/workflows/build-workflow.yml)\n\n# Quickstart in Couchbase Lite Data Sync with Android and Java\n#### Build an Android App in Java with Couchbase Lite \n\nCouchbase Sync Gateway is a key component of the Couchbase Mobile stack. It is an internet-facing synchronization mechanism that securely syncs data across devices as well as between devices and the cloud. Couchbase Mobile is built upon a websocket based [replication protocol](https://blog.couchbase.com/data-replication-couchbase-mobile/).\n\nThe core functions of the Sync Gateway includes:\n\n- Data Synchronization across devices and the cloud\n- Authorization\n- Access Control\n- Data Validation\n\n\u003e This repo is designed to show you an app that allows users to log in and make changes to their user profile information.  User profile information is persisted as a Document in the local Couchbase Lite Database. When the user logs out and logs back in again, the profile information is loaded from the Database. \n\nFull documentation can be found on the [Couchbase Developer Portal](https://developer.couchbase.com/tutorial-quickstart-android-java-sync/).\n\n\n## Prerequisites\nTo run this prebuilt project, you will need:\n\n- [Android Studio Chimpmuck or above](https://developer.android.com/studio)\n- [Android Studio Giraffe or above](https://developer.android.com/studio)\n- Android device or emulator running API level 24 or above \n- Android SDK installed and setup (\u003e v.34.0.0)\n- Android Build Tools (\u003e v.34.0.0)\n- JDK 17 (now embedded into Android Studio)\n\n### Installing Couchbase Lite Framework\n\n- This project already contains the appropriate additions for downloading and utilizing the Android Couchbase Lite dependency module. However, in the future, to include Couchbase Lite support within an Android app add the following within the gradle settings file (src/gradle.settings)\n\n```\ndependencyResolutionManagement {\n    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)\n    repositories {\n        maven { url \"https://mobile.maven.couchbase.com/maven2/dev/\" } // \u003c\u003c add this repository\n        google()\n        mavenCentral()\n    }\n}\n```\n* next, be sure you are using the most recent release of Couchbase Lite Mobile for Android. In the module build file (src/app/build.gradle) check this line to verify that the version number is correct:\n\n```\ndependencies {\n    ...\n\n    implementation 'com.couchbase.lite:couchbase-lite-android-ee:3.1.2'\n}\n```\n\n## App Architecture\n\nThe sample app follows the [MVP pattern](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter), separating the internal data model, from a passive view through a presenter that handles the logic of our application and acts as the conduit between the model and the view\n\n## Try it out\n\n* **Open src/build.gradle using Android Studio.**\n* Build and run the project.\n* Verify that you see the login screen.\n\n## Conclusion\n\nThis code is an example of how to use a Sync Gateway to synchronize data between Couchbase Lite enabled clients. The [Couchbase Developer Portal](https://developer.couchbase.com/tutorial-quickstart-android-java-sync/) tutorial will discuss how to configure your Sync Gateway to enforce relevant access control, authorization and data routing between Couchbase Lite enabled clients.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbase-examples%2Fandroid-java-cblite-userprofile-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcouchbase-examples%2Fandroid-java-cblite-userprofile-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbase-examples%2Fandroid-java-cblite-userprofile-sync/lists"}