Readme

Escopo: transversal. Aplica-se a qualquer linguagem ou stack do projeto.

Esta seção reúne os fundamentos que governam aplicações para dispositivos móveis. Os conceitos são agnósticos de linguagem e valem para Kotlin (Android), Swift (iOS), Dart/Flutter (cross-platform) e qualquer outra stack mobile.

O que separa mobile da web é o contexto de execução. O app roda com recursos limitados (CPU, memória, bateria), com conectividade que vai e volta, e sob um sistema operacional que pode pausar ou encerrar o processo dele a qualquer momento para atender outro app. Um código escrito sem contar com isso produz app que consome bateria demais, perde o que o usuário digitou e trava quando o sinal cai.

Por que estes tópicos ficam separados

Mobile atravessa arquitetura, plataforma e qualidade ao mesmo tempo. O ciclo de vida do app impõe restrições que a maioria das stacks web nunca encontra. A navegação funciona por pilha de telas, com regras próprias. O modelo de permissões pertence ao sistema operacional, e o app apenas pede. E o offline-first é uma decisão de design que alcança banco de dados, sincronização e interface de uma vez.

Reunir esses fundamentos em um lugar só evita que o conhecimento fique espalhado entre arquitetura e plataforma, sem indicar onde se aplica.

Nativo e cross-platform

CritérioNativo (Kotlin / Swift)Cross-platform (Flutter / React Native)
PerformanceMáxima; acesso direto à GPU e APIs do SOMuito boa; overhead de bridge ou compilação ahead-of-time
Acesso a APIs do SOTotal e imediatoDependente de plugins; APIs novas chegam com atraso
CodebaseUm por plataformaÚnico compartilhado
TimeDuas especialidades distintasUma especialidade com nuances por plataforma
UX nativaAutomáticaExige atenção; componentes podem não seguir padrões do SO

A escolha envolve time, produto e roadmap, além da técnica. O nativo compensa quando o app depende de recursos avançados do sistema (câmera, ARKit, Wear OS) ou quando a fidelidade da experiência é o diferencial do produto. O cross-platform compensa quando a velocidade de entrega e a manutenção de uma base única pesam mais que essas vantagens.

Mapa de tópicos

TópicoDescrição
Ciclo de vida do aplicativoEstados do app, cold e warm start, process death e impacto na experiência
Navegação entre telasPilha, barra de abas, modal, deep link e back stack
Gerenciamento de estadoEstado da tela e estado do domínio, fluxo unidirecional e reatividade
Offline-firstEstratégias de cache, sincronização, resolução de conflito e estado da rede
Permissões do dispositivoPermissões em tempo de execução, negação definitiva e fluxo de solicitação

DoDocs v3.7.0 · Desenvolvido por @thiagocajadev · Baseado no trabalho de pmndrs/docs · Poimandres.