Como programar o mini app

O que funcionou bem para miniaplicativos

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

Componentes

Em vez de reinventar a roda e fazer com que os desenvolvedores criem outra implementação de paradigmas comuns de interface, como guias, acordeões, carrosséis etc., os miniapps são enviados com uma seleção padrão de componentes que podem ser estendidos caso você precise de mais. Na Web, há muitas opções, algumas delas listadas no capítulo sobre componentes de miniapps. Em um mundo ideal, as bibliotecas de componentes na Web seriam criadas de uma forma que você pudesse misturá-las livremente. Na prática, muitas vezes, há um certo bloqueio em relação a um sistema de design que você precisa comprar quando usa um componente, ou a biblioteca de componentes é distribuída de uma maneira que é tudo ou nada, mas nenhum componente individual pode ser adicionado facilmente a um projeto. No entanto, há componentes atômicos que podem ser usados separadamente ou bibliotecas como generic-components que não têm estilo por propósito. Encontrar e usar esses recursos parece uma boa ideia.

Modelo-visual-viewmodel

O padrão de arquitetura modelo–visualização–modelo de visualização (MVVM) facilita a separação do desenvolvimento da interface gráfica do usuário (a visualização) por meio de uma linguagem de marcação do desenvolvimento da lógica de back-end (o modelo). Isso 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 aplicativos com a complexidade de miniapps. Ele pode brilhar especialmente com bibliotecas de modelos ricas (consulte o próximo capítulo).

Pensamento por página

A depuração de miniapps mostra que eles são essencialmente aplicativos de várias páginas (MPA). Isso tem muitas vantagens, como, por exemplo, permite roteamento trivial e estilo por página sem conflitos. As pessoas aplicaram com sucesso arquiteturas de MPA a 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. O mais importante é que, ao criar dessa forma, você vai conseguir a divisão de código baseada em rota sem custo financeiro se não carregar mais nada. Nesse caso, cada página carrega apenas o necessário para funcionar.

Processo de versão

Os miniapps não têm um processo de build visível. Na Web, ferramentas de build modernas, como o Snowpack, aproveitam o sistema de módulos (conhecido como ESM) integrado do JavaScript para evitar trabalhos desnecessários e permanecer rápido, não importa o tamanho do projeto. Embora ainda seja cedo para tecnologias como os pacotes da Web, é algo que pode ser facilmente adicionado ao processo de build.

Recursos avançados

A plataforma da Web ganhou muitos recursos recentemente. Agora é possível acessar dispositivos por Bluetooth, USB, HID, serial e NFC. Quando os miniapps são executados em WebViews e dependem de uma ponte JavaScript, na Web, esses recursos poderosos estão disponíveis diretamente, para que você não programe contra uma API fornecida pela ponte JavaScript, mas contra 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.