Couchbase LIVE Nueva York: Couchbase Mobile 103 - Construyendo una aplicación Peer-to-Peer con Couchbase Mobile

A partir de la sesión 103 del Pista móvil Couchbase LIVE Nueva YorkEn Couchbase Lite, repasamos la característica de Couchbase Lite que nos permitiría habilitar la sincronización peer-to-peer entre dos o más dispositivos. Desde el "Couchbase Mobile 103": Construir una aplicación Peer-to-Peer con Couchbase Mobile" diapositivas, exploramos en profundidad el código y los componentes que permitían a la aplicación para compartir fotos intercambiar imágenes con otro dispositivo cliente que ejecutaba Couchbase Lite a través de la función P2P.

El ejemplo de aplicación P2P PhotoDrop puede encontrarse en el repositorio GitHub de iOS y Android. En este blog, vamos a recapitular a alto nivel las características y APIs de Couchbase Lite que se presentaron en la sesión Couchbase 103, así como parte del código que se encuentra en el ejemplo de Photo Sharing. Puedes hacer referencia a Couchbase Mobile 101 y 102 blogs para orientarse sobre cómo empezar.

Aquí están los storyboards de la aplicación donde tenemos tres simples ViewControllers donde el ViewController es el punto de entrada a la aplicación. El flujo UX comienza cuando el remitente selecciona las fotos del teléfono y hace clic en enviar. A continuación, la cámara se abrirá para escanear el código QR de recepción del otro teléfono con el fin de autenticar e iniciar la transferencia. Veamos los componentes principales del código de la aplicación que permite la función peer-to-peer de Couchbase Lite.

[1] Iniciar escucha

En el ReceiveViewController, ponemos el puerto a cero para que Couchbase Lite decida cual usar. Esto significa que cada vez que queramos compartir las fotos, el puerto irá cambiando cada vez que inicie una transferencia. Habilitamos la autenticación donde la autenticación es el digest y soportado por el listener de Couchbase Lite por defecto. Después de eso tenemos el nombre de usuario y contraseña y establecemos el nombre de usuario / contraseña para la autenticación. Después de lo cual, estamos listos para iniciar los oyentes.

iOS

Una vez iniciado el listener, generamos la URL de sincronización del endpoint URL a la base de datos receptora utilizando la URL del listener con el nombre de usuario/contraseña y con el nombre de la base de datos. Establecemos la URL en la variable de URL de sincronización y la utilizamos más tarde cuando generamos el código QR desde el que iniciamos los oyentes de cambio de base de datos en consecuencia.

[2] Observar los cambios en la base de datos

Iniciamos el escuchador de cambios de la base de datos para saber cuándo se sincroniza la foto con la base de datos del receptor. Cuando esto ocurre, obtenemos las fotos compartidas de los documentos compartidos y las aceptamos en el dispositivo.

iOS

[3] Generar y mostrar código QR

Para el último paso del ReceiveViewController donde una vez que tenemos los listeners de Couchbase Lite, configuramos los listeners compartidos de la base de datos y luego tenemos la URL de Sync. Con la URL de sincronización, podemos generar el código QR. Para ello utilizamos el filtro de imágenes del núcleo de iOS. El código QR contiene el puerto de escucha y el nombre de usuario/contraseña para la autenticación.

[4] Escanear código QR

Ahora dentro del SendViewController, usamos la clase de iOS AVCaptureSession, que es parte del framework AV Foundation con el tipo de salida AVMetadataObjectTypeQRCode. Esto nos permitirá ahora subir el escáner de código QR y escanear el código QR.

[5] Crear documentos

Ahora iteramos sobre las fotos que queremos enviar a los receptores. Para cada foto, creamos un documento y luego adjuntamos la foto al documento para luego guardarlo en la base de datos. El último snippet, guardaremos los IDs de los documentos en la variable docIds que es una propiedad que se utilizará en el siguiente paso.

iOS

[6] Replicar documentos

El último paso ahora que tenemos la URL de sincronización que obtuvimos del código QR es replicar los documentos en consecuencia. Tenemos los documentos fotográficos de la base de datos y estamos listos para replicarlos desde el dispositivo cliente emisor al dispositivo receptor. Aquí creamos una replicación push con la URL de sincronización en la que enviamos el ID del documento al replicador para que el replicador busque los documentos del ID. Y como un paso opcional, establecemos los estados para los oyentes de cambio de replicación para capturar el estado actual.

iOS

Resumen

Los puntos clave de la implementación de las aplicaciones Photodrop son que utiliza el código QR para el descubrimiento de pares, donde generamos un nombre de usuario y una contraseña de una sola vez para la autenticación. El código central para enviar/recibir fotos es de unas 100 líneas de código y no contiene ningún código que intervenga directamente en la comunicación de red.

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

Autor

Publicado por William Hoang, Defensor del Desarrollador Móvil, Couchbase

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.