Couchbase Móvil

Creación de una aplicación móvil con Couchbase - Parte 3

Parte 3: Añadir funciones de sincronización a un servidor centralizado

Este blog de varias partes ayudará al lector a construir una aplicación móvil de extremo a extremo utilizando las características líderes en la industria de Couchbase Lite. 

Una aplicación de última generación, de extremo a extremo, escalable y apta para la producción debe incluir las siguientes características:

    • Una base de datos integrada para almacenar datos localmente en el dispositivo y reducir los desplazamientos por la red a una base de datos centralizada para cada actividad. Esto contribuye en gran medida a mejorar la experiencia del usuario.
    • Realiza búsquedas de texto completo en el dispositivo.
    • Sincronización con dispositivos móviles pares y un servidor centralizado.

Esta serie de entradas de blog se divide en cuatro partes:

    • Parte 1 muestra el proceso de creación de una aplicación móvil que aprovecha CB Lite y la utiliza como base de datos integrada para almacenar datos.
    • Parte 2 muestra cómo ejecutar la búsqueda de texto completo (FTS) en el dispositivo.
    • La Parte 3 introduce la sincronización con un servidor Couchbase centralizado desde dispositivos edge.
    • La Parte 4 demostrará la sincronización peer-to-peer entre dispositivos.

Estamos construyendo esta aplicación sobre Servidor Couchbase y con Couchbase Móvil utilizado en el dispositivo y para la gestión de la sincronización.

Couchbase es una galardonada base de datos distribuida NoSQL en la nube. Ofrece una versatilidad, un rendimiento, una escalabilidad y un valor financiero inigualables en implementaciones en la nube, locales, híbridas, en la nube distribuida y de computación perimetral.

En Couchbase Móvil La cartera incluye:

    • Base de datos integrada para dispositivos periféricos.
    • Una pasarela de sincronización de alto rendimiento que ofrece funciones de sincronización entre pares y con servidor centralizado.
    • Centros de datos Edge basados en Couchbase Server que pueden desplegarse en la nube, on-prem o localmente.

Diagram of the Couchbase Mobile portfolio

Añadir la función Sync

El código de este tutorial está disponible en mi sofábasamóvil Repositorio GitHub. Estamos trabajando con el RateIt que forma parte del archivo Rateit.zip, extraiga sus archivos a una carpeta local.

También puedes seguir las instrucciones de esta serie de blogs para crear la aplicación desde cero.

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

    1. envío de solicitudes
    2. recibir peticiones de otros
    3. ver la solicitud que ha enviado

Enviar solicitudes de valoración

La aplicación que crearemos en este tutorial permitirá a los usuarios enviar una solicitud de clasificación temática a una persona y recibir sus respuestas.

A ENVIAR A indica el número de teléfono de la persona a la que desea enviar la solicitud. 

En 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: "Calificar 1-5" - indicando que tienen que proporcionar una calificación cuando envíen la solicitud de vuelta.

En Asunto indica cualquier tema sobre el que desee una calificación, por ejemplo, puede ser simplemente una palabra o frase como:

    • Actor: Chris Hemsworth
    • Libro: Orgullo y prejuicio
    • www.google.com

No hay ninguna validación de entrada estricta en los campos, pero eso es algo que se haría para una aplicación móvil de nivel de producción.

Al hacer clic en ENVIARse envía una solicitud a la persona destinataria.

Requisitos previos del software

En esta parte del blog, requerimos que se instale el siguiente software en un ordenador de sobremesa o servidor al que accederá su aplicación móvil.

Servidor Couchbase - Instale una versión en su portátil o servidor local utilizando este enlace de descarga gratuita. Una vez instalado correctamente, debería poder acceder a la consola de Couchbase desde su navegador en https://localhost:8091.

Couchbase Server download page

Servidor Sync Gateway - Esto puede ser en la misma máquina de desarrollo que Couchbase Server. Descargue Sync Gateway aquí y revise el documentación.

Couchbase Mobile Sync Gateway download page

Siga todos los Comience aquí pasos de la documentación, resaltados aquí en verde.

Couchbase Sync Gateway setup docs

Para empezar, haz lo siguiente:

    • Inicie Sync Gateway en su ordenador portátil.
    • Complete todos los pasos de la sección de verificación.
    • Dé al usuario acceso a todos los canales con esta sentencia curl:

 

Presentamos la aplicación móvil RateIt

Como se muestra en las entradas anteriores, la página principal de la aplicación tiene tres botones:

    • HAGA CLIC PARA ENVIAR UNA SOLICITUD DE VALORACIÓN
    • SOLICITUDES DE CALIFICACIÓN RECIBIDAS
    • SOLICITUDES DE CALIFICACIÓN RECIBIDAS

Añadiremos componentes de interfaz de usuario que permitan activar y desactivar la sincronización, así como una entrada de texto para que los usuarios se identifiquen.

Los archivos de código que manipularemos son mainactivity.java y activity_main.xml.

