He pasado bastante tiempo jugando con Couchbase y aplicaciones web usando el impresionante Java SDK, pero ¿sabías que también puedes crear aplicaciones de escritorio que usen Couchbase para almacenar datos? Frameworks Java de escritorio como JavaFX pueden hacer uso del SDK Java de Couchbase, pero probablemente no sea una buena idea usar un SDK pensado para servidor en tu aplicación de cara al cliente. En su lugar, puedes utilizar la solución móvil de Couchbase para crear aplicaciones de escritorio orientadas al cliente. Utiliza las mismas APIs que Android, pero fue diseñado pensando en los ordenadores de sobremesa.

Vamos a echar un vistazo a la construcción de una sencilla aplicación de escritorio utilizando JavaFX, Couchbase Lite, e incluso Couchbase Sync Gateway para sincronizar estos datos entre ordenadores.

Requisitos

Hay algunos requisitos que deben cumplirse para que este proyecto tenga éxito.

  • JDK 1.7+
  • Maven
  • Pasarela de sincronización Couchbase

Este proyecto utilizará Maven para reunir nuestras dependencias y construir un archivo JAR. Aunque Sync Gateway no es realmente un requisito, lo es si desea agregar soporte de sincronización a su aplicación.

Creación de un nuevo proyecto JavaFX con Maven

Necesitamos crear un proyecto Maven básico. Esto se puede hacer en un IDE de su elección, o se puede hacer manualmente. Esencialmente lo que necesitaremos es la siguiente estructura de archivos y directorios:

Vamos a entrar en los detalles de lo que contiene cada archivo cuando empecemos a desarrollar. Por ahora tenemos que configurar nuestro Maven pom.xml para que obtenga las dependencias necesarias.

Abra el archivo pom.xml e incluya lo siguiente:

Sin entrar en demasiados detalles innecesarios en el archivo Maven anterior, queremos prestar atención a algunas cosas en particular.

La dependencia anterior dice que estamos incluyendo Couchbase Lite en nuestro proyecto. Recuerda, Couchbase Lite es una base de datos local que no se encuentra en un servidor en algún lugar. Los datos se almacenan localmente y el componente se incluye dentro de tu aplicación.

También queremos prestar atención al siguiente plugin:

El plugin anterior es para crear un proyecto JavaFX. Por supuesto, la creación de este proyecto es mucho más fácil cuando se utiliza un IDE como IntelliJ, a pesar de que no es necesario.

Creación de la clase Singleton de Couchbase

Antes de dedicarnos a crear la interfaz de usuario y los controladores para nuestro proyecto JavaFX, preocupémonos de cómo se van a manejar los datos.

Por simplicidad, es una gran idea crear una clase singleton para gestionar los datos en todo nuestro proyecto. También funciona bastante bien a la hora de configurar escuchadores de datos para evitar tener que escribir consultas en todas partes de la aplicación. Vamos a seguir adelante y abrir el proyecto de src/main/java/com/couchbase/CouchbaseSingleton.java e incluya el siguiente código. Lo desglosaremos después.

Lo anterior era mucho para asimilar, pero era necesario para evitar confusiones.

Dentro de la CouchbaseSingleton hay cuatro variables privadas. El gestor de base de datos nos permitirá tanto abrir nuestra base de datos como crearla. Los objetos de replicación se encargan de la sincronización en ambos sentidos.

En el constructor creamos y abrimos una base de datos llamada proyecto fx y configuraremos una vista que utilizaremos a la hora de consultar datos. Esta vista llamada todos emitirá un par clave-valor de id de documento y documento para cada documento almacenado en la base de datos local. La dirección constructor es privado porque lo instanciamos a través del método estático getInstance.

Aunque no veremos la sincronización hasta más adelante en la guía, es una buena idea sentar las bases. Esencialmente queremos definir que tendremos replicación continua hacia y desde una URL de puerta de enlace de sincronización particular. También queremos ser capaces de detener la replicación cuando la aplicación se cierre. Esto nos lleva a nuestros métodos para guardar y cargar datos.

Nuestra guardar tomará un método Todo y guardarlo en la base de datos. El resultado será un Todo que contiene el identificador del documento que se devuelve al método de llamada. Este Todo es sencilla. Acepta información básica como id, título y descripción, y tiene los métodos getter y setter correspondientes. Como referencia, se parece a lo siguiente y existe en el proyecto de src/main/java/com/couchbase/Todo.java archivo.

Esto nos deja con nuestra última función relacionada con los datos, la función consulta función.

¿Recuerdas la vista que creamos? Esta vez vamos a consultarla. El conjunto de resultados se cargará en un array de Todo objetos. Esto hace que nuestro capa de datos lo que nos permite centrarnos en el desarrollo real de la aplicación.

Diseño de la aplicación de escritorio

Aunque no es necesario, la aplicación JavaFX, SceneBuilderhace que sea muy sencillo crear una interfaz gráfica de usuario y su correspondiente clase de controlador. Si decide no utilizarlo, abra el archivo src/main/resources/TodoFX.fxml e incluya el siguiente marcado XML:

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

Dejar una respuesta