{"id":6920,"date":"2019-05-16T06:00:20","date_gmt":"2019-05-16T13:00:20","guid":{"rendered":"http:\/\/www.couchbase.com\/blog\/?p=6920"},"modified":"2025-06-13T20:52:28","modified_gmt":"2025-06-14T03:52:28","slug":"couchbase-sync-gateway-xamarin","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/","title":{"rendered":"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin"},"content":{"rendered":"<p><a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/guides\/sync-gateway\/index.html\">Couchbase Sync Gateway<\/a> is a key internet facing component of Couchbase Mobile stack that enables secure data synchronization across Couchbase Lite enabled clients. <a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-mobile-2-0\/\">Couchbase Mobile 2.0<\/a> introduced a brand new websockets based <a href=\"https:\/\/www.couchbase.com\/blog\/data-replication-couchbase-mobile\/\">replication protocol<\/a> for data synchronization that is more efficient than its HTTP based predecessor.<\/p>\n<p>In our previous <a href=\"https:\/\/docs.couchbase.com\/tutorials\/index.html\">tutorials<\/a>, we discussed how to use Couchbase Lite as a standalone embedded data store within your <a href=\"https:\/\/visualstudio.microsoft.com\/xamarin\/\">Xamarin<\/a> app. In this post, we introduce a <a href=\"https:\/\/docs.couchbase.com\/userprofile-couchbase-mobile\/sync\/userprofile\/xamarin\/userprofile_sync.html\"><strong>tutorial<\/strong><\/a> that will extend the capabilities of Couchbase Lite enabled clients to incorporate data sync using a <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/guides\/sync-gateway\/index.html\">Sync Gateway<\/a>.<\/p>\n<h2 id=\"datasynchronization\">Data Synchronization<\/h2>\n<p>Data Synchronization is critical for enabling <strong>offline-first<\/strong> mobile apps. Offline-first apps are apps that regularly need network connectivity to function but are usable even under conditions of no or poor network connectivity.<br \/>\n<br \/>\nThe two critical aspects of enabling this is &#8211;<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>The ability to locally store data on the device so it is always available to the user, whether online or offline.<\/li>\n<li>The ability to sync data to the cloud so it is available to the users on other devices when online. This includes secure routing of data across devices, enforcement of access conflict and handling of data conflicts.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"tutorial\">Tutorial<\/h2>\n<p>This <a href=\"https:\/\/docs.couchbase.com\/userprofile-couchbase-mobile\/sync\/userprofile\/xamarin\/userprofile_sync.html\"><strong>tutorial<\/strong><\/a> will demonstrate how to &#8211;<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Setup the Couchbase Sync Gateway (in <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/2.0\/config-properties.html#databases-foo_db-server\">walrus mode<\/a>) to sync content between multiple Couchbase Lite enabled clients. We will cover the basics of the <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/guides\/sync-gateway\/config-properties\/index.html\">Sync Gateway Configuration<\/a><\/li>\n<li>Configure your Sync Gateway to enforce data routing, access control and authorization. We will cover the basics of the <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/guides\/sync-gateway\/sync-function-api-guide\/index.html\">Sync Function API<\/a>.<\/li>\n<li>Configure your Couchbase Lite clients for replication.<\/li>\n<li>Use \u201cLive Queries\u201d or Query events within your Couchbase Lite clients to be asynchronously notified of changes.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>We will be using a Xamarin solution as an example of a Couchbase Lite enabled client.<\/p>\n<h2 id=\"appoverview\">App Overview<\/h2>\n<p>We will be working with the \u201cUser Profile\u201d app which we introduced in the <a href=\"https:\/\/docs.couchbase.com\/userprofile-couchbase-mobile\/standalone\/userprofile\/xamarin\/userprofile_basic.html\">Fundamentals Tutorial<\/a> and extended in the <a href=\"https:\/\/docs.couchbase.com\/userprofile-couchbase-mobile\/query\/userprofile\/xamarin\/userprofile_query.html\">Query Tutorial<\/a>. In this tutorial, we will be extending that app to support data sync.<\/p>\n<p>This version of the app does the following &#8211;<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Allows users to log in and create or update his\/her user profile information. The user profile view is <em>automatically updated<\/em> every time the profile information changes in the underlying database.<\/li>\n<li>The user profile information is synced with a remote Sync Gateway which then syncs it to other devices (subject to access control and routing configurations specified in the <code>sync function<\/code>).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/userprofile_app_overview_xamarin.gif\" alt=\"User Profile with Sync App Overview\" \/><\/figure>\n<h2 id=\"nextsteps\">Next Steps<\/h2>\n<p>At the end of the tutorial, you should have an understanding of how to securely enable data synchronization using a Sync Gateway. You should gain familiarity with the fundamentals of how to enforce access control, data validation and authorization within your Sync Gateway as well as how to register for query events from within your app.<br \/>\n<br \/>\nHowever, as you would observe from the tutorial, we are using Sync Gateway in \u201cwalrus mode\u201d and hence, we are not persisting the data in the cloud. Stay tuned for a future tutorial that will extend this system to incorporate the Couchbase server for data persistence in the cloud!<br \/>\n<br \/>\nIf\u00a0you have questions or feedback, please leave a comment below or feel free to reach out to me at Twitter\u00a0<a href=\"https:\/\/twitter.com\/probablyrealrob\">@probablyrealrob<\/a>\u00a0or email me at\u00a0<a href=\"mailto:robert.hedgpeth@couchbase.com\">robert.hedgpeth@couchbase.com<\/a>. The\u00a0<a href=\"https:\/\/www.couchbase.com\/forums\/\">Couchbase Forums<\/a> are another good place to reach out with\u00a0questions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Couchbase Sync Gateway is a key internet facing component of Couchbase Mobile stack that enables secure data synchronization across Couchbase Lite enabled clients. Couchbase Mobile 2.0 introduced a brand new websockets based replication protocol for data synchronization that is more [&hellip;]<\/p>\n","protected":false},"author":34959,"featured_media":6649,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,2370,1815,7667,1810,2366,2351],"tags":[1577,1536,2215,2348,2349,2363],"ppma_author":[9080],"class_list":["post-6920","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-android","category-best-practices-and-tutorials","category-couchbase-lite","category-couchbase-mobile","category-sync-gateway","category-xamarin","tag-cross-platform","tag-ios","tag-user-profile","tag-uwp","tag-xamarin","tag-xamarin-forms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Getting Started with Couchbase Sync Gateway and Xamarin<\/title>\n<meta name=\"description\" content=\"This tutorial will introduce you to creating offline-first apps using Couchbase Sync Gateway with your Xamarin apps and Coucbase Mobile.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin\" \/>\n<meta property=\"og:description\" content=\"This tutorial will introduce you to creating offline-first apps using Couchbase Sync Gateway with your Xamarin apps and Coucbase Mobile.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-16T13:00:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:52:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/xamarin_cover_2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1074\" \/>\n\t<meta property=\"og:image:height\" content=\"506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@probablyrealrob\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/\"},\"author\":{\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/4fe39f690069382f7641d3a02f551e47\"},\"headline\":\"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin\",\"datePublished\":\"2019-05-16T13:00:20+00:00\",\"dateModified\":\"2025-06-14T03:52:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/\"},\"wordCount\":552,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/04\\\/xamarin_cover_2.jpg\",\"keywords\":[\"cross platform\",\"ios\",\"user profile\",\"uwp\",\"xamarin\",\"xamarin.forms\"],\"articleSection\":[\".NET\",\"Android\",\"Best Practices and Tutorials\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Sync Gateway\",\"Xamarin\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/\",\"name\":\"Getting Started with Couchbase Sync Gateway and Xamarin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/04\\\/xamarin_cover_2.jpg\",\"datePublished\":\"2019-05-16T13:00:20+00:00\",\"dateModified\":\"2025-06-14T03:52:28+00:00\",\"description\":\"This tutorial will introduce you to creating offline-first apps using Couchbase Sync Gateway with your Xamarin apps and Coucbase Mobile.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/04\\\/xamarin_cover_2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2019\\\/04\\\/xamarin_cover_2.jpg\",\"width\":1074,\"height\":506},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/couchbase-sync-gateway-xamarin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/admin-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/4fe39f690069382f7641d3a02f551e47\",\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=gd2687b799f515d10560e40ed5b695b63\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g\",\"caption\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\"},\"description\":\"Rob Hedgpeth is a Senior Developer Advocate at Couchbase specializing in mobile and IoT technologies. Rob has been developing applications of all flavors for over a decade, but has primarily been focused on the mobile space since 2010. Prior to working at Couchbase Rob worked as a Mobile Architect at Xamarin and Microsoft.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/probablyrealrob\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/author\\\/robert-hedgpeth\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Getting Started with Couchbase Sync Gateway and Xamarin","description":"This tutorial will introduce you to creating offline-first apps using Couchbase Sync Gateway with your Xamarin apps and Coucbase Mobile.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin","og_description":"This tutorial will introduce you to creating offline-first apps using Couchbase Sync Gateway with your Xamarin apps and Coucbase Mobile.","og_url":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-05-16T13:00:20+00:00","article_modified_time":"2025-06-14T03:52:28+00:00","og_image":[{"width":1074,"height":506,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/xamarin_cover_2.jpg","type":"image\/jpeg"}],"author":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@probablyrealrob","twitter_misc":{"Written by":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/"},"author":{"name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47"},"headline":"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin","datePublished":"2019-05-16T13:00:20+00:00","dateModified":"2025-06-14T03:52:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/"},"wordCount":552,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/xamarin_cover_2.jpg","keywords":["cross platform","ios","user profile","uwp","xamarin","xamarin.forms"],"articleSection":[".NET","Android","Best Practices and Tutorials","Couchbase Lite","Couchbase Mobile","Sync Gateway","Xamarin"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/","name":"Getting Started with Couchbase Sync Gateway and Xamarin","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/xamarin_cover_2.jpg","datePublished":"2019-05-16T13:00:20+00:00","dateModified":"2025-06-14T03:52:28+00:00","description":"This tutorial will introduce you to creating offline-first apps using Couchbase Sync Gateway with your Xamarin apps and Coucbase Mobile.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/xamarin_cover_2.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/xamarin_cover_2.jpg","width":1074,"height":506},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-sync-gateway-xamarin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Getting Started with Couchbase Sync Gateway and Xamarin"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47","name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=gd2687b799f515d10560e40ed5b695b63","url":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","caption":"Rob Hedgpeth, Senior Developer Advocate, Couchbase"},"description":"Rob Hedgpeth is a Senior Developer Advocate at Couchbase specializing in mobile and IoT technologies. Rob has been developing applications of all flavors for over a decade, but has primarily been focused on the mobile space since 2010. Prior to working at Couchbase Rob worked as a Mobile Architect at Xamarin and Microsoft.","sameAs":["https:\/\/x.com\/probablyrealrob"],"url":"https:\/\/www.couchbase.com\/blog\/author\/robert-hedgpeth\/"}]}},"acf":[],"authors":[{"term_id":9080,"user_id":34959,"is_guest":0,"slug":"robert-hedgpeth","display_name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/34959"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=6920"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/6920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/6649"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=6920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=6920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=6920"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=6920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}