Este es un artículo escrito por Luca Christille. Luca es un desarrollador autodidacta y el creador de Fluttercouch. Escribió su primera línea de código cuando tenía ocho años, y su pasión por el desarrollo no ha hecho más que crecer desde entonces. Es desarrollador Android certificado por Google y trabaja a tiempo completo como ingeniero de pila completa. Dedica gran parte de su tiempo libre a trabajar por cuenta propia como desarrollador móvil.

Luca no es ajeno a las bases de datos NoSQL, ya que ha pasado tiempo trabajando y evaluando varias soluciones. En última instancia, se sintió atraído por Couchbase por sus capacidades de sincronización de datos, ya que un requisito importante para muchas aplicaciones móviles es tener una funcionalidad "offline-first".

Al principio, Luca se centró estrictamente en crear aplicaciones totalmente nativas. Sin embargo, con el tiempo se encontró con un cliente que necesitaba una solución multiplataforma, y después de investigar la multitud de opciones disponibles optó por utilizar Aleteo.

Flutter: Diseña aplicaciones atractivas

Dando un paso atrás, puede que se pregunte qué es Aleteo? En pocas palabras, Flutter es un SDK de código abierto para crear aplicaciones móviles de alto rendimiento y alta fidelidad para iOS y Android. El framework Flutter te facilita la creación de interfaces de usuario que reaccionan con fluidez en tu app, al tiempo que reduce la cantidad de código necesario para sincronizar y actualizar la vista de tu app.

Al igual que muchos otros ecosistemas de desarrollo, Flutter ofrece la posibilidad de integrarse con proyectos de código por componentes conocidos como Paquetes Flutter. Los paquetes Flutter ayudan a los desarrolladores a integrar funcionalidades complejas en sus aplicaciones móviles. Los paquetes pueden ser Dardo-que amplían las capacidades estándar del marco Flutter a soluciones que interactúan directamente con las capas nativas y permiten nuevas funcionalidades basadas en los SDK de Android e iOS.

Presentación de Fluttercouch

Fluttercouch es un paquete que integra a la perfección Couchbase Móvil en sus aplicaciones Flutter, gestionando sus capas nativas Android e iOS. El paquete evita tener que crear código repetitivo para configurar la base de datos, utilizar documentos y ejecutar la replicación. En última instancia, Fluttercouch te permite centrarte en la creación de la lógica de tu aplicación, utilizando Dart, en lugar de construir código específico de la plataforma con los SDK nativos de Couchbase Mobile.

Primeros pasos

Para empezar a utilizar Fluttercouch tendrá que añadir una directiva de dependencia al archivo pubspec.yaml archivo.

Después de añadir la directiva de dependencia, puede utilizar Fluttercouch en cualquier clase modelo que ya tengas, o simplemente empieza con una nueva. Puedes extender clases modelo de InheritedWidget, Scoped Model o Bloc. Una vez extendidas, las clases Fluttercouch ¡superpoderes desbloqueados!

Operaciones básicas

A partir de este momento, puede obtener una instancia de una base de datos creada anteriormente o instanciar una nueva directamente desde su clase. Una vez inicializada una base de datos, se convierte en la elección por defectoy cualquier otra invocación a un método se referirá a él. Después de crear una instancia de base de datos tendrás la capacidad de realizar fácilmente todas las operaciones CRUD que esperas de las bases de datos de Couchbase Lite.

Por ejemplo, puede recuperar un documento por su id y obtener una cadena de la propiedad miPropiedad. A continuación, convierta el documento en un documento mutable, modifíquelo y vuelva a guardarlo.

Trabajar con replicadores

La replicación de datos también es posible con Fluttercouch. Con Dart, puede crear y configurar fácilmente replicadores.

También puede escuchar eventos de replicación pasando una función al método listenReplicatorEvents. El listenReplicatorEvents llama a la función con un parámetro que contiene el tipo de evento.

Próximos pasos

¡Ya estás listo para liberar el potencial de Couchbase en tu próxima aplicación Flutter! Descarga Fluttercouch desde la pub repositorioy documentación más detallada, puede visitar la página del proyecto en GitHub para obtener una referencia completa sobre cómo interactuar con su base de datos.

Fluttercouch es un proyecto de código abierto que actualmente mantengo y añado durante mi tiempo libre. En un futuro próximo espero completar la capa de abstracción N1QL Query para Dart, añadiendo soporte para Blob y Subdocumento y muchas otras características que existen en los SDKs de CouchbaseMobile. El proyecto se beneficiaría enormemente de las contribuciones de la comunidad, ¡y cualquier comentario, problema y/o pull-requests serán apreciados!

Autor

Publicado por Rob Hedgpeth, Promotor Senior para Desarrolladores, Couchbase

Rob Hedgpeth es desarrollador senior en Couchbase especializado en tecnologías móviles y IoT. Rob ha estado desarrollando aplicaciones de todos los sabores durante más de una década, pero se ha centrado principalmente en el espacio móvil desde 2010. Antes de trabajar en Couchbase, Rob trabajó como arquitecto móvil en Xamarin y Microsoft.

3 Comentarios

  1. Hola, ¿se trata de una base de datos del lado del cliente o del lado del servidor?

  2. Esto es para la base de datos incrustada Couchbase Lite (no Couchbase Server)

  3. ¿Cómo se sincronizaría esto con una base de datos (CRUD) de Couchbase Server en constante cambio?

    Por ejemplo, digamos que tienes 1 millón de documentos en tu servidor CB, que cambian constantemente - algunos se borran, otros se actualizan, se crean nuevos, ... y todo eso posiblemente varias veces cada minuto o incluso segundo - pero obviamente no querrías sincronizar toda la BD del servidor con el cliente todo el tiempo, sino sólo los documentos relevantes (digamos, 10 a la vez)... ¿es eso factible? ¿O sería más bien necesario tener una conexión directa a la base de datos del servidor desde el cliente, y cómo funcionaría a través de Dart?

Dejar una respuesta