Este blog multiparte te ayudará a construir una aplicación móvil end-to-end usando Couchbase Lite. Las aplicaciones de última generación de extremo a extremo, escalables y de grado de producción incluyen las siguientes características:

    1. En base de datos integrada - Almacenar los datos localmente reduce los viajes en red a una base de datos centralizada para cada actividad. Esto es crucial para mejorar la experiencia del usuario.
    2. Sincronización con otros dispositivos móviles iguales y con un servidor centralizado. 
    3. Análisis avanzados búsqueda de texto completo y aprendizaje automático en el dispositivo.

Como hay mucho que tratar, hemos dividido este proyecto en tres partes. La Parte 1 muestra el proceso para construir una aplicación móvil que aprovecha Couchbase Lite y lo utiliza como una base de datos integrada para almacenar datos. La parte 2 mostrará cómo ejecutar la búsqueda de texto completo (FTS) en el dispositivo. Y pEl arte 3 mostrará el proceso de sincronización de los datos con los pares y un servidor Couchbase centralizado.

¿Qué es Couchbase Mobile? 

Couchbase Móvil incluye:

    1. Embedded Couchbase Lite base de datos para dispositivos periféricos
    2. Alto rendimiento Pasarela de sincronización para la sincronización entre pares y entre servidores centralizados
    3. Centros de datos periféricos Servidor Couchbase que pueden desplegarse en la nube, in situ o en centros de datos locales.

Couchbase Mobile architectural diagram

Visión general de la aplicación móvil

El código de esta aplicación de demostración está en mi Repositorio GitHub de Couchbase Mobile. Descargar Rateit.zip y extrae los archivos a tu carpeta local. También puedes seguir las instrucciones de este blog para crear la aplicación desde cero.

Las funciones de la aplicación se dividen en tres partes:

    1. Enviar solicitudes de valoración
    2. Recibir solicitudes de clasificación de otros
    3. Ver la solicitud calificada devuelta por otros
Enviar solicitudes de valoración

La app que construiremos en esta aplicación envía una petición de valoración a una persona y recibe la petición valorada de vuelta.

En ENVIAR A indica el número de teléfono de la persona a la que desea enviar la solicitud. La dirección MENSAJE indica qué quieres que hagan con él. En este caso, como se trata de una solicitud de valoración, tengo un mensaje predefinido de "Valoración 1-5", que indica que tienen que proporcionar una valoración cuando devuelvan la solicitud.

En ASUNTO indica cualquier tema sobre el que desee una calificación, por ejemplo, como uno de estos:

Actor: Chris Hemsworth

Libro: Orgullo y prejuicio

www.google.com

No hay validaciones de edición estrictas en los campos, pero eso es algo que se haría cuando se construye una aplicación móvil de nivel de producción.

Al hacer clic en ENVIARse envía una solicitud a la persona de la que se desea obtener una respuesta. Dado que hablaremos de la sincronización peer-to-peer con otros dispositivos, y con un servidor centralizado en un próximo post, aquí nos centraremos en el botón modo local sin conexión funcionalidad. 

Solicitudes de calificación recibidas 

Esta sección de la aplicación te permite responder a las solicitudes de valoración recibidas de otras personas. Definimos una barra de valoración que te permite poner el número de estrellas de tu valoración. 

Para permanecer dentro del ámbito de esta aplicación cuando envío una solicitud, he codificado valores para remitente y receptor. He utilizado Sandhya como remitente y Rangana como receptor. Esta sección mostrará todas las solicitudes de Rangana, es decir, donde el A es igual a Rangana.

Solicitudes de clasificación entrantes

En esta sección se enumeran todas las solicitudes que ha enviado y para las que ha recibido una respuesta.

Veamos ahora un ejemplo para que todas las secciones queden claras.

En primer lugar, enviamos una solicitud al número de teléfono 732-600-7000 con un mensaje para valorar el libro Orgullo y prejuicio.

Sample screen of Couchbase Mobile app

Al hacer clic en SOLICITUDES DE CALIFICACIÓN RECIBIDAS en realidad me está mostrando los que envié a otra persona, sólo para fines de demostración aquí. En el mundo real, iría a la persona a la que va dirigido.

Receiving a messaging in the sample mobile app

Selecciono una calificación de cuatro estrellas y hago clic en el botón TARIFA que inicia la devolución al envío (esta solicitud clasificada me vuelve como se muestra a continuación):

Ahora, al hacer clic en SOLICITUDES CLASIFICADAS ENTRANTESpodemos ver si la valoración me llegó a mí, el remitente. Usted puede ver que volvió y enumeró mi calificación de 4,0 estrellas.

