{"id":2040,"date":"2015-12-16T01:01:42","date_gmt":"2015-12-16T01:01:41","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2040"},"modified":"2021-01-13T04:49:46","modified_gmt":"2021-01-13T12:49:46","slug":"build-mobile-apps-with-xamarin-and-couchbase-mobile","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/","title":{"rendered":"Crear aplicaciones m\u00f3viles con Xamarin y Couchbase Mobile"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10209\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/xamarin-logo-1024x429.png\" alt=\"xamarin-logo\" width=\"900\" height=\"377\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/xamarin-logo-1024x429.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/xamarin-logo-300x126.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/xamarin-logo-768x322.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/xamarin-logo-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/xamarin-logo-1320x554.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/xamarin-logo.png 1452w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><br \/>\n<span style=\"text-align: justify;\">Implementar una soluci\u00f3n Xamarin con Couchbase Mobile es la combinaci\u00f3n perfecta para crear una aplicaci\u00f3n m\u00f3vil multiplataforma en C# que tenga persistencia local.  Esto permite que tu contenido y datos no sean ef\u00edmeros, pero mejor a\u00fan, tu aplicaci\u00f3n m\u00f3vil no depende de una conexi\u00f3n de red en todo momento.  En este blog exploraremos c\u00f3mo empezar con <\/span><a style=\"text-align: justify;\" href=\"https:\/\/xamarin.com\/\">Xamarin<\/a><span style=\"text-align: justify;\"> y empezar a implementar los componentes de Couchbase Lite de la pila de Couchbase Mobile para crear una capa de almacenamiento.<\/span><\/p>\n<h3>Nueva soluci\u00f3n Xamarin<\/h3>\n<p style=\"text-align: justify;\">Xamarin le permite tener el enfoque de escribir una vez y ejecutar en cualquier lugar donde tiene una interfaz de usuario nativa con rendimiento nativo.  Con el paquete NuGet de Xamarin Couchbase Lite, puede compartir c\u00f3digo entre plataformas mediante C# y .NET Framework con compatibilidad total con API.  Tras descargar e instalar los componentes de iOS y Android de Xamarin, al abrir Xamarin Studio, aparecer\u00e1n los materiales del Centro de desarrollo y algunas soluciones de ejemplo a la derecha.  Puedes probarlas cuando quieras, pero nosotros vamos a crear un nuevo proyecto e insertar la soluci\u00f3n de Couchbase Mobile.  Haz clic en \"Nueva soluci\u00f3n<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10211 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/new_solution_xamarin.png\" alt=\"\" width=\"1500\" height=\"671\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/new_solution_xamarin.png 1500w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/new_solution_xamarin-300x134.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/new_solution_xamarin-1024x458.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/new_solution_xamarin-768x344.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/new_solution_xamarin-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/new_solution_xamarin-1320x590.png 1320w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><br \/>\nAhora se le presentar\u00e1 con una p\u00e1gina de soluci\u00f3n de Xamarin.  Para este blog nos centraremos en la creaci\u00f3n de una aplicaci\u00f3n Android y para ello vamos a..<\/p>\n<ol>\n<li style=\"text-align: justify;\">Elige 'Android' en el desplegable C# y luego 'Aplicaci\u00f3n Android' como nuestro proyecto.<\/li>\n<li style=\"text-align: justify;\">Proporcione un nombre para su proyecto como el siguiente, donde el nombre es \"CouchbaseMobile_Xamarin_App\".<\/li>\n<li style=\"text-align: justify;\">Haga clic en \"Aceptar\".<\/li>\n<\/ol>\n<h3 style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10212\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/android_project.png\" alt=\"android_project\" width=\"1014\" height=\"604\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/android_project.png 1014w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/android_project-300x179.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/android_project-768x457.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/android_project-20x12.png 20w\" sizes=\"auto, (max-width: 1014px) 100vw, 1014px\" \/><br \/>\nA\u00f1adir paquete NuGet de Couchbase<\/h3>\n<p style=\"text-align: justify;\">Ahora tiene un proyecto de aplicaci\u00f3n de Android vac\u00edo y vamos a a\u00f1adir Couchbase Mobile como nuestro siguiente paso.  Xamarin ahora tiene soporte de primera clase para NuGet que est\u00e1 incorporado y totalmente integrado.  NuGet es un sistema de gesti\u00f3n de paquetes para .NET que simplifica el proceso de uso de bibliotecas de terceros dentro de tu aplicaci\u00f3n m\u00f3vil como Couchbase Lite.  Ahora descargaremos el \u00faltimo paquete de Couchbase Lite.NET desde NuGet dentro de Xamarin Studio.<\/p>\n<ol>\n<li style=\"text-align: justify;\">Haga clic derecho en su proyecto dentro de la secci\u00f3n del explorador 'Soluci\u00f3n'.  He definido y creado un proyecto llamado 'CouchbaseMobile_Xamarin_App'.<\/li>\n<li style=\"text-align: justify;\">Seleccione \"A\u00f1adir<\/li>\n<li style=\"text-align: justify;\">Seleccione \"A\u00f1adir paquetes<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10213 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/couchbase_nuget_package.png\" alt=\"Couchbase Nuget Package\" width=\"1500\" height=\"569\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_nuget_package.png 1500w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_nuget_package-300x114.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_nuget_package-1024x388.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_nuget_package-768x291.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_nuget_package-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_nuget_package-1320x501.png 1320w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<p style=\"text-align: justify;\">Ahora que el cuadro de di\u00e1logo \"A\u00f1adir paquetes\" aparece como se muestra a continuaci\u00f3n, vamos a..:<\/p>\n<ol>\n<li style=\"text-align: justify;\">Escribe en el campo de b\u00fasqueda superior derecho 'Couchbase Lite' y pulsa enter para buscar el paquete a instalar desde la Galer\u00eda Oficial NuGet.<\/li>\n<li style=\"text-align: justify;\">Seleccione el paquete Couchbase Lite de la lista de resultados.<\/li>\n<li style=\"text-align: justify;\">Haga clic en \"A\u00f1adir paquete<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10214 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm.png\" alt=\"\" width=\"1622\" height=\"1070\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm.png 1622w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm-300x198.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm-1024x676.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm-768x507.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm-1536x1013.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/screen-shot-2015-12-10-at-3.58.45-pm-1320x871.png 1320w\" sizes=\"auto, (max-width: 1622px) 100vw, 1622px\" \/><\/li>\n<\/ol>\n<h3>Consola y carpeta de paquetes<\/h3>\n<p style=\"text-align: justify;\">Xamarin Studio a\u00f1adir\u00e1 ahora los paquetes y todas las dependencias para Couchbase Lite, donde en el momento de escribir esto estamos usando V1.1.2.0.  Para comprobar y ver el progreso de la instalaci\u00f3n, haga clic en el icono:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Consola de paquetes\" en la parte inferior derecha de Xamarin Studio.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Podr\u00e1 ver informaci\u00f3n detallada sobre el paquete Couchbase.Lite que se est\u00e1 instalando.  Donde la consola de paquetes tendr\u00e1..<\/p>\n<ol>\n<li style=\"text-align: justify;\">A\u00f1adir Couchbase.Lite...<\/li>\n<li style=\"text-align: justify;\">...Habr\u00e1 otros archivos que se a\u00f1adan entre medias...<\/li>\n<li style=\"text-align: justify;\">Finalmente podr\u00e1s ver 'Successfully added 'Couchbase.Lite ...' to your project<\/li>\n<\/ol>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10215\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/couchbase_install-1024x589.png\" alt=\"Couchbase Install\" width=\"900\" height=\"518\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_install-1024x589.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_install-300x173.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_install-768x442.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_install-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_install.png 1084w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><br \/>\nA continuaci\u00f3n, en la secci\u00f3n Explorador de soluciones, a la izquierda de Xamarin Studio, deber\u00eda ver los siguientes 4 paquetes instalados.  Despliegue la carpeta \"Paquetes\" y deber\u00eda ver:<\/p>\n<ol>\n<li style=\"text-align: justify;\">Couchbase.Lite<\/li>\n<li style=\"text-align: justify;\">Newtonsoft.Json<\/li>\n<li style=\"text-align: justify;\">SQLitePCL.raw_basic<\/li>\n<li style=\"text-align: justify;\">SQLitePCL.ugly<\/li>\n<\/ol>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10216\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/package_folder-1024x555.png\" alt=\"Package Folder\" width=\"900\" height=\"488\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/package_folder-1024x555.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/package_folder-300x163.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/package_folder-768x416.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/package_folder-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/package_folder.png 1155w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><br \/>\nPaquete de actualizaci\u00f3n<\/h3>\n<p style=\"text-align: justify;\">Desde la carpeta \"Paquetes\", ahora puedes actualizar f\u00e1cilmente paquetes individuales o todos ellos a la \u00faltima versi\u00f3n o eliminarlos del proyecto, haciendo clic con el bot\u00f3n derecho y seleccionando la opci\u00f3n de men\u00fa adecuada.<\/p>\n<ol>\n<li style=\"text-align: justify;\">Haga clic con el bot\u00f3n derecho en \"Paquetes\" y pulse \"Actualizar\" para actualizar todos los paquetes.<\/li>\n<li style=\"text-align: justify;\">En Xamarin Studio deber\u00eda ver ahora \"Actualizaci\u00f3n de 4 paquetes en el proyecto..\".<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10217 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/update_package.png\" alt=\"Update Package\" width=\"1500\" height=\"334\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package.png 1500w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package-300x67.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package-1024x228.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package-768x171.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package-20x4.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package-1320x294.png 1320w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10218 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/update_package_01.png\" alt=\"Update Package 01\" width=\"1500\" height=\"387\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package_01.png 1500w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package_01-300x77.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package_01-1024x264.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package_01-768x198.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package_01-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/update_package_01-1320x341.png 1320w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/p>\n<h3>Aplicaciones m\u00f3viles para Android e iOS<\/h3>\n<p style=\"text-align: justify;\">Hemos a\u00f1adido correctamente Couchbase Lite a nuestro proyecto de Android en Xamarin Studio.  Ahora vamos a entrar en un poco de c\u00f3digo de arranque para crear una aplicaci\u00f3n que tiene una base de datos m\u00f3vil local.  La aplicaci\u00f3n que estamos construyendo es una aplicaci\u00f3n de seguimiento de tareas por hacer que tendr\u00e1 persistencia local y lo que es genial es que s\u00f3lo tendremos que escribir nuestro c\u00f3digo de base de datos una vez para la soluci\u00f3n de iOS y Android, ya que estamos utilizando Xamarin.  Una base de datos y dos soluciones de plataforma diferentes.  A continuaci\u00f3n puede ver tanto la versi\u00f3n de Android y la interfaz de usuario de iOS.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10219\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/task_xamarin-1024x493.png\" alt=\"Task Xamarin\" width=\"900\" height=\"433\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_xamarin-1024x493.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_xamarin-300x144.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_xamarin-768x369.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_xamarin-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_xamarin.png 1058w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p style=\"text-align: justify;\">La belleza aqu\u00ed es que con s\u00f3lo una base de c\u00f3digo de base de datos, que son capaces de orientar ambas plataformas en lugar de volver a escribir el c\u00f3digo de base de datos de nuevo para ser plataforma espec\u00edfica.  A continuaci\u00f3n, la versi\u00f3n de iOS est\u00e1 ejecutando el mismo c\u00f3digo cliente de Couchbase Lite que la versi\u00f3n de Android.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10220\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/task_ios_xamarin.png\" alt=\"Task iOS Xamarin\" width=\"832\" height=\"541\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_ios_xamarin.png 832w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_ios_xamarin-300x195.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_ios_xamarin-768x499.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_ios_xamarin-20x13.png 20w\" sizes=\"auto, (max-width: 832px) 100vw, 832px\" \/><\/p>\n<h3>Proyecto compartido<\/h3>\n<p style=\"text-align: justify;\">Comenzaremos trayendo a nuestro proyecto los frameworks necesarios para crear nuestra base de datos.  Usted s\u00f3lo tendr\u00e1 que crear la base de datos una vez y usted ser\u00e1 capaz de hacer referencia a trav\u00e9s de las distintas plataformas que soporta su aplicaci\u00f3n.<\/p>\n<ol>\n<li style=\"text-align: justify;\">Haga clic con el bot\u00f3n derecho del rat\u00f3n en su proyecto de aplicaci\u00f3n dentro del Explorador de soluciones<\/li>\n<li style=\"text-align: justify;\">Selecciona: A\u00f1adir<strong>&gt;<\/strong>A\u00f1adir nuevo proyecto<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10221\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/shared_project.png\" alt=\"Shared Project\" width=\"748\" height=\"610\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project.png 748w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project-300x245.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project-20x16.png 20w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><\/p>\n<p style=\"text-align: justify;\">Esta ser\u00e1 la clase de nuestro proyecto de Base de Datos, as\u00ed que ponle el nombre apropiado.  Para el ejemplo, lo he llamado 'shared_Couchbase_Database'.<\/p>\n<ol>\n<li style=\"text-align: justify;\">Seleccionar:  C#<\/li>\n<li style=\"text-align: justify;\">Seleccionar:  Opciones del proyecto compartido<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10222\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/shared_project_database-1024x618.png\" alt=\"Shared Project Database\" width=\"900\" height=\"543\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project_database-1024x618.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project_database-300x181.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project_database-768x463.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project_database-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/shared_project_database.png 1044w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3>C\u00f3digo de inicio de Couchbase<\/h3>\n<p style=\"text-align: justify;\">Comenzaremos trayendo a nuestro proyecto los frameworks necesarios para crear nuestra base de datos.  En este punto, tu proyecto de aplicaci\u00f3n deber\u00eda tener ahora el proyecto app y un proyecto para tu base de datos.  El nuestro se llama 'shared_Couchbase_Database' y el archivo generado se renombr\u00f3 a 'TaskManager'.  Abre ese archivo y a\u00f1adiremos la siguiente sentencia en la parte superior para poder usar las APIs de Couchbase:<\/p>\n<pre><code class=\"C#\">Using Couchbase.Lite;<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10223\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/couchbase_starter_code-1024x196.png\" alt=\"Couchbase Starter Code\" width=\"900\" height=\"172\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_starter_code-1024x196.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_starter_code-300x57.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_starter_code-768x147.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_starter_code-20x4.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_starter_code-1320x253.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/couchbase_starter_code.png 1500w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3>Crear base de datos<\/h3>\n<p style=\"text-align: justify;\">Ahora usaremos las APIs de Couchbase Lite para crear una base de datos m\u00f3vil.  Actualmente, estamos creando nuestro proyecto de base de datos para hacer referencia contra los proyectos de aplicaciones iOS y Android.  Esto tendr\u00e1 nuestras operaciones b\u00e1sicas de base de datos.  Declararemos una variable Database e inicializaremos la base de datos dentro del constructor, mientras pasamos un nombre que ser\u00e1 el nombre de nuestra base de datos al m\u00e9todo 'GetDatabase'.  Si no existe, se crear\u00e1 una Base de Datos.  Acabamos de crear una base de datos mediante programaci\u00f3n utilizando las APIs de Couchbase Mobile con el siguiente c\u00f3digo:<\/p>\n<pre><code class=\"C#\">db = Manager.SharedInstance.GetDatabase(\"name_db\");<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10224\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/create_database.png\" alt=\"Create database\" width=\"875\" height=\"254\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/create_database.png 875w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/create_database-300x87.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/create_database-768x223.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/create_database-20x6.png 20w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/p>\n<h3>Operaciones CRUD<\/h3>\n<p style=\"text-align: justify;\">Ahora vamos a crear 4 operaciones b\u00e1sicas para nuestra base de datos m\u00f3vil.  Operaciones Crear-Leer-Actualizar-Borrar.  Ya vimos antes que al crear una base de datos, tambi\u00e9n creamos una base de datos de documentos cuando pasamos una variable.  Por lo tanto el 'Create' ya esta hecho.  \u00a1Simple!<\/p>\n<h3>Recuperar documento<\/h3>\n<p style=\"text-align: justify;\">Para obtener una Tarea en particular que fue creada, crearemos un m\u00e9todo 'GetTask' y pasaremos un 'String id' este id hace referencia a un documento en particular que se relaciona con la Tarea.<\/p>\n<p style=\"text-align: justify;\">El tipo de retorno del m\u00e9todo es de tipo 'Tarea' y se crear\u00e1 m\u00e1s adelante.  Cada tarea o elemento creado por el usuario final en la aplicaci\u00f3n tendr\u00e1 un ID de documento \u00fanico en su base de datos.  Por lo tanto, cuando se crea una tarea, se crea un documento.  Puede pensar en un Documento como la representaci\u00f3n de una Tarea aqu\u00ed.  Dentro del m\u00e9todo GetTask, devolveremos el documento asociado.  Desde el documento particular que se devuelve, llamaremos a la API 'UserProperties' para obtener las propiedades de un documento.  La tarea que devolvemos del m\u00e9todo ahora tendr\u00e1 referencias a las propiedades del documento, por ejemplo, id, nombre, notas, hecho.<\/p>\n<p><!--cke_bookmark_2959S--><\/p>\n<pre><code class=\"C# language-cs\">var doc = db.GetDocument(id); <\/code><\/pre>\n<pre><code class=\"C# language-cs\">var props = doc.UserProperties;<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10225\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/retrieve_doc.png\" alt=\"Retrieve doc\" width=\"854\" height=\"570\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_doc.png 854w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_doc-300x200.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_doc-768x513.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_doc-400x267.png 400w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_doc-450x300.png 450w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_doc-20x13.png 20w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/p>\n<h3>Recuperar tareas<\/h3>\n<p style=\"text-align: justify;\">El m\u00e9todo 'CreateAllDocumentsQuery' crear\u00e1 una consulta que coincidir\u00e1 con todos los documentos de la base de datos.<\/p>\n<pre><code class=\"C#\">var query = db.CreateAllDocumentsQuery ();<\/code><\/pre>\n<p style=\"text-align: justify;\">llamaremos al m\u00e9todo 'Run()' sobre la variable query para capturar todos los documentos y a partir de ah\u00ed iteraremos sobre estos resultados para obtener las propiedades de cada uno de los documentos disponibles.  Operaremos sobre una fila resultante de una Vista Coucbase Lite, que es un \u00edndice.<\/p>\n<p>Obtenga el ID llamando a la propiedad 'DocumentID' de una fila concreta.<\/p>\n<pre><code class=\"bash\">ID = row.DocumentId,<\/code><\/pre>\n<p style=\"text-align: justify;\">Con cada objeto 'tarea' que tenga inicializada su propiedad resultados, la almacenaremos en la Lista de Tareas y la devolveremos.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10226\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/retrieve_all_tasks-1024x449.png\" alt=\"Retrieve all tasks\" width=\"900\" height=\"395\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_all_tasks-1024x449.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_all_tasks-300x132.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_all_tasks-768x337.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_all_tasks-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/retrieve_all_tasks.png 1242w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3>Guardar tarea<\/h3>\n<p style=\"text-align: justify;\">Llame al m\u00e9todo 'PutProperties' para guardar nuevas Tareas o documentos, que crear\u00e1 y guardar\u00e1 una nueva Revisi\u00f3n con las propiedades especificadas.<\/p>\n<p style=\"text-align: justify;\">El m\u00e9todo toma un Diccionario como par\u00e1metro de entrada por lo que llamaremos al m\u00e9todo 'ToDictionary' en el elemento Tarea.<\/p>\n<pre><code class=\"C#\">doc.PutProperties (item.ToDictionary ());<\/code><\/pre>\n<p style=\"text-align: justify;\">Si el valor del ID del objeto Task no es nulo, primero recuperar\u00e1 el documento para actualizar los valores de las claves. Puede que esto le resulte familiar, ya que tambi\u00e9n lo ha hecho en el Paso 5<\/p>\n<pre><code class=\"C#\">doc = db.GetDocument (item.ID);<\/code><\/pre>\n<p style=\"text-align: justify;\">Copie y pegue el c\u00f3digo que actualizar\u00e1 el documento con los nuevos valores clave del objeto Task antes del final de la sentencia 'else'.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10227\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/save_task-1024x582.png\" alt=\"Save task\" width=\"900\" height=\"512\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/save_task-1024x582.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/save_task-300x170.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/save_task-768x436.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/save_task-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/save_task.png 1030w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3>Eliminar tarea<\/h3>\n<p style=\"text-align: justify;\">La \u00faltima operaci\u00f3n es la operaci\u00f3n 'Borrar' y para borrar un documento, primero necesitar\u00e1s obtener el documento u objeto tarea que deseas borrar de la base de datos.  A continuaci\u00f3n, se llamar\u00e1 al m\u00e9todo 'Delete' en el documento para eliminarlo de la base de datos.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10228\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/delete_task.png\" alt=\"Delete task\" width=\"980\" height=\"257\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/delete_task.png 980w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/delete_task-300x79.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/delete_task-768x201.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/delete_task-20x5.png 20w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/p>\n<p><code class=\"C#\">\u00a0<\/code><\/p>\n<p style=\"text-align: justify;\">Ahora que has creado una base de datos local con sus operaciones, crearemos nuestro archivo 'Task' que contendr\u00e1 las propiedades que representar\u00e1n una tarea creada por un usuario.<\/p>\n<h3 style=\"text-align: justify;\">Clase de tarea<\/h3>\n<p style=\"text-align: justify;\">Para crear la clase Tarea, haremos clic con el bot\u00f3n derecho del rat\u00f3n en el proyecto de base de datos que se cre\u00f3 anteriormente y, a continuaci\u00f3n, seleccionaremos:<\/p>\n<ul>\n<li style=\"text-align: justify;\">A\u00f1adir<strong>&gt;<\/strong>Nuevo archivo ...<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10229\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/task.png\" alt=\"Task\" width=\"772\" height=\"663\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task.png 772w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task-300x258.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task-768x660.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task-20x17.png 20w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/p>\n<p style=\"text-align: justify;\">En la p\u00e1gina 'Nuevo Archivo', crearemos un archivo C# vac\u00edo llamado 'Tarea' para nuestro ejemplo aqu\u00ed y luego haremos clic en 'Nuevo'.  Este es nuestro objeto Task en el que crearemos las propiedades gen\u00e9ricas asociadas para representar una tarea.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10230\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/task_empty.png\" alt=\"Task empty\" width=\"812\" height=\"615\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_empty.png 812w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_empty-300x227.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_empty-768x582.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_empty-20x15.png 20w\" sizes=\"auto, (max-width: 812px) 100vw, 812px\" \/><\/p>\n<h3>Propiedades de la tarea<\/h3>\n<p style=\"text-align: justify;\">A continuaci\u00f3n, vamos a crear nuestra clase Task que contendr\u00e1 todas las propiedades de nuestro objeto Task.  Incluye la sentencia using:<\/p>\n<p style=\"text-align: justify;\">using System.Collections.Generic;<\/p>\n<p style=\"text-align: justify;\">Crearemos nuestra clase Task con las propiedades que representan una tarea.  Recordemos que Couchbase Mobile es una soluci\u00f3n de base de datos NoSQL JSON, por lo que almacenaremos nuestros datos como valores-clave.  A continuaci\u00f3n estamos utilizando un tipo 'Dictionary' para representar el esquema de datos clave-valor para las claves 'name', 'notes', 'done' que har\u00edan referencia a las respectivas variables de clase del mismo nombre.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10231\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2015\/12\/task_properties.png\" alt=\"Task properties\" width=\"990\" height=\"606\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_properties.png 990w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_properties-300x184.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_properties-768x470.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2015\/12\/task_properties-20x12.png 20w\" sizes=\"auto, (max-width: 990px) 100vw, 990px\" \/><\/p>\n<p style=\"text-align: justify;\">Ahora dispone de una base de datos local completa en su aplicaci\u00f3n m\u00f3vil y puede dirigirse a la secci\u00f3n\u00a0 <code class=\"C#\"><a href=\"https:\/\/github.com\/WilliamHoang\/Tasky_Couchbase\">Portal GitHub<\/a><\/code> para completar la aplicaci\u00f3n de tareas m\u00f3viles de Xamarin.  Ya tienes una base de datos m\u00f3vil completa dentro de tu aplicaci\u00f3n y los siguientes pasos son crear una aplicaci\u00f3n de Xamarin multiplataforma que sea espec\u00edfica para iOS o Android UX.  Para Couchbase Lite, puedes hacer referencia a la aplicaci\u00f3n <code class=\"C#\"><a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/current\/develop\/training\/build-first-xamarin-android-app\/index.html\">Gu\u00eda de Xamarin Android<\/a><\/code> o el <code class=\"C#\"><a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.1.0\/develop\/training\/build-first-xamarin-ios-app\/index.html\">Gu\u00eda de Xamarin iOS<\/a><\/code> para obtener m\u00e1s informaci\u00f3n sobre c\u00f3mo crear experiencias m\u00f3viles sin conexi\u00f3n con Sync y c\u00f3mo crear \u00edndices de documentos mediante vistas y, a continuaci\u00f3n, consultar documentos para su aplicaci\u00f3n m\u00f3vil.  Tambi\u00e9n est\u00e1 la\u00a0<code class=\"C#\"><a href=\"https:\/\/github.com\/couchbaselabs\/mini-hacks\/tree\/master\/kitchen-sync\/xamarin\/project\">Couchbase Mobile Xamarin Mini-Hack<\/a><\/code> donde puedes aprender a crear una aplicaci\u00f3n m\u00f3vil sin conexi\u00f3n, \u00a1y exploraremos esto m\u00e1s a fondo en el pr\u00f3ximo blog de Xamarin Couchbase!<\/p>","protected":false},"excerpt":{"rendered":"<p>Implementing a Xamarin solution with Couchbase Mobile is the perfect combination in creating a cross-platform mobile application in C# that has local persistence.\u00a0 This allows your content and data to not be ephemeral but better yet, your mobile application is [&hellip;]<\/p>","protected":false},"author":30,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1810],"tags":[],"ppma_author":[8983],"class_list":["post-2040","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-mobile"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build Mobile Apps with Xamarin and Couchbase Mobile<\/title>\n<meta name=\"description\" content=\"Learn how to get started with Xamarin and begin to implement the Couchbase Lite components from the Couchbase Mobile stack to create a storage layer.\" \/>\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\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Mobile Apps with Xamarin and Couchbase Mobile\" \/>\n<meta property=\"og:description\" content=\"Learn how to get started with Xamarin and begin to implement the Couchbase Lite components from the Couchbase Mobile stack to create a storage layer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-16T01:01:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-13T12:49:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"William Hoang, Mobile Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Hoang, Mobile Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\"},\"author\":{\"name\":\"William Hoang, Mobile Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32\"},\"headline\":\"Build Mobile Apps with Xamarin and Couchbase Mobile\",\"datePublished\":\"2015-12-16T01:01:41+00:00\",\"dateModified\":\"2021-01-13T12:49:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\"},\"wordCount\":1760,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Mobile\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\",\"name\":\"Build Mobile Apps with Xamarin and Couchbase Mobile\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-12-16T01:01:41+00:00\",\"dateModified\":\"2021-01-13T12:49:46+00:00\",\"description\":\"Learn how to get started with Xamarin and begin to implement the Couchbase Lite components from the Couchbase Mobile stack to create a storage layer.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build Mobile Apps with Xamarin and 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\/425717456c198fdf9aaa5d7a6d42ad32\",\"name\":\"William Hoang, Mobile Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/650445f1ea30314c4f3555dd680154f5\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g\",\"caption\":\"William Hoang, Mobile Developer Advocate, Couchbase\"},\"description\":\"William was a Developer Advocate on the Mobile Engineering\/Developer Experience team at Couchbase. His love for coffee and code has transcended him into the world of mobile while appreciating the offline in-person experiences. Prior, William worked on the Developer Relations team over at Twitter, BlackBerry, and Microsoft while also having been a Software Embedded GPS engineer at Research In Motion. William graduated from McGill University in Electrical Software Engineering\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/william-hoang\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Crear aplicaciones m\u00f3viles con Xamarin y Couchbase Mobile","description":"Aprende a empezar con Xamarin y a implementar los componentes de Couchbase Lite de la pila de Couchbase Mobile para crear una capa de almacenamiento.","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\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/","og_locale":"es_MX","og_type":"article","og_title":"Build Mobile Apps with Xamarin and Couchbase Mobile","og_description":"Learn how to get started with Xamarin and begin to implement the Couchbase Lite components from the Couchbase Mobile stack to create a storage layer.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-12-16T01:01:41+00:00","article_modified_time":"2021-01-13T12:49:46+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"William Hoang, Mobile Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"William Hoang, Mobile Developer Advocate, Couchbase","Est. reading time":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/"},"author":{"name":"William Hoang, Mobile Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32"},"headline":"Build Mobile Apps with Xamarin and Couchbase Mobile","datePublished":"2015-12-16T01:01:41+00:00","dateModified":"2021-01-13T12:49:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/"},"wordCount":1760,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Mobile"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/","url":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/","name":"Crear aplicaciones m\u00f3viles con Xamarin y Couchbase Mobile","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-12-16T01:01:41+00:00","dateModified":"2021-01-13T12:49:46+00:00","description":"Aprende a empezar con Xamarin y a implementar los componentes de Couchbase Lite de la pila de Couchbase Mobile para crear una capa de almacenamiento.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/build-mobile-apps-with-xamarin-and-couchbase-mobile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build Mobile Apps with Xamarin and 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\/425717456c198fdf9aaa5d7a6d42ad32","name":"William Hoang, Defensor del Desarrollador M\u00f3vil, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/650445f1ea30314c4f3555dd680154f5","url":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","caption":"William Hoang, Mobile Developer Advocate, Couchbase"},"description":"William fue Developer Advocate en el equipo de Mobile Engineering\/Developer Experience de Couchbase. Su amor por el caf\u00e9 y el c\u00f3digo le ha trascendido al mundo de los m\u00f3viles, al tiempo que aprecia las experiencias presenciales fuera de l\u00ednea. Anteriormente, William trabaj\u00f3 en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, adem\u00e1s de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenci\u00f3 en Ingenier\u00eda El\u00e9ctrica de Software por la Universidad McGill.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/william-hoang\/"}]}},"authors":[{"term_id":8983,"user_id":30,"is_guest":0,"slug":"william-hoang","display_name":"William Hoang, Mobile Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","author_category":"","last_name":"Hoang","first_name":"William","job_title":"","user_url":"","description":"William fue Developer Advocate en el equipo de Mobile Engineering\/Developer Experience de Couchbase. Su amor por el caf\u00e9 y el c\u00f3digo le ha trascendido al mundo de los m\u00f3viles, al tiempo que aprecia las experiencias presenciales fuera de l\u00ednea. Anteriormente, William trabaj\u00f3 en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, adem\u00e1s de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenci\u00f3 en Ingenier\u00eda El\u00e9ctrica de Software por la Universidad McGill."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2040","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\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2040"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2040\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2040"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}