Passei bastante tempo trabalhando com o Couchbase e aplicativos Web usando o incrível Java SDK, mas você sabia que também é possível criar aplicativos de desktop que usam o Couchbase para armazenar dados? As estruturas de desktop Java, como o JavaFX, podem usar o SDK Java do Couchbase, mas provavelmente não é uma boa ideia usar um SDK destinado ao servidor em seu aplicativo voltado para o cliente. Em vez disso, você pode usar a solução móvel do Couchbase para criar aplicativos de desktop voltados para o cliente. Ela usa as mesmas APIs do Android, mas foi projetada com os desktops em mente.

Vamos dar uma olhada na criação de um aplicativo de desktop simples usando JavaFX, Couchbase Lite e até mesmo o Couchbase Sync Gateway para sincronizar esses dados entre computadores.

Os requisitos

Existem alguns requisitos que devem ser atendidos para que esse projeto seja bem-sucedido.

  • JDK 1.7+
  • Maven
  • Gateway de sincronização do Couchbase

Este projeto usará o Maven para reunir nossas dependências e criar um arquivo JAR. Embora o Sync Gateway não seja realmente um requisito, ele o será se você desejar adicionar suporte à sincronização ao seu aplicativo.

Criação de um novo projeto JavaFX com o Maven

Precisamos criar um projeto Maven básico. Isso pode ser feito em um IDE de sua escolha ou manualmente. Essencialmente, precisaremos da seguinte estrutura de arquivos e diretórios:

Entraremos em detalhes sobre o conteúdo de cada arquivo quando começarmos a desenvolver. Por enquanto, precisamos configurar nosso Maven pom.xml para que ele obtenha as dependências necessárias.

Abra o arquivo pom.xml e inclua o seguinte:

Sem entrar em muitos detalhes desnecessários no arquivo Maven acima, queremos prestar atenção a algumas coisas em particular.

A dependência acima diz que estamos incluindo o Couchbase Lite em nosso projeto. Lembre-se de que o Couchbase Lite é um banco de dados local que não fica em um servidor em algum lugar. Os dados são armazenados localmente e o componente é empacotado em seu aplicativo.

Também queremos prestar atenção ao seguinte plug-in:

O plug-in acima serve para criar um projeto JavaFX. É claro que essa criação de projeto é muito mais fácil quando se usa um IDE como o IntelliJ, embora não seja necessário.

Criando a classe singleton do Couchbase

Antes de nos dedicarmos a criar a interface do usuário e os controladores para o nosso projeto JavaFX, vamos nos preocupar com a forma como os dados serão tratados.

Para simplificar, é uma ótima ideia criar uma classe singleton para gerenciar os dados em todo o nosso projeto. Isso também funciona muito bem ao configurar ouvintes de dados para evitar a necessidade de escrever consultas em todos os lugares do aplicativo. Vamos abrir a seção src/main/java/com/couchbase/CouchbaseSingleton.java e inclua o código a seguir. Depois, vamos detalhá-lo.

O que foi dito acima foi muito difícil de assimilar, mas foi necessário para evitar confusão.

Dentro do CouchbaseSingleton existem quatro variáveis privadas. O gerenciador de banco de dados nos permitirá abrir nosso banco de dados e também criá-lo. Os objetos de replicação são responsáveis pela sincronização em qualquer direção.

No construtor criamos e abrimos um banco de dados chamado projeto fx e configurar uma visualização que usaremos para consultar os dados. Essa visualização chamada todos emitirá um par de valores-chave de id de documento e documento para cada documento armazenado no banco de dados local. O construtor é privado porque o instanciamos por meio do método estático getInstance.

Embora não abordaremos a sincronização até o final do guia, é uma boa ideia estabelecer a base. Essencialmente, queremos apenas definir que teremos uma replicação contínua de e para um determinado URL de gateway de sincronização. Também queremos poder interromper a replicação quando o aplicativo for fechado. Isso nos leva aos nossos métodos para salvar e carregar dados.

Nosso salvar receberá um método Todo e salvá-lo no banco de dados. O resultado disso será um objeto Todo que contém o ID do documento que é retornado ao método de chamada. Esse Todo é simples. Ela aceita informações básicas como id, título e descrição, e tem os métodos getter e setter apropriados que correspondem. Para referência, ela se parece com o seguinte e existe na seção src/main/java/com/couchbase/Todo.java arquivo.

Isso nos deixa com nossa última função relacionada a dados, a consulta função.

Lembra-se da visualização que criamos? Desta vez, estamos consultando-a. O conjunto de resultados será carregado em uma matriz de Todo objetos. Isso traz nossa camada de dados permitindo que nos concentremos no desenvolvimento real do aplicativo.

Projetando o aplicativo de desktop

Embora não seja obrigatório, o aplicativo JavaFX, Criador de cenasO recurso de controle de interface do usuário (UI), torna muito simples a criação de uma UI gráfica e da classe controladora correspondente. Se você optar por não usá-lo, abra o arquivo src/main/resources/TodoFX.fxml e inclua a seguinte marcação XML:

Autor

Postado por Nic Raboy, defensor dos desenvolvedores, Couchbase

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Deixar uma resposta