En BORRAR para eliminar esa fila en concreto.

Ahora, ¡a construir la aplicación!

Primeros pasos: Revise la documentación de CBLite

Por favor, revise el documentación para entender los distintos componentes de una aplicación de base de datos Couchbase Lite. Para esta aplicación, creo una base de datos nueva cuando la aplicación es invocada por primera vez. Alternativamente, la aplicación también puede utilizar una base de datos pre-construida.

Los pasos para incrustar la base de datos se pueden encontrar aquí en el Documentación de Couchbase Lite. Repasa cada una de las secciones para aprender los siguientes conceptos:

    • crear y abrir una base de datos
    • escribir un documento en la base de datos incrustada
    • escribir consultas para recuperar el documento
    • expiración o supresión de un documento

Couchbase Mobile documentation

Requisitos previos para la creación de aplicaciones

Esta aplicación se ha creado para dispositivos Android con los siguientes requisitos previos de software y hardware que debes tener en cuenta:

    1. Es necesario comprender los fundamentos de la creación de aplicaciones con Android Studio y la programación en Java.
    2. Esta aplicación de demostración y las capturas de pantalla relacionadas provienen de la creación de la aplicación en un ordenador MacOS.
    3. Utilizamos el, disponible gratuitamente, Android Studio 2020.3 para crear aplicaciones móviles para dispositivos Android. 
    4. Se utiliza la versión 3.0.0-beta02 de Couchbase Lite. Las bibliotecas necesarias estarán integradas en el código y no será necesario descargar el software manualmente en el escritorio.

Creación de la aplicación

Asegúrese de que Android Studio está instalado en su escritorio y cree un nuevo proyecto, eligiendo Actividad vacía como tipo de proyecto. Android Studio construye una plantilla de la página principal para usted basado en lo que usted elija. Elegí esta porque quiero construir una página de inicio de aplicación personalizada.

Starting an Android Studio projectAndroid Studio project settings

Puede ver los diferentes ajustes que he utilizado en la página Nuevo proyecto formulario. Esto crea una aplicación que mostrará "hola mundo" cuando se compila y se ejecuta en un emulador. Para crear un emulador para la aplicación haz clic en  Herramientas → Administrador de AVD → Crear dispositivo virtual..

Esto te da una lista de dispositivos que puedes emular sin tener que adquirir el dispositivo real y compilar o desplegar el código en él. He utilizado NEXUS 5X API 25.

Choosing a virtual device for the Android Studio emulator

Al ejecutar el emulador, la siguiente pantalla muestra la aplicación básica, vacía:

Basic mobile app main window

A partir de aquí construimos los componentes reales de la aplicación Rateit:

Localice el build.gradle(Módulo.Aplicación.rateit) y modifica el contenido para que coincida con lo siguiente:

    • En compileSDK y minSDK para el emulador que elijas.
    • La versión de Java que tienes.
    • Añada lo siguiente aplicación en la sección de dependencias:

Diseños 

Los archivos de diseño son archivos XML que describen la pantalla de la aplicación móvil. En activity_mail.xml estará presente en la carpeta del proyecto y debe sustituirse por el archivo XML de el código de GitHub. El resto de los archivos XML pueden añadirse pulsando con el botón derecho del ratón sobre maquetación → Nuevo → XML → Archivo XML de maquetación..

Adding new layouts to an Android Studio project

Hay que crear otros tres archivos XML de diseño:

activity_main.xml 

Esto tiene la ENVIAR A, MENSAJE, ASUNTO campos además del dos vistas de lista para el Enviado y Recibido peticiones. También define qué función invocar cuando la función HAGA CLIC PARA ENVIAR UNA SOLICITUD DE VALORACIÓN, SOLICITUDES DE CALIFICACIÓN RECIBIDAS y SOLICITUDES DE CALIFICACIÓN RECIBIDAS se pulsan los botones. El código XML puede escribirse o generarse configurando los atributos en el archivo atributos del diseñador.

Diseño personalizado.xml 

Esto tiene la Vista de lista y la disposición de todos los SOLICITUDES DE CALIFICACIÓN RECIBIDAS y define qué función invocar cuando el Tarifa y Borrar se pulsan los botones. 

CustomLayoutRated.xml 

Esta disposición tiene el Vista de lista y la disposición de todos los SOLICITUDES CLASIFICADAS ENTRANTES y también define qué función invocar cuando la función Borrar está pulsado.

