- GET /politica — HTML com todas as 12 seções LGPD/GDPR + DPO - mobile/play-store-listing.md: nome, descrições curta+completa PT-BR (4000 chars), categoria, tags, justificativas de permissions - mobile/play-store-assets/icon-512.png — gerado via Playwright (renderiza icon.svg em 512x512) - mobile/play-store-assets/feature-graphic.png — banner 1024x500 com logo + slogan + features - mobile/play-store-assets/screenshots/ — telas reais do app (home, arquivo, upgrade modal) |
||
|---|---|---|
| .. | ||
| android | ||
| play-store-assets | ||
| .gitignore | ||
| capacitor.config.json | ||
| package-lock.json | ||
| package.json | ||
| play-store-listing.md | ||
| README.md | ||
Shivao Mobile · Capacitor Android (e iOS futuro)
Wrapper Capacitor pra empacotar o Shivao web como app nativo Android (.apk pra sideload, .aab pra Play Store) e iOS no futuro.
Arquitetura: o frontend HTML mora em app/diario-bordo.html (1 fonte de verdade). Um script (scripts/sync-html.mjs) copia pra server/public/index.html (Express serve) e mobile/www/index.html (Capacitor empacota).
🛠️ Pré-requisitos (instalar 1 vez)
Windows (recomendado pra você)
-
JDK 17+ — Adoptium Temurin é a melhor escolha:
winget install EclipseAdoptium.Temurin.17.JDKVerificar:
java -versiondeve mostrar17.x -
Android Studio — instala SDK + emulador + tudo:
winget install Google.AndroidStudioApós abrir, ir em Tools → SDK Manager e instalar:
- Android SDK Platform 34 (Android 14)
- Android SDK Build-Tools 34.0.0
- Android SDK Command-line Tools (latest)
- Android SDK Platform-Tools
-
Variáveis de ambiente (Painel de Controle → Sistema → Variáveis de Ambiente):
JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.x(ajuste path)ANDROID_HOME=C:\Users\pontu\AppData\Local\Android\Sdk- Adicionar ao PATH:
%JAVA_HOME%\bin,%ANDROID_HOME%\platform-tools
-
Reiniciar terminal. Verificar:
java -version adb --version
Tempo total de instalação: ~30-45 min (download de ~3GB).
🚀 Build inicial (faz 1 vez)
cd mobile
# Instala deps Capacitor + plugins
npm install
# Sincroniza HTML do app/ pra mobile/www/
node ../scripts/sync-html.mjs
# Adiciona projeto Android (gera mobile/android/)
npx cap add android
# Sincroniza plugins nativos no projeto Android
npx cap sync android
Permissões Android (editar manualmente após cap add android)
Abra mobile/android/app/src/main/AndroidManifest.xml e adicione DENTRO do <manifest>:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.sensor.barometer" android:required="false" />
<uses-feature android:name="android.hardware.sensor.compass" android:required="false" />
🔐 Keystore PERMANENTE (CRÍTICO — gera 1 vez, guarda pra sempre)
cd mobile/android/app
keytool -genkey -v -keystore shivao-release.keystore -alias shivao -keyalg RSA -keysize 2048 -validity 10000 \
-dname "CN=Karlao, O=PontualTech, L=Sao Paulo, ST=SP, C=BR"
# Senha forte (mínimo 8 chars). ANOTE em local seguro — perda = perda permanente do app na Play Store.
BACKUP IMEDIATO:
cp shivao-release.keystore C:/Users/pontu/Downloads/Shivao-keystore-backup/shivao-release.keystore
echo "Senha keystore: SUA_SENHA_AQUI" >> C:/Users/pontu/Downloads/Shivao-keystore-backup/keystore-passwords.txt
echo "Alias: shivao" >> C:/Users/pontu/Downloads/Shivao-keystore-backup/keystore-passwords.txt
E também faça upload em Drive privado, HD externo etc — perdeu = não publica update na Play Store nunca mais.
Configurar signing no Gradle
Edite mobile/android/app/build.gradle, dentro de android { ... }:
signingConfigs {
release {
storeFile file('shivao-release.keystore')
storePassword System.getenv('SHIVAO_KEYSTORE_PWD') ?: 'SUA_SENHA_AQUI'
keyAlias 'shivao'
keyPassword System.getenv('SHIVAO_KEY_PWD') ?: 'SUA_SENHA_AQUI'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
}
}
📦 Build do APK (sideload) e AAB (Play Store)
cd mobile
# Sincroniza última versão do HTML antes de build
npm run sync
# APK assinado pra sideload (~3-5 min primeira vez, ~1 min em rebuilds)
npm run android:build:apk
# Output: mobile/android/app/build/outputs/apk/release/app-release.apk
# AAB pra Play Store (formato preferido)
npm run android:build:aab
# Output: mobile/android/app/build/outputs/bundle/release/app-release.aab
🌐 Alternativa: Build na nuvem (sem instalar nada local)
Se não quiser instalar 3GB de Android Studio:
Opção A: Codemagic (mais simples)
- 500min grátis/mês, suficiente pra ~10 builds
- Conecta ao Forgejo, push detecta e roda
- Configura assinatura no painel
Opção B: Container Docker no Coolify (mais self-hosted)
- Subir imagem
mingc/android-build-boxno Coolify - Cron job ou webhook do Forgejo dispara build
- APK/AAB salvo em volume persistente
Ambas opções: vamos preparar quando você decidir.
🎮 Submeter Play Store
- Conta Google Play Developer: $25 1× em https://play.google.com/console
- Após aprovado (~24h), criar novo app:
- Nome: "Shivao - Diário de Bordo"
- Categoria: "Maps & Navigation"
- Idioma: pt-BR
- Subir AAB: Production → Releases → Create new release → upload
app-release.aab - Conteúdo obrigatório:
- Política de privacidade (URL pública — vou criar uma rota
/politica-privacidadeno servidor) - Screenshots: mínimo 2 (vou gerar via Playwright se quiser)
- Ícone 512×512 (vou gerar do icon.svg)
- Descrição curta (80 chars) e completa
- Política de privacidade (URL pública — vou criar uma rota
- Content rating: preencher questionário (~5min)
- Pricing: Free (cobrança vai por dentro do app via Asaas, não Google IAP — economia de 30%)
- Submit pra review: Google revisa em 1-7 dias
📱 iOS (FASE 4 futura)
Requer:
- Mac (mini M4 ~R$5k mais barato)
- Apple Developer Program $99/ano
- Xcode
npx cap add ios
npx cap sync ios
npx cap open ios # abre Xcode
# Build Archive → Distribute → App Store Connect
🐛 Troubleshooting
adb: command not found — adicione %ANDROID_HOME%\platform-tools ao PATH
SDK location not found — crie mobile/android/local.properties:
sdk.dir=C:\\Users\\pontu\\AppData\\Local\\Android\\Sdk
Build muito lento — primeiro build baixa Gradle + dependências (~500MB). Próximos builds usam cache.
APK muito grande — habilitar minify em build.gradle:
buildTypes.release.minifyEnabled true
buildTypes.release.shrinkResources true