Couchbase Móvil

Crear aplicaciones móviles con Xamarin y Couchbase Mobile

xamarin-logo
Implementar una solución Xamarin con Couchbase Mobile es la combinación perfecta para crear una aplicación móvil multiplataforma en C# que tenga persistencia local. Esto permite que tu contenido y datos no sean efímeros, pero mejor aún, tu aplicación móvil no depende de una conexión de red en todo momento. En este blog exploraremos cómo empezar con Xamarin y empezar a implementar los componentes de Couchbase Lite de la pila de Couchbase Mobile para crear una capa de almacenamiento.

Nueva solución Xamarin

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ódigo 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án 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ón de Couchbase Mobile. Haz clic en "Nueva solución


Ahora se le presentará con una página de solución de Xamarin. Para este blog nos centraremos en la creación de una aplicación Android y para ello vamos a..

  1. Elige 'Android' en el desplegable C# y luego 'Aplicación Android' como nuestro proyecto.
  2. Proporcione un nombre para su proyecto como el siguiente, donde el nombre es "CouchbaseMobile_Xamarin_App".
  3. Haga clic en "Aceptar".

android_project
Añadir paquete NuGet de Couchbase

Ahora tiene un proyecto de aplicación de Android vacío y vamos a añadir Couchbase Mobile como nuestro siguiente paso. Xamarin ahora tiene soporte de primera clase para NuGet que está incorporado y totalmente integrado. NuGet es un sistema de gestión de paquetes para .NET que simplifica el proceso de uso de bibliotecas de terceros dentro de tu aplicación móvil como Couchbase Lite. Ahora descargaremos el último paquete de Couchbase Lite.NET desde NuGet dentro de Xamarin Studio.

  1. Haga clic derecho en su proyecto dentro de la sección del explorador 'Solución'. He definido y creado un proyecto llamado 'CouchbaseMobile_Xamarin_App'.
  2. Seleccione "Añadir
  3. Seleccione "Añadir paquetes

Couchbase Nuget Package

Ahora que el cuadro de diálogo "Añadir paquetes" aparece como se muestra a continuación, vamos a..:

  1. Escribe en el campo de búsqueda superior derecho 'Couchbase Lite' y pulsa enter para buscar el paquete a instalar desde la Galería Oficial NuGet.
  2. Seleccione el paquete Couchbase Lite de la lista de resultados.
  3. Haga clic en "Añadir paquete

Consola y carpeta de paquetes

Xamarin Studio añadirá 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ón, haga clic en el icono:

  • Consola de paquetes" en la parte inferior derecha de Xamarin Studio.

Podrá ver información detallada sobre el paquete Couchbase.Lite que se está instalando. Donde la consola de paquetes tendrá..

  1. Añadir Couchbase.Lite...
  2. ...Habrá otros archivos que se añadan entre medias...
  3. Finalmente podrás ver 'Successfully added 'Couchbase.Lite ...' to your project

Couchbase Install
A continuación, en la sección Explorador de soluciones, a la izquierda de Xamarin Studio, debería ver los siguientes 4 paquetes instalados. Despliegue la carpeta "Paquetes" y debería ver:

  1. Couchbase.Lite
  2. Newtonsoft.Json
  3. SQLitePCL.raw_basic
  4. SQLitePCL.ugly

Package Folder
Paquete de actualización

Desde la carpeta "Paquetes", ahora puedes actualizar fácilmente paquetes individuales o todos ellos a la última versión o eliminarlos del proyecto, haciendo clic con el botón derecho y seleccionando la opción de menú adecuada.

  1. Haga clic con el botón derecho en "Paquetes" y pulse "Actualizar" para actualizar todos los paquetes.
  2. En Xamarin Studio debería ver ahora "Actualización de 4 paquetes en el proyecto..".

Update Package

Update Package 01

Aplicaciones móviles para Android e iOS

Hemos añadido correctamente Couchbase Lite a nuestro proyecto de Android en Xamarin Studio. Ahora vamos a entrar en un poco de código de arranque para crear una aplicación que tiene una base de datos móvil local. La aplicación que estamos construyendo es una aplicación de seguimiento de tareas por hacer que tendrá persistencia local y lo que es genial es que sólo tendremos que escribir nuestro código de base de datos una vez para la solución de iOS y Android, ya que estamos utilizando Xamarin. Una base de datos y dos soluciones de plataforma diferentes. A continuación puede ver tanto la versión de Android y la interfaz de usuario de iOS.

Task Xamarin

La belleza aquí es que con sólo una base de código de base de datos, que son capaces de orientar ambas plataformas en lugar de volver a escribir el código de base de datos de nuevo para ser plataforma específica. A continuación, la versión de iOS está ejecutando el mismo código cliente de Couchbase Lite que la versión de Android.

Task iOS Xamarin

Proyecto compartido

Comenzaremos trayendo a nuestro proyecto los frameworks necesarios para crear nuestra base de datos. Usted sólo tendrá que crear la base de datos una vez y usted será capaz de hacer referencia a través de las distintas plataformas que soporta su aplicación.

  1. Haga clic con el botón derecho del ratón en su proyecto de aplicación dentro del Explorador de soluciones
  2. Selecciona: Añadir>Añadir nuevo proyecto

Shared Project

Esta será la clase de nuestro proyecto de Base de Datos, así que ponle el nombre apropiado. Para el ejemplo, lo he llamado 'shared_Couchbase_Database'.

  1. Seleccionar: C#
  2. Seleccionar: Opciones del proyecto compartido

Shared Project Database

Código de inicio de Couchbase

