Couchbase Mobile contém um robusto e poderoso banco de dados NoSQL incorporado, chamado Couchbase Liteque pode ser usado em seu iOS, Android e Xamarin aplicativos. A pilha do Couchbase Mobile também contém Gateway de sincronização. O Sync Gateway permite a sincronização segura de dados entre clientes habilitados para o Couchbase Lite. O Sync Gateway existe há anos, mas, no ano passado, o Couchbase Mobile 2.0 introduziu oficialmente um Replicação totalmente nova baseada em web-sockets para sincronização de dados que é mais eficiente do que seu antecessor baseado em HTTP.

Ao considerar todas as alterações no Couchbase Mobile e o recente lançamento do versão 2.5Por isso, comecei a pensar em maneiras exclusivas de visualizar as melhorias usando um aplicativo. Comecei definindo alguns requisitos simples. Eu queria que o aplicativo:

    • Seja simples
    • Seja divertido
    • Mostre o poder do Couchbase Mobile

Por fim, decidi analisar o que seria necessário para criar um aplicativo que envolvesse algo que todos nós provavelmente já fizemos quando crianças, por diversão ou quando estamos simplesmente entediados. Desenhar! E o que é mais divertido do que desenhar? Isso mesmo, desenho colaborativo!

snake

Primeiros passos

Eu nunca havia criado um aplicativo que suportasse desenho em tempo real, mas conhecia algumas abordagens que poderiam dar conta do recado. Para mim, a primeira opção era uma biblioteca que já vinha sendo comentada há alguns anos; Skia.

O Skia é um software de código aberto 2D biblioteca de gráficos que fornece APIs comuns que funcionam em uma variedade de plataformas de hardware e software. Ele funciona como o mecanismo gráfico do Google Chrome e do Chrome OS, do Android, do Mozilla Firefox e do Firefox OS, e de muitos outros produtos, inclusive móveis. O Skia é mantido principalmente pelo Google, mas é totalmente gratuito para uso de qualquer pessoa.

Gostei da ideia de usar o Skia para dar suporte aos meus desenhos acionados por efeitos de toque, mas queria criar um aplicativo multiplataforma. Com mais de alguns anos de experiência em Xamarin, eu já estava familiarizado com SkiaSharpuma implementação de plataforma cruzada baseada em .NET do Skia.

Então, criei um Xamarin.Forms e incluiu a solução SkiaSharp nuget pacote. Fiquei impressionado, pois após apenas algumas linhas de código eu tinha um Skia Canvas (SkCanvasView) em minha interface do usuário,

e pude começar a ouvir os eventos de toque no código da minha página.

A partir desses eventos, consegui reunir a base para renderizações vetoriais 2D em uma tela. Afinal de contas, os desenhos bidimensionais se resumem a um componente central: um ponto. Uma coleção de pontos cria um caminho, e uma coleção de caminhos cria... um desenho.

Huzzah! Agora que eu conseguia capturar os pontos, criar caminhos a partir desses pontos e, por fim, desenhos a partir desses caminhos, eu tinha os dados necessários para compartilhar entre telas em instâncias de aplicativos separadas.

O poder do Couchbase Mobile

Como mencionado anteriormente, a pilha do Couchbase Mobile contém um banco de dados NoSQL incorporado chamado Couchbase Lite e um mecanismo de sincronização de dados chamado Sync Gateway. Combinado com o poder do Couchbase Server, um banco de dados NoSQL distribuído baseado em JSON, os dados podem ser enviados e recebidos de e para a borda.

Couchbase Mobile

O suporte ao Sync Gateway está totalmente integrado aos pacotes Nuget do Couchbase.Lite e do Couchbase.Lite.Enterprise, e você pode encontrar mais informações sobre como fazer isso aqui.

A chave para o armazenamento de dados em um banco de dados baseado em documentos está centrada em como o os dados são modelados. Felizmente, nesse aplicativo, a modelagem de dados foi fácil. Tudo ficou completo porque tudo o que eu precisava armazenar, via JSON, era uma coleção de pontos dentro de coleções de caminhos.

Em seguida, simplesmente salvei as informações de ponto e caminho no banco de dados Couchbase Lite incorporado. A partir daí, o Sync Gateway cuida do resto e, voilà, uma tela compartilhada simplificada com o Couchbase Mobile!

N1QL-Rick

Apresentando o CouchDraw

Obviamente, eu não mencionei alguns dos detalhes essenciais do aplicativo sobre o qual estou falando, mas não se preocupe, eu criei um novo repositório para isso! No novo "CouchDraw", juntamente com o código-fonte, também incluí um arquivo LEIAME com muitos mais detalhes sobre como fazer download, configurar e executar a solução. Sinta-se à vontade para largar tudo o que está fazendo agora e ir dar uma olhada!

CouchDraw é um aplicativo muito básico e, como tal, há muitas maneiras de melhorá-lo (é aqui que você entra). Desafio a comunidade móvel e do Couchbase a se aprofundar e expandir CouchDraw's funcionalidade!

Algumas ideias de novos recursos podem incluir:

    • Substituição dos botões de cores por um controle deslizante de intervalo para seleção de cores.
    • Adição da capacidade de alterar a espessura da linha.
    • Adição da capacidade de apagar linhas que foram desenhadas.

Próximas etapas

Além de estender o suporte a desenhos sincronizados para iOS e Android nativos, também estarei integrando o replicação ponto a ponto e consulta preditiva recursos em CouchDraw. Fique atento a mais postagens desta série!

 

Autor

Postado por Rob Hedgpeth, defensor sênior do desenvolvedor, Couchbase

Rob Hedgpeth é um desenvolvedor sênior defensor da Couchbase, especializado em tecnologias móveis e de IoT. Rob tem desenvolvido aplicativos de todos os tipos há mais de uma década, mas tem se concentrado principalmente no espaço móvel desde 2010. Antes de trabalhar na Couchbase, Rob trabalhou como arquiteto móvel na Xamarin e na Microsoft.

Deixar uma resposta