{"id":7252,"date":"2019-07-24T02:10:36","date_gmt":"2019-07-24T09:10:36","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7252"},"modified":"2025-06-13T20:08:58","modified_gmt":"2025-06-14T03:08:58","slug":"synchronized-drawing-apps-with-couchbase-mobile","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/synchronized-drawing-apps-with-couchbase-mobile\/","title":{"rendered":"Aplicaciones de dibujo sincronizadas con Couchbase Mobile"},"content":{"rendered":"<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/mobile\/\">Couchbase M\u00f3vil<\/a> contiene un robusto y potente <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/lite\/\">base de datos NoSQL integrada<\/a>llamada <a href=\"https:\/\/docs.couchbase.com\/couchbase-lite\/2.5\/introduction.html\">Couchbase Lite<\/a>que se pueden utilizar con iOS, Android y <a href=\"https:\/\/visualstudio.microsoft.com\/xamarin\/\">Xamarin<\/a> aplicaciones. La pila de Couchbase Mobile tambi\u00e9n contiene <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/2.5\/introduction.html\">Pasarela de sincronizaci\u00f3n<\/a>. Sync Gateway permite la sincronizaci\u00f3n segura de datos entre clientes compatibles con Couchbase Lite. Sync Gateway ha existido durante a\u00f1os, pero el a\u00f1o pasado Couchbase Mobile 2.0 introdujo oficialmente un <a href=\"https:\/\/docs.couchbase.com\/sync-gateway\/2.0\/index.html\">nueva replicaci\u00f3n basada en web-sockets<\/a> para la sincronizaci\u00f3n de datos, m\u00e1s eficaz que su predecesor basado en HTTP.<\/p>\n<p>Teniendo en cuenta todos los cambios de Couchbase Mobile y el reciente lanzamiento de <a href=\"https:\/\/docs.couchbase.com\/couchbase-lite\/2.5\/index.html\">versi\u00f3n 2.5<\/a>Empec\u00e9 a pensar en formas \u00fanicas de visualizar las mejoras mediante una aplicaci\u00f3n. Empec\u00e9 por fijar un par de requisitos sencillos. Quer\u00eda que la aplicaci\u00f3n<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>S\u00e9 sencillo<\/li>\n<li>Divi\u00e9rtete<\/li>\n<li>Muestra la potencia de Couchbase Mobile<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Al final, decid\u00ed investigar qu\u00e9 har\u00eda falta para crear una aplicaci\u00f3n que incluyera algo que probablemente todos hemos hecho de ni\u00f1os, para divertirnos o simplemente cuando estamos aburridos. Dibujar. \u00bfY qu\u00e9 hay m\u00e1s divertido que dibujar? Eso es, \u00a1dibujar en colaboraci\u00f3n!<\/p>\n<p><img decoding=\"async\" style=\"margin-left: auto;margin-right: auto\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/snake.gif\" alt=\"snake\" \/><\/p>\n<h2>Para empezar<\/h2>\n<p>Nunca antes hab\u00eda creado una aplicaci\u00f3n que permitiera dibujar en tiempo real, pero conoc\u00eda algunos enfoques que podr\u00edan servir.  Para m\u00ed, la favorita era una biblioteca que llevaba unos a\u00f1os dando que hablar; <a href=\"https:\/\/skia.org\/\">Skia<\/a>.<\/p>\n<div>\n<p>Skia es una aplicaci\u00f3n 2D de c\u00f3digo abierto <a href=\"https:\/\/en.wikipedia.org\/wiki\/Graphics_library\">biblioteca gr\u00e1fica<\/a> que proporciona API comunes que funcionan en diversas plataformas de hardware y software. Sirve como motor gr\u00e1fico para Google Chrome y Chrome OS, Android, Mozilla Firefox y Firefox OS, y muchos otros productos, incluidos los m\u00f3viles. La mayor parte del mantenimiento de Skia corre a cargo de Google, pero su uso es totalmente gratuito.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7260\" style=\"float: right;margin: 20px\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/skia_logo-300x166.png\" alt=\"\" width=\"300\" height=\"166\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/skia_logo-300x166.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/skia_logo-1024x565.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/skia_logo-768x424.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/skia_logo-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/skia_logo.png 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<\/div>\n<p>Me gustaba la idea de utilizar Skia para mis dibujos t\u00e1ctiles, pero quer\u00eda crear una aplicaci\u00f3n multiplataforma. Con m\u00e1s de unos a\u00f1os de experiencia en Xamarin, ya estaba familiarizado con <a href=\"https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/user-interface\/graphics\/skiasharp\/\">SkiaSharp<\/a>una aplicaci\u00f3n multiplataforma de Skia basada en .NET.<\/p>\n<p>As\u00ed que cre\u00e9 un <a href=\"https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/\">Xamarin.Forms<\/a> e incluy\u00f3 la soluci\u00f3n SkiaSharp <a href=\"https:\/\/www.nuget.org\/\">nuget<\/a> paquete. Me qued\u00e9 impresionado, ya que despu\u00e9s de s\u00f3lo unas pocas l\u00edneas de c\u00f3digo ten\u00eda un Skia Canvas (SkCanvasView) en mi interfaz de usuario,<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-xml\" data-lang=\"xml\"><\/code><\/pre>\n<\/div>\n<\/div>\n<p>y pude empezar a escuchar los eventos t\u00e1ctiles en el c\u00f3digo de mi p\u00e1gina.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-c#\" data-lang=\"c#\">void OnTouchEffectAction(object sender, TouchActionEventArgs args)\r\n{\r\n    var point = nuevo Models.Point\r\n    {\r\n        X = args.Location.X,\r\n        Y = args.Location.Y\r\n    };\r\n\r\n    switch (args.Tipo)\r\n    {\r\n        case TouchActionType.Pressed:\r\n            ...\r\n            break;\r\n        case TouchActionType.Moved:\r\n            ...\r\n            break;\r\n    }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<p>A partir de esos acontecimientos pude sentar las bases de las representaciones vectoriales en 2D sobre un lienzo. Al fin y al cabo, los dibujos bidimensionales se reducen a un componente b\u00e1sico: un punto. Una colecci\u00f3n de puntos crea una ruta, y una colecci\u00f3n de rutas crea... un dibujo.<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Huzzah\">Huzzah<\/a>\u00a1! Ahora que era capaz de capturar los puntos, crear rutas a partir de esos puntos y, en \u00faltima instancia, dibujos a partir de esas rutas, ten\u00eda los datos que necesitaba para compartir entre lienzos en instancias separadas de la aplicaci\u00f3n.<\/p>\n<h2>El poder de Couchbase Mobile<\/h2>\n<p>Como se mencion\u00f3 anteriormente, la pila de Couchbase Mobile contiene tanto una base de datos NoSQL integrada llamada Couchbase Lite, como un mecanismo de sincronizaci\u00f3n de datos llamado Sync Gateway. Combinado con la potencia de Couchbase Server, una base de datos distribuida NoSQL basada en JSON, los datos pueden ser empujados y sacados hacia y desde el borde.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2755 aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/01\/CBMDiagram-300x177.png\" alt=\"Couchbase Mobile\" width=\"346\" height=\"204\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/CBMDiagram-300x177.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/CBMDiagram-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/CBMDiagram.png 412w\" sizes=\"auto, (max-width: 346px) 100vw, 346px\" \/><\/p>\n<p>El soporte de Sync Gateway est\u00e1 totalmente integrado en los paquetes Nuget de Couchbase.Lite y Couchbase.Lite.Enterprise, y puedes encontrar m\u00e1s informaci\u00f3n sobre c\u00f3mo hacerlo <a href=\"https:\/\/docs.couchbase.com\/userprofile-couchbase-mobile\/sync\/userprofile\/xamarin\/userprofile_sync.html\">aqu\u00ed<\/a>.<\/p>\n<p>La clave del almacenamiento de datos en una base de datos basada en documentos se centra en c\u00f3mo los <a href=\"https:\/\/docs.couchbase.com\/server\/4.5\/data-modeling\/intro-data-modeling.html\">los datos se modelan<\/a>. Por suerte, en esta aplicaci\u00f3n, el modelado de datos era f\u00e1cil. Todo cerr\u00f3 el c\u00edrculo porque todo lo que necesitaba almacenar, a trav\u00e9s de JSON, era una colecci\u00f3n de puntos dentro de colecciones de rutas.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-c#\" data-lang=\"c#\">{\r\n    \"color\": \"#000000\",\r\n    \"creadoPor\": \"cca6ebe8-a713-49ac-bb86-cff0fb095ab2\",\r\n    \"id\": \"059fee8c-fbb3-450e-a1f1-61d82a28e68b\",\r\n    \"points\": [\r\n        {\r\n            \"tipo\": \"punto\",\r\n            \"x\": 101.333,\r\n            \"y\": 339.667\r\n        },\r\n        {\r\n            \"tipo\": \"punto\",\r\n            \"x\": 101.333,\r\n            \"y\": 340.3333282470703\r\n        }\r\n    ],\r\n    \"type\": \"path\"\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<p>A continuaci\u00f3n, simplemente guard\u00e9 la informaci\u00f3n del punto y la ruta en la base de datos integrada de Couchbase Lite. A partir de ah\u00ed, Sync Gateway se encarga del resto y, voil\u00e0, \u00a1un lienzo compartido simplificado con Couchbase Mobile!<\/p>\n<p><img decoding=\"async\" style=\"margin-left: auto;margin-right: auto\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/N1QL_Rick.gif\" alt=\"N1QL-Rick\" \/><\/p>\n<h2>Presentaci\u00f3n de CouchDraw<\/h2>\n<p>Obviamente, he pasado por alto algunos de los detalles m\u00e1s importantes de la aplicaci\u00f3n de la que he estado hablando, pero no temas, he creado una p\u00e1gina web de la aplicaci\u00f3n. <a href=\"https:\/\/github.com\/couchbaselabs\/CouchDraw\">nuevo repositorio<\/a> \u00a1para ello! En el nuevo \"<a href=\"https:\/\/github.com\/couchbaselabs\/CouchDraw\">CouchDraw<\/a>\"junto con el c\u00f3digo fuente, tambi\u00e9n he incluido un archivo <a href=\"https:\/\/github.com\/couchbaselabs\/CouchDraw\/blob\/master\/README.md\">L\u00c9AME<\/a> con <strong>muchos<\/strong> <strong>m\u00e1s<\/strong> detalles sobre c\u00f3mo descargar, configurar y ejecutar la soluci\u00f3n. No dudes en dejar todo lo que est\u00e9s haciendo ahora mismo e ir a comprobarlo.<\/p>\n<p><a href=\"https:\/\/github.com\/couchbaselabs\/CouchDraw\">CouchDraw<\/a> es una aplicaci\u00f3n muy b\u00e1sica, y, como tal, hay muchas maneras de mejorarla (aqu\u00ed es donde entras t\u00fa). Desaf\u00edo a la comunidad m\u00f3vil y Couchbase a sumergirse y ampliar en <a href=\"https:\/\/github.com\/couchbaselabs\/CouchDraw\">CouchDraw<\/a> \u00a1Funcionalidad!<\/p>\n<p>Algunas ideas de nuevas funciones pueden ser:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Sustituci\u00f3n de los botones de color por un control deslizante de gama para la selecci\u00f3n del color.<\/li>\n<li>A\u00f1adir la posibilidad de cambiar el grosor de las l\u00edneas.<\/li>\n<li>A\u00f1adir la posibilidad de borrar las l\u00edneas que se han dibujado.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<p>Junto con la ampliaci\u00f3n del soporte de dibujo sincronizado a iOS y Android nativos, tambi\u00e9n integrar\u00e9 Couchbase Mobile's <a href=\"https:\/\/docs.couchbase.com\/couchbase-lite\/2.5\/csharp.html#peer-to-peer-sync\">replicaci\u00f3n peer-to-peer<\/a> y <a href=\"https:\/\/docs.couchbase.com\/couchbase-lite\/2.5\/csharp.html#predictive-query\">consulta predictiva<\/a> caracter\u00edsticas en <a href=\"https:\/\/github.com\/couchbaselabs\/CouchDraw\">CouchDraw<\/a>. Est\u00e9 atento a las pr\u00f3ximas entradas de esta serie.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase Mobile contiene una robusta y potente base de datos NoSQL embebida, llamada Couchbase Lite, que se puede utilizar dentro de tus aplicaciones iOS, Android y Xamarin. La pila de Couchbase Mobile tambi\u00e9n contiene Sync Gateway. Sync Gateway permite la sincronizaci\u00f3n segura de datos a trav\u00e9s de Couchbase [...]<\/p>","protected":false},"author":34959,"featured_media":7261,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,2381,7667,1810,1816,1819,2366,2351],"tags":[2213,2350,2363],"ppma_author":[9080],"class_list":["post-7252","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-community","category-couchbase-lite","category-couchbase-mobile","category-couchbase-server","category-data-modeling","category-sync-gateway","category-xamarin","tag-couchbase-lite-2-0","tag-cross-platform-mobile","tag-xamarin-forms"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Synchronized Drawing Apps with Couchbase Mobile - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Synchronized drawing apps made easy with the power of Couchbase Lite, Couchbase Sync Gateway, Couchbase Server, and Xamarin.Forms.\" \/>\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\/es\/synchronized-drawing-apps-with-couchbase-mobile\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Synchronized Drawing Apps with Couchbase Mobile\" \/>\n<meta property=\"og:description\" content=\"Synchronized drawing apps made easy with the power of Couchbase Lite, Couchbase Sync Gateway, Couchbase Server, and Xamarin.Forms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/synchronized-drawing-apps-with-couchbase-mobile\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-24T09:10:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:08:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"589\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\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=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/\"},\"author\":{\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47\"},\"headline\":\"Synchronized Drawing Apps with Couchbase Mobile\",\"datePublished\":\"2019-07-24T09:10:36+00:00\",\"dateModified\":\"2025-06-14T03:08:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/\"},\"wordCount\":807,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif\",\"keywords\":[\"Couchbase Lite 2.0\",\"cross-platform mobile\",\"xamarin.forms\"],\"articleSection\":[\".NET\",\"Community\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Couchbase Server\",\"Data Modeling\",\"Sync Gateway\",\"Xamarin\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/\",\"name\":\"Synchronized Drawing Apps with Couchbase Mobile - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif\",\"datePublished\":\"2019-07-24T09:10:36+00:00\",\"dateModified\":\"2025-06-14T03:08:58+00:00\",\"description\":\"Synchronized drawing apps made easy with the power of Couchbase Lite, Couchbase Sync Gateway, Couchbase Server, and Xamarin.Forms.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif\",\"width\":600,\"height\":589},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Synchronized Drawing Apps with Couchbase Mobile\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d2687b799f515d10560e40ed5b695b63\",\"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\/es\/author\/robert-hedgpeth\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Aplicaciones de dibujo sincronizadas con Couchbase Mobile - El blog de Couchbase","description":"Aplicaciones de dibujo sincronizadas m\u00e1s f\u00e1ciles con la potencia de Couchbase Lite, Couchbase Sync Gateway, Couchbase Server y Xamarin.Forms.","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\/es\/synchronized-drawing-apps-with-couchbase-mobile\/","og_locale":"es_MX","og_type":"article","og_title":"Synchronized Drawing Apps with Couchbase Mobile","og_description":"Synchronized drawing apps made easy with the power of Couchbase Lite, Couchbase Sync Gateway, Couchbase Server, and Xamarin.Forms.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/synchronized-drawing-apps-with-couchbase-mobile\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-07-24T09:10:36+00:00","article_modified_time":"2025-06-14T03:08:58+00:00","og_image":[{"width":600,"height":589,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif","type":"image\/gif"}],"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":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/"},"author":{"name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47"},"headline":"Synchronized Drawing Apps with Couchbase Mobile","datePublished":"2019-07-24T09:10:36+00:00","dateModified":"2025-06-14T03:08:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/"},"wordCount":807,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif","keywords":["Couchbase Lite 2.0","cross-platform mobile","xamarin.forms"],"articleSection":[".NET","Community","Couchbase Lite","Couchbase Mobile","Couchbase Server","Data Modeling","Sync Gateway","Xamarin"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/","url":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/","name":"Aplicaciones de dibujo sincronizadas con Couchbase Mobile - El blog de Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif","datePublished":"2019-07-24T09:10:36+00:00","dateModified":"2025-06-14T03:08:58+00:00","description":"Aplicaciones de dibujo sincronizadas m\u00e1s f\u00e1ciles con la potencia de Couchbase Lite, Couchbase Sync Gateway, Couchbase Server y Xamarin.Forms.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/snake.gif","width":600,"height":589},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/synchronized-drawing-apps-with-couchbase-mobile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Synchronized Drawing Apps with Couchbase Mobile"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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, Promotor Senior para Desarrolladores, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d2687b799f515d10560e40ed5b695b63","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 es desarrollador senior en Couchbase especializado en tecnolog\u00edas m\u00f3viles y IoT. Rob ha estado desarrollando aplicaciones de todos los sabores durante m\u00e1s de una d\u00e9cada, pero se ha centrado principalmente en el espacio m\u00f3vil desde 2010. Antes de trabajar en Couchbase, Rob trabaj\u00f3 como arquitecto m\u00f3vil en Xamarin y Microsoft.","sameAs":["https:\/\/x.com\/probablyrealrob"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/robert-hedgpeth\/"}]}},"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","author_category":"","last_name":"Hedgpeth, Senior Developer Advocate, Couchbase","first_name":"Rob","job_title":"","user_url":"","description":"Rob Hedgpeth es desarrollador senior en Couchbase especializado en tecnolog\u00edas m\u00f3viles y IoT. Rob ha estado desarrollando aplicaciones de todos los sabores durante m\u00e1s de una d\u00e9cada, pero se ha centrado principalmente en el espacio m\u00f3vil desde 2010. Antes de trabajar en Couchbase, Rob trabaj\u00f3 como arquitecto m\u00f3vil en Xamarin y Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/34959"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=7252"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7252\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/7261"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7252"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}