Comenzaremos trayendo a nuestro proyecto los frameworks necesarios para crear nuestra base de datos. En este punto, tu proyecto de aplicación debería 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ó a 'TaskManager'. Abre ese archivo y añadiremos la siguiente sentencia en la parte superior para poder usar las APIs de Couchbase:

Couchbase Starter Code

Crear base de datos

Ahora usaremos las APIs de Couchbase Lite para crear una base de datos móvil. Actualmente, estamos creando nuestro proyecto de base de datos para hacer referencia contra los proyectos de aplicaciones iOS y Android. Esto tendrá nuestras operaciones básicas de base de datos. Declararemos una variable Database e inicializaremos la base de datos dentro del constructor, mientras pasamos un nombre que será el nombre de nuestra base de datos al método 'GetDatabase'. Si no existe, se creará una Base de Datos. Acabamos de crear una base de datos mediante programación utilizando las APIs de Couchbase Mobile con el siguiente código:

Create database

Operaciones CRUD

Ahora vamos a crear 4 operaciones básicas para nuestra base de datos móvil. Operaciones Crear-Leer-Actualizar-Borrar. Ya vimos antes que al crear una base de datos, también creamos una base de datos de documentos cuando pasamos una variable. Por lo tanto el 'Create' ya esta hecho. ¡Simple!

Recuperar documento

Para obtener una Tarea en particular que fue creada, crearemos un método 'GetTask' y pasaremos un 'String id' este id hace referencia a un documento en particular que se relaciona con la Tarea.

El tipo de retorno del método es de tipo 'Tarea' y se creará más adelante. Cada tarea o elemento creado por el usuario final en la aplicación tendrá un ID de documento único 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ón de una Tarea aquí. Dentro del método 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étodo ahora tendrá referencias a las propiedades del documento, por ejemplo, id, nombre, notas, hecho.

Retrieve doc

Recuperar tareas

El método 'CreateAllDocumentsQuery' creará una consulta que coincidirá con todos los documentos de la base de datos.

llamaremos al método 'Run()' sobre la variable query para capturar todos los documentos y a partir de ahí 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 índice.

Obtenga el ID llamando a la propiedad 'DocumentID' de una fila concreta.

Con cada objeto 'tarea' que tenga inicializada su propiedad resultados, la almacenaremos en la Lista de Tareas y la devolveremos.

Retrieve all tasks

Guardar tarea

Llame al método 'PutProperties' para guardar nuevas Tareas o documentos, que creará y guardará una nueva Revisión con las propiedades especificadas.

El método toma un Diccionario como parámetro de entrada por lo que llamaremos al método 'ToDictionary' en el elemento Tarea.

Si el valor del ID del objeto Task no es nulo, primero recuperará el documento para actualizar los valores de las claves. Puede que esto le resulte familiar, ya que también lo ha hecho en el Paso 5

Copie y pegue el código que actualizará el documento con los nuevos valores clave del objeto Task antes del final de la sentencia 'else'.

Save task

Eliminar tarea

La última operación es la operación 'Borrar' y para borrar un documento, primero necesitarás obtener el documento u objeto tarea que deseas borrar de la base de datos. A continuación, se llamará al método 'Delete' en el documento para eliminarlo de la base de datos.

Delete task

 

Ahora que has creado una base de datos local con sus operaciones, crearemos nuestro archivo 'Task' que contendrá las propiedades que representarán una tarea creada por un usuario.

Clase de tarea

Para crear la clase Tarea, haremos clic con el botón derecho del ratón en el proyecto de base de datos que se creó anteriormente y, a continuación, seleccionaremos:

  • Añadir>Nuevo archivo ...

Task

En la página 'Nuevo Archivo', crearemos un archivo C# vacío llamado 'Tarea' para nuestro ejemplo aquí y luego haremos clic en 'Nuevo'. Este es nuestro objeto Task en el que crearemos las propiedades genéricas asociadas para representar una tarea.

Task empty

Propiedades de la tarea

A continuación, vamos a crear nuestra clase Task que contendrá todas las propiedades de nuestro objeto Task. Incluye la sentencia using:

using System.Collections.Generic;

Crearemos nuestra clase Task con las propiedades que representan una tarea. Recordemos que Couchbase Mobile es una solución de base de datos NoSQL JSON, por lo que almacenaremos nuestros datos como valores-clave. A continuación estamos utilizando un tipo 'Dictionary' para representar el esquema de datos clave-valor para las claves 'name', 'notes', 'done' que harían referencia a las respectivas variables de clase del mismo nombre.

Task properties

Ahora dispone de una base de datos local completa en su aplicación móvil y puede dirigirse a la sección  Portal GitHub para completar la aplicación de tareas móviles de Xamarin. Ya tienes una base de datos móvil completa dentro de tu aplicación y los siguientes pasos son crear una aplicación de Xamarin multiplataforma que sea específica para iOS o Android UX. Para Couchbase Lite, puedes hacer referencia a la aplicación Guía de Xamarin Android o el Guía de Xamarin iOS para obtener más información sobre cómo crear experiencias móviles sin conexión con Sync y cómo crear índices de documentos mediante vistas y, a continuación, consultar documentos para su aplicación móvil. También está la Couchbase Mobile Xamarin Mini-Hack donde puedes aprender a crear una aplicación móvil sin conexión, ¡y exploraremos esto más a fondo en el próximo blog de Xamarin Couchbase!

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Author

Posted by William Hoang

William fue Developer Advocate en el equipo de Mobile Engineering/Developer Experience de Couchbase. Su amor por el café y el código le ha trascendido al mundo de los móviles, al tiempo que aprecia las experiencias presenciales fuera de línea. Anteriormente, William trabajó en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, además de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenció en Ingeniería Eléctrica de Software por la Universidad McGill.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.