Couchbase Mobile

Offline-first: uma mentalidade para desenvolver aplicativos móveis mais rápidos e confiáveis

O que significa offline-first?

O termo "offline-first" descreve um aplicativo móvel desenvolvido para executar a maior parte, ou toda, a sua funcionalidade principal sem acesso à Internet. O conceito é bastante simples, mas, com muita frequência, não é assim que um aplicativo móvel é desenvolvido. Em vez disso, ele é desenvolvido para acessar dados de centros de dados em nuvem distantes, tornando-o dependente da Internet. Isso significa que, quando a conexão de rede fica lenta ou indisponível, o mesmo acontece com o aplicativo, frustrando os usuários e prejudicando a adoção. Ao criar um aplicativo com uma abordagem "off-line primeiro", você elimina essencialmente as dependências da Internet, tornando o aplicativo mais rápido e mais confiável.

Um ponto importante do conceito offline-first é entender que ele não se aplica apenas a casos de uso em locais remotos; em vez disso, deve ser considerado a abordagem padrão para qualquer esforço de desenvolvimento de aplicativos móveis.

Vamos explorar mais essa noção...

Regra #1: a Internet não é confiável

Por que os aplicativos móveis são desenvolvidos com dependências de Internet? Por dois motivos principais:

    1. A suposição de que a conectividade estará sempre disponível e rápida, combinada com a prevalência de recursos baseados na Internet, como APIs RESTful e back-ends de nuvem, tornou a criação de aplicativos dependentes da Internet uma opção de desenvolvimento fácil.
    2. A suposição de que os requisitos offline-first não se aplicam a locais metropolitanos, ou seja, que se aplicam apenas a casos de uso exóticos, isolados e hiper-remotos, como exploração de energia, mineração em rocha dura ou operações de resgate em áreas selvagens - casos em que o aplicativo deve operar em uma zona completamente sem Internet por longos períodos de tempo.

Essas suposições levaram ao desenvolvimento de dezenas de aplicativos móveis que não podem funcionar sem uma conexão com a Internet. Ai do usuário desse aplicativo quando ele for necessário e não houver rede disponível!

Offline-first deve ser o padrão, não um nicho

A própria natureza dos aplicativos móveis - que são executados em dispositivos móveis - significa que eles estão constantemente se deslocando de um lugar para outro e podem perder a cobertura da rede a qualquer momento, mesmo no meio das cidades mais modernas do mundo. Os usuários entram em metrôs, elevadores, estruturas de estacionamento subterrâneas e túneis, locais onde a mais breve queda de conexão pode inutilizar os aplicativos dependentes da Internet.

Todos nós já passamos por isso: você está naquela cena crucial de um filme transmitido por streaming ou precisa basta clicar em enviar naquele e-mail importante ou, pior ainda, são duas da manhã e você precisa de uma carona do aeroporto... mas a internet tem outros planos!

Se esses cenários lhe parecerem familiares, então você entende a frustração que os usuários sentem sempre que seus aplicativos falham por falta de conectividade.

E qualquer expectativa de que esse tipo de experiência seria tolerada é equivocada. De fato 70% dos usuários de aplicativos móveis abandonarão um aplicativo que leva muito tempo para carregar, e 84% dos usuários de aplicativos abandonarão um aplicativo se ele falhar apenas duas vezes, e esses são apenas os tipos de problemas que ocorrem com aplicativos dependentes da Internet quando a conexão é interrompida.

O que é necessário é uma mudança na mentalidade de desenvolvimento que não planeje uma conectividade sólida com a Internet e trate as interrupções como um erro, mas que espere a falta de confiabilidade inerente da Internet e desenvolva em torno dela. Em outras palavras, para obter os aplicativos móveis mais rápidos e confiáveis, você deve sempre construir off-line primeiro.

Os componentes essenciais de um aplicativo móvel offline-first

O aspecto mais importante do desenvolvimento de um aplicativo móvel offline-first está na forma como você lida com os dados. Se você quiser remover as dependências da Internet, precisará armazenar e processar os dados localmente no aplicativo. Mas também é preciso garantir que os dados possam ser compartilhados com outros usuários e que quaisquer alterações nos dados sejam refletidas instantaneamente e com precisão em todo o ecossistema do aplicativo.

Em resumo, você precisa:

    • Processamento local de dados - persistência de dados no dispositivo móvel para manter a disponibilidade do aplicativo em casos de ausência de rede. E, como os dados são locais, isso adiciona o benefício da capacidade de resposta em tempo real.
    • Processamento de dados na nuvem - em um modelo offline-first, a nuvem ainda desempenha um papel vital de ser o ponto central de agregação de dados de aplicativos.
    • Sincronização de dados - sincronizar dados entre clientes de aplicativos e a nuvem para garantir a consistência e a integridade dos dados para o ecossistema de aplicativos.

Vamos dar uma olhada mais de perto nos componentes críticos...

Processamento local de dados

Para manter a disponibilidade do aplicativo quando a rede não estiver disponível, é necessário armazenar os dados localmente. Para isso, as soluções móveis de alguns fornecedores de bancos de dados em nuvem oferecem cache de dados temporários no dispositivo, em que as gravações são coletadas e mantidas em fila até que a conectividade seja restaurada e elas possam ser confirmadas no banco de dados em nuvem de back-end. No entanto, essa abordagem pode causar problemas se o aplicativo ficar off-line por muito tempo, pois, à medida que a fila cresce, ela pode começar a afetar o desempenho do aplicativo. O armazenamento em cache temporário também impõe um limite estrito à quantidade de dados que podem ser coletados - se o limite for excedido, você começa a correr o risco de perder dados.

