Android
O que funciona hoje, o que não existe, e por que a distinção importa.
O que funciona hoje#
| Caminho | O que é | O que custa |
|---|---|---|
| PWA | uma aplicação Vitrine ou Kiln que o Android instala na tela inicial | precisa de HTTPS, e não é app nativo |
| servidor na rede | o programa roda no computador, e o celular abre no navegador | os dois na mesma rede |
| Termux | o interpretador roda dentro do Android | quem usa precisa instalar o Termux |
bash
$ dataforge mobile doctor
$ dataforge mobile pwa --nome="Meu Painel" --em=publico
gerado em publico/
manifest.json o que o Android lê para oferecer 'instalar'
sw.js o service worker — rede primeiro, cache de reserva
icone.svg o íconeO que o Android exige, sem exceção#
- HTTPS — em
http://ele não oferece instalar (localhosté a exceção, para desenvolver). - O manifesto com
name,iconsedisplay: standalone. - Um service worker registrado — é ele que faz o botão "instalar" aparecer.
- Um ícone de 512×512 com
purpose: maskable, senão o Android recorta o seu de qualquer jeito.
Rede primeiro, cache de reserva#
O service worker gerado busca da rede e só cai no cache quando ela falha. A estratégia inversa (cache primeiro) é mais rápida e faz um painel mostrar dado velho sem avisar — o que é pior que dizer "sem conexão".
dataforge
adopt Arcane.Vitrine as V
// Um painel da Vitrine é o que vira PWA: ele já é uma página, já
// responde no celular, e o manifesto só acrescenta o "instalar".
action pagina():
V.titulo("Estoque")
V.metrica("Produtos", 42)
V.frame([{"nome": "café", "qtd": 12}])
s := V.testar(pagina)
s.rodar()
assert "Estoque" in s.texto()
out "o mesmo painel vira app instalável"O que NÃO existe#
- APK, e publicação na Play Store.
- Widget nativo (Material, Compose).
- Câmera, GPS e notificação nativas pelo DataForge — o PWA alcança parte disso pelo navegador, com a permissão do usuário.
- iOS: o Safari instala PWA na tela inicial, com limites maiores (sem notificação push confiável, e o service worker é descartado com mais frequência).
A decisão, escrita#
Um APK que empacota o CPython é possível e custa a promessa central do projeto: zero dependência. O PWA entrega o caso de uso real — uma ferramenta interna no celular de quem trabalha — sem quebrar nada. Quando o caso for um app de loja, com widget nativo e notificação, a resposta honesta é que esta linguagem não é a ferramenta.