Pular para o conteúdo

Android

O que funciona hoje, o que não existe, e por que a distinção importa.

O que funciona hoje#

CaminhoO que éO que custa
PWAuma aplicação Vitrine ou Kiln que o Android instala na tela inicialprecisa de HTTPS, e não é app nativo
servidor na redeo programa roda no computador, e o celular abre no navegadoros dois na mesma rede
Termuxo interpretador roda dentro do Androidquem 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  para oferecer 'instalar'
  sw.js           o service worker  rede primeiro, cache de reserva
  icone.svg       o ícone

O 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, icons e display: 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 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.