Diferentemente de um cache temporário, um banco de dados incorporado é mais resiliente, seguro e eficiente no processamento, pois foi projetado para alta velocidade e armazenamento de dados de longo prazo. Um banco de dados incorporado deve ser a primeira opção para os primeiros aplicativos móveis off-line. A tecnologia ideal de banco de dados incorporado inclui:

    • Suporte para backups no dispositivo para fornecer failover e minimizar o risco de perda de dados
    • A capacidade de implementar bancos de dados pré-criados para acelerar a inicialização do aplicativo
    • Notificações assíncronas de alterações no banco de dados para permitir fluxos de trabalho reativos
    • Um SDK intuitivo e fácil de usar para suas linguagens e plataformas de programação preferidas
    • Suporte completo a SQL
    • Pesquisa incorporada

Processamento de dados na nuvem

Em um ambiente off-line primeiro, um banco de dados em nuvem ainda serve como backend da nave-mãe para aplicativos móveis. Para obter o máximo de flexibilidade e escala, os bancos de dados de documentos JSON NoSQL são a opção ideal, pois são distribuídos e projetados para alta disponibilidade e tolerância a falhas. E o modelo de armazenamento de documentos JSON é muito menos rígido do que os bancos de dados relacionais, o que facilita e agiliza as mudanças, acelerando o desenvolvimento. A tecnologia ideal de banco de dados em nuvem inclui:

    • Valor-chave, indexação, pesquisa de texto completo, análises, séries temporais e eventos incorporados
    • Suporte completo a SQL
    • Sharding automático, failover automático e replicação automática
    • Opções hospedadas OU autogerenciadas

Sincronização de dados

Uma peça crucial do quebra-cabeça do primeiro aplicativo off-line é o compartilhamento de alterações de dados com outros clientes do aplicativo. Suponha que um usuário atualize informações importantes, como um preço ou um número de previsão, e você deve garantir que todos os outros usuários do aplicativo vejam essas informações atualizadas. Para isso, você precisa garantir que seu aplicativo móvel possa sincronizar os dados automaticamente.

Embora possa parecer simples, a criação de sincronização de dados para aplicativos móveis é inerentemente complexa, portanto, resista ao impulso de tentar fazer isso sozinho. Muitas equipes de desenvolvimento começam inocentemente tentando criar sua própria solução de sincronização, mas acabam fracassando depois de desperdiçar uma quantidade enorme de tempo de desenvolvimento que poderia ter sido melhor gasto no aplicativo principal. Isso ocorre porque a sincronização é mais do que apenas replicar dadosO objetivo é garantir que isso seja feito de forma segura, precisa, eficiente e instantânea todas as vezes. Não crie você mesmo a sincronização de dadosProcure um banco de dados que já ofereça sincronização móvel. A tecnologia de sincronização ideal inclui:

    • Resolução de conflitos incorporada
    • Acesso seguro
    • Sincronização bidirecional
    • Monitoramento do status da rede para lidar com interrupções de conectividade
    • Sincronização de dados ponto a ponto independente da conectividade com a Internet
    • Delta-sync, sincroniza apenas os dados que foram alterados
    • Filtros e particionamento de dados para rotear e isolar dados com precisão

Completamente montada, a arquitetura do aplicativo off-line-first seria mais ou menos assim:

Com esses componentes essenciais instalados, você pode desenvolver aplicativos móveis que são imunes à lentidão ou a falhas na rede.

Então, por onde começar? Com uma plataforma de banco de dados móvel projetada para aplicativos off-line primeiro.

Couchbase Mobile: a melhor opção para aplicativos que priorizam o off-line

O Couchbase Mobile é uma plataforma de banco de dados móvel robusta e madura, criada especificamente para permitir aplicativos móveis mais rápidos e confiáveis. Ele suporta elegantemente a arquitetura offline-first, fornecendo os componentes críticos necessários, incluindo:

    • Couchbase Lite - Um banco de dados NoSQL móvel incorporado com suporte para SQL, sincronização ponto a ponto integrada e amplo suporte a plataformas móveis.
    • Couchbase Capella - Um banco de dados NoSQL como serviço (DBaaS) totalmente gerenciado na nuvem com suporte a SQL, pesquisa, análise e eventos.
    • Serviços de aplicativos Capella - Serviço totalmente gerenciado para sincronização bidirecional, autenticação e controle de acesso para aplicativos móveis e de borda.

O Capella App Services fornece sincronização de dados baseada em websockets entre o Capella DBaaS de backend e os aplicativos incorporados do Couchbase Lite em dispositivos de borda. Com o App Services, as alterações de dados são replicadas instantânea e automaticamente em todo o ecossistema de aplicativos, conforme a conectividade permite, enquanto que, durante interrupções na rede, os aplicativos continuam a operar graças ao banco de dados Couchbase Lite incorporado.

Conclusão

A criação de aplicativos off-line primeiro não só torna os aplicativos imunes à lentidão e às interrupções da Internet, como também proporciona uma experiência superior aos usuários e, portanto, deve ser um modelo de design de fato para aplicativos móveis modernos.

Para fornecer os aplicativos móveis mais rápidos e confiáveis, você deve sempre Crie off-line primeiro com o Couchbase Mobile.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Mark Gamble, Diretor de Marketing de Produtos e Soluções

Sou um profissional de marketing de produtos apaixonado, com formação em consultoria técnica e de soluções e mais de 20 anos de experiência em tecnologia empresarial e de código aberto. Lancei vários bancos de dados e soluções analíticas ao longo de minha carreira e trabalhei com clientes em uma ampla variedade de setores, incluindo serviços financeiros, automotivo, hotelaria, alta tecnologia e saúde. Tenho experiência especial em análise e IA, adoro tudo o que se refere a dados e sou um defensor enfático de iniciativas de dados para o bem.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.