La aplicación Rateit

La página principal de la aplicación tiene tres botones:

    1. HAGA CLIC PARA ENVIAR UNA SOLICITUD DE VALORACIÓN
    2. SOLICITUDES DE CALIFICACIÓN RECIBIDAS
    3. SOLICITUDES DE CALIFICACIÓN RECIBIDAS

En mainactivity.java estará presente en la carpeta del proyecto y debe ser sustituido por el código de el repositorio GitHub. El resto de los archivos Java pueden añadirse pulsando en Javadestacando com.example.rateit y haciendo clic con el botón derecho en Nuevo → Clase Java. Crear clases para cada uno de:

    • Usuario.java
    • UserCustomAdapter.java
    • Clasificado.java
    • RatedCustomAdapter.java

Adding new Java classes to an Android Studio project

Revisar el código 

Mainactivity.java

Localice Mainactivity.java bajo el Java → com.example.rateit y pegue el siguiente código dentro de la clase Actividad principal

En enviar datos se activa cuando HAGA CLIC PARA ENVIAR UNA SOLICITUD DE VALORACIÓN se pulsa. Recoge todos los campos de entrada y crea dos documentos-uno de Tipo Enviar y uno de tipo Recibido. El tipo de registro recibido nos ayuda a ver los registros en el SOLICITUDES DE CALIFICACIÓN RECIBIDAS

Tenga en cuenta que la Parte 2 de la serie de blog mostrará la función de sincronización peer-to-peer y la escritura del registro recibido se eliminará porque el segundo dispositivo estará recibiendo esta solicitud.

En receivedata se activa cuando SOLICITUDES DE CALIFICACIÓN RECIBIDAS y muestra todas las solicitudes de clasificación recibidas. Ejecuta una consulta a la base de datos local para obtener los registros. Le permite introducir una valoración y crea un registro JSON con la valoración cuando se pulsa el botón TARIFA se escribe la solicitud en la base de datos con un tipo de documento de clasificado. Si el BORRAR el registro se elimina, pero si se establece el valor TTL (Tiempo de vida) del documento a expirar.

En incomingratings se activa cuando SOLICITUDES DE CALIFICACIÓN RECIBIDAS se pulsa y muestra todas las valoraciones enviadas por el usuario que fueron valoradas por otros y volvieron. Cuando el BORRAR el atributo TTL (Time to Live) expira.

Calificado.Java tiene el Rated y establece y obtiene los distintos atributos de los registros 

RatedCustomAdapter.java y RatedHolder.java rellenará el listview. El diseño se define en CustomLayoutRated.xml

Usuario.java dispone de las funciones get y set para los atributos del documento necesarios para rellenar el archivo SOLICITUD DE CALIFICACIÓN RECIBIDA listview.

UserCustomAdapter.java y UserHolder.java tiene el SOLICITUD DE CALIFICACIÓN RECIBIDA listview incluyendo el Rating Barel contenido del expediente y el TARIFA y BORRAR botón

Una vez que todas estas piezas de código se colocan en las carpetas y archivos apropiados en la aplicación, la carpeta del proyecto se verá así:

File structure of Android Studio project

Compilar el código 

Una vez actualizado todo el código, haga clic en Construir → Reconstruir proyecto. Cuando lo consiga, pulse Construir → Ejecutar.

Se le pedirá que elija el emulador la primera vez que ejecute la aplicación, por ejemplo, elija el emulador NEXUS 5X API 25 como hice yo. Una vez finalizada la ejecución, la página principal tendrá este aspecto:

Final main screen of Android Studio app running Couchbase Mobile

Ahora ha desplegado con éxito el código en el emulador de su elección.

Próximos pasos

Esta es la primera parte de la serie de blogs, Creación de una aplicación móvil con Couchbaseque se centra en una solución móvil completa de extremo a extremo. Este post mostraba cómo construir una aplicación móvil offline con una base de datos local, incrustada, Couchbase Lite.

En la siguiente parte de la serie, vamos a construir con la función Sync Gateway para mostrar la función de sincronización peer-to-peer, así como la sincronización con un clúster centralizado de Couchbase Server.

Entre los principales recursos a los que se hace referencia en este post figuran:

Autor

Publicado por Sandhya Krishnamurthy, Ingeniera Superior de Soluciones, Couchbase

Sandhya Krishnamurthy es una tecnóloga con una sólida formación en desarrollo de bases de datos y experiencia en preventa. Es artista a tiempo parcial, cantante a tiempo parcial y madre a tiempo completo.

Dejar una respuesta