Recentemente, tive a honra de fazer uma apresentação conjunta em um webcast com meu colega e bom amigo, Aaron LaBeau, Sr. Developer Advocate da Couchbase. Aaron tem quase 30 anos de experiência em desenvolvimento e é especializado na criação de aplicativos móveis, por isso pareceu o especialista perfeito para participar da nossa sessão intitulada Estratégias de banco de dados para aplicativos móveis e de IoT - Por que o REST não é mais suficiente.
No programa, nos propusemos a descobrir os obstáculos que os desenvolvedores enfrentam ao criar aplicativos móveis usando APIs REST para dados e, em seguida, exploramos uma abordagem alternativa que não apenas elimina os obstáculos, mas também torna os aplicativos ainda melhores: uma plataforma de banco de dados móvel.
Durante a discussão, ressaltamos que, embora haja mais dispositivos e usuários do que nunca, simplesmente produzir um aplicativo não é garantia de que ele será um sucesso. De fato, a grande maioria dos aplicativos é desinstalada nos primeiros 30 dias de uso por motivos como desempenho lento, inicialização demorada, perda de dados e falhas. E muitos desses problemas são causados por dados ou, mais especificamente, pela forma como os aplicativos acessam e lidam com os dados.
Os 5 principais pontos problemáticos da API REST
Os desenvolvedores de aplicativos móveis que usam APIs REST para acessar e modificar dados estão sujeitos a desafios que afetam o desempenho e a disponibilidade de seus aplicativos. Em suas observações, Aaron falou sobre cinco "pontos problemáticos da API REST" específicos que ele encontrou ao longo dos anos em vários projetos:
A reutilização de APIs REST "inchadas" torna os aplicativos ineficientes: aqui a discussão se concentrou nos motivos pelos quais as APIs REST destinadas a um aplicativo da Web não devem ser reaproveitadas para aplicativos móveis.
Falta de validação do esquema e do tipo de dadosA falta de digitação e validação na REST pode causar incompatibilidades na forma como os dados são enviados e como se espera que sejam recebidos entre o aplicativo e a API, o que pode levar a uma falha.
Transformação de dados de ida e voltaA necessidade de transformar constantemente os dados entre o aplicativo, a API REST e o banco de dados de back-end - para cada solicitação - torna o código complexo e deixa mais espaço para erros.
Tradução do domínio comercial para o modelo de transporteAqui, Aaron falou sobre a frustração de criar um modelo de domínio elegante e complexo que se encaixa perfeitamente em seu aplicativo, mas que precisa ser adaptado à API REST, perdendo toda a sua riqueza e expressividade.
Lidar com uma Internet inerentemente não confiável: A REST depende da Internet e, portanto, os aplicativos também dependem dela quando usam a REST. Há muitos pontos potenciais de falha introduzidos por problemas de rede, e os desenvolvedores precisam implementar a lógica de comunicação e o tratamento de erros por conta própria, o que pode tornar extremamente complexas até mesmo as tarefas mais simples.
Plataforma de banco de dados móvel para o resgate
Com os pontos problemáticos abordados, voltamos a discussão para uma abordagem alternativa de acesso aos dados: uma plataforma de banco de dados criada para aplicativos móveis.
Uma plataforma de banco de dados móvel tem como objetivo simplificar o manuseio de dados para aplicativos, bem como contornar a falta de confiabilidade inerente da Internet.
Em nossa discussão, descrevemos como um banco de dados móvel estende o armazenamento e o processamento de dados da nuvem para a borda, inclusive para o dispositivo.
Exploramos como ele pode eliminar os pontos problemáticos do REST, reduzir as dependências da Internet e acelerar os aplicativos com processamento de dados local, tudo isso sem sacrificar a consistência, fornecendo:
-
- Armazenamento local de dadosO banco de dados é um recurso de segurança que pode ser usado para acessar os dados: ao incorporar o banco de dados diretamente aos aplicativos, ele é executado localmente no dispositivo e, portanto, elimina a necessidade de uma conexão com a Internet para acessar os dados, melhorando o tempo de atividade e reduzindo a latência.
- Modelos de dados flexíveisSe o desenvolvimento do seu aplicativo segue o modelo de domínio e você deseja flexibilidade em vez de rigidez relacional, um banco de dados de documentos JSON é uma ótima opção de banco de dados móvel.
- Sincronização de dadosA sincronização de dados é essencial para a integridade, a precisão, a segurança e uma boa experiência do usuário. Ela também pode tornar as atualizações de aplicativos mais fáceis e mais infalíveis.
Couchbase Mobile em ação
Para mostrar o poder de uma plataforma de banco de dados móvel, passamos a uma demonstração ao vivo do Sincronização simples de dados, o Couchbase Mobile aplicativo de amostra para iOS que sincroniza dados entre outros dispositivos com a Internet por meio da nuvem e até mesmo sem a Internet por meio de ponto a ponto.
A demonstração foi um dos destaques da sessão, especialmente a parte em que Aaron dados sincronizados do iPhone dele para o meu iPhone por meio da nuvemEm seguida, meu iPhone sincronizou com meu simulador, que NÃO estava na Internet. Isso mostrou os recursos de sincronização de dados do Couchbase Mobile de forma simples, e explicamos como a funcionalidade de sincronização se aplica a casos de uso como jogos, saúde, PDV de restaurantes, serviços de bordo de companhias aéreas e muito mais.
Concluímos a sessão explicando a pilha de produtos do Couchbase Mobile:
-
- Couchbase Capella: Um banco de dados como serviço (DBaaS) de nuvem NoSQL distribuído e totalmente gerenciado que oferece suporte a SQL, pesquisa, eventos e análise.
- Serviços de aplicativos Capella: Serviços totalmente gerenciados para sincronização bidirecional, autenticação e controle de acesso para aplicativos móveis e de borda
- Couchbase Lite: Uma versão leve e incorporável do banco de dados Couchbase
O Capella App Services conecta a pilha, sincronizando os dados entre o back-end Capella DBaaS e o Couchbase Lite em execução nos dispositivos de borda conforme a conectividade permite, enquanto durante as interrupções da rede os aplicativos continuam a operar graças ao processamento de dados local.
Retorno do desenvolvedor
Para que todos os desenvolvedores presentes pudessem se preparar, fornecemos um link para um vídeo de 4 partes revisão de código série de vídeos que mostra os bastidores do aplicativo de demonstração Simple Data Sync em clipes curtos de 10 minutos.
Na série, Wayne Carter, o desenvolvedor do aplicativo, se aprofunda no código e explica como criou os recursos de sincronização usando o Couchbase Mobile.