La sincronización desde el dispositivo móvil al servidor centralizado es para aplicaciones que necesitan actualizar constantemente un servidor centralizado con cualquier cambio de los dispositivos de mano. Esta sincronización aplicará esos cambios a otros dispositivos si también comparten la misma aplicación y conexión a la base de datos centralizada.

 

Revisión del código de sincronización del servidor

Añada el siguiente código a activity_main.xml para incorporar la sincronizar interruptor. Es un interruptor de encendido/apagado que permite al usuario decidir cuándo activar la sincronización.

El siguiente fragmento XML toma el nombre de usuario como entrada del usuario y tiene una etiqueta asociada para facilitar su uso.

La página de inicio de la aplicación tendrá ahora este aspecto, fíjese en los nuevos componentes de la fila superior:

Couchbase Mobile app with new UI components

Ahora actualizaremos Mainactivity.java en el Java → com.example.rateit con estos cambios:

    • Añadir código que compruebe si el sincronizar debe estar activado.
    • También añadir código para obtener la entrada de la usuario campo de entrada

 

 Añade un receptor para la función sincronizar que hace lo siguiente:

      • Cuando el botón de conmutación se cambia de EN a OFF, o viceversa, escuchará estos cambios y actuará en consecuencia.
      • Cuando se gira el botón OFFla replicación se detendrá.
      • Cuando el botón EN se iniciará la replicación.
      • Cuando se activa la replicación, instanciamos la configuración del replicador con la base de datos local y proporcionamos detalles de la base de datos centralizada para indicar la fuente y el destino de las réplicas push/pull.

Configure el monitor de eventos para los eventos de replicación:

En Mainactivity.java también eliminamos muchos valores codificados de los registros de solicitudes, para que podamos mostrar los registros tal y como los verían distintos usuarios.

En el SENDDATA observe cómo los valores codificados se sustituyen por los campos de entrada correspondientes:

En el RECEIVEDATA eliminamos la escritura adicional que antes emulaba la obtención de una solicitud de valoración. Ahora que hemos añadido la función USUARIO campo de entrada que nos permite obtener la calificación / solicitudes de vuelta para el usuario específico.

En el INCOMINGRATINGS recorte el código para obtener solicitudes basadas en nombre de usuario:

 

Se introducen algunas actualizaciones en el UserCustomAdapter.java y RatedCustomerAdapter.java. Para esta iteración, vamos a eliminar un montón de hardcoded DESDE y A porque queremos mostrar la aplicación para dos usuarios diferentes. Esto ayuda a mostrar cómo funciona la sincronización bidireccional entre la aplicación y el servidor.

Se han introducido cambios similares para eliminar los nombres codificados de forma rígida. nombre de usuario y solicitar desde la página principal de la aplicación.

 

Compilación del código de la aplicación móvil 

Una vez actualizado todo el código, haga clic en Construir → Reconstruir proyectoentonces Construir → Ejecutar cuando se haya completado la reconstrucción.

Se te pedirá que elijas el emulador la primera vez que ejecutes la aplicación. He creado el dispositivo NEXUS 5X API 25 y lo he elegido cuando se me ha preguntado. 

Una vez finalizada la ejecución, la página principal tendrá el siguiente aspecto:

Couchbase Mobile app with new UI components

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

Una prueba rápida 

Vamos a crear una solicitud de calificación siguiendo estos pasos:

  1. Gire el SYNC encender.
  2. Introduzca los detalles de la solicitud de clasificación (usuario de destino, mensaje, asunto).
  3. Haga clic en HAGA CLIC PARA ENVIAR UNA SOLICITUD DE VALORACIÓN.
  4. Ve a la instancia de Couchbase Server. En mi caso, es la consola web de mi instancia local. Navega a Cubos y Documentos y debería ver la solicitud de clasificación creada en el servidor.
  5. Ahora introduce el nombre de usuario AlPacino y haga clic en SOLICITUDES DE CALIFICACIÓN RECIBIDAS-debería ver la solicitud de calificación en el RECIBIDO sección lista para ser valorada. Valore esta solicitud.
  6. Cuando compruebe la consola verá dos documentos JSON como se muestra a continuación.

Updated mobile app UI

Observe los dos registros en la consola.

Coucbase Server console showing JSON documents
Ahora vamos a hacer un cambio en la solicitud clasificada por AlPacino y cambiar el número de estrellas a 2 y ver si los cambios llegan al dispositivo.

Couchbase web console for viewing JSON document changes

Ejecuta la aplicación y abre SOLICITUDES CLASIFICADAS ENTRANTES (parte inferior de la pantalla) para TomCruise y verá el cambio a 2 estrellas.

Updated mobile app screenshot on Couchbase Mobile

Próximos pasos

Esta es la parte 3 de la serie de blogs Construyendo una aplicación móvil con Couchbase. Este post muestra cómo habilitar la sincronización dispositivo-servidor.

En la siguiente parte de la serie te mostramos cómo activar la sincronización de dispositivos peer-to-peer.

Continúe aprendiendo siguiendo estos recursos:

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

Author

Posted by Sandhya Krishnamurthy

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.

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.