Como programar o mini app

Neste capítulo, quero rever as lições que aprendi ao pesquisar miniapps do ponto de vista de um desenvolvedor da Web ou responder à pergunta o que significa desenvolver essa abordagem.

Em vez de reinventar a roda e fazer com que os desenvolvedores criem mais uma implementação de paradigmas de interface comuns, como guias, acordeões, carrosséis etc., os miniapps vêm com uma seleção padrão de componentes que pode ser extensível caso você precise de mais. Na Web, também há muitas opções. Algumas delas são listadas no capítulo sobre componentes de miniapps. Em um mundo ideal, as bibliotecas de componentes na Web foram criadas de uma forma que você pudesse misturar livremente. Na prática, muitas vezes há uma certa dependência em relação a um sistema de design em que você precisa se comprometer ao usar um componente, ou a biblioteca de componentes é distribuída de forma a ser tudo ou nada, mas nenhum componente individual pode ser facilmente adicionado a um projeto. No entanto, há componentes atômicos que podem ser usados isoladamente ou bibliotecas como generic-components, sem estilo propositalmente. Encontrar um usá-los parece uma boa ideia.

Modelo-visualização-visualização

O padrão de arquitetura modelo-visualização-visualização (MVVM), que facilita a separação do desenvolvimento da interface gráfica do usuário (a visualização) por uma linguagem de marcação do desenvolvimento da lógica de back-end (o modelo), significa que a visualização não depende de nenhuma plataforma de modelo específica. Embora existam algumas desvantagens documentadas do padrão, em geral ele funciona muito bem para aplicações da complexidade de miniapps. Isso pode se destacar especialmente com bibliotecas de modelos avançadas (consulte o próximo capítulo).

Pensamento de página

A depuração de miniapps mostra que eles são essencialmente aplicativos de várias páginas (MPA, na sigla em inglês). Isso tem muitas vantagens, por exemplo, permite um roteamento trivial e um estilo por página sem conflitos. As pessoas aplicaram arquiteturas de MPA com sucesso aos Progressive Web Apps. Pensar em páginas também ajuda a gerenciar recursos, como os arquivos CSS e JavaScript de cada página, e outros recursos, como imagens e vídeos. Mais importante ainda, criar dessa maneira significa que você terá a divisão de código com base em rotas sem custo financeiro se não carregar mais nada. Nesse caso, cada página, por definição, carrega apenas o necessário para funcionar.

Processo de versão

Não há processos de build visíveis para miniapps. Na Web, ferramentas de build modernas, como o Snowpack, aproveitam o sistema de módulos integrado do JavaScript (conhecido como ESM) para evitar trabalho desnecessário e manter a velocidade, independente do tamanho de um projeto. Embora ainda seja recente para tecnologias como os pacotes da Web, isso é algo que pode ser facilmente adicionado ao processo de build.

Recursos avançados

A plataforma da Web ganhou muitos novos recursos recentemente. O acesso a dispositivos via Bluetooth, USB, HID, serial e NFC já é possível. Quando miniapps são executados em WebViews e dependem de uma ponte JavaScript, na Web, esses recursos avançados estão disponíveis diretamente. Assim, você não programa com uma API fornecida pela ponte JavaScript, mas com a API do navegador sem um ator intermediário.

Agradecimentos

Este artigo foi revisado por Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent e Keith Gu.