shivao-projeto/mobile
2026-04-27 18:17:06 -03:00
..
android feat(mobile): Capacitor Android pronto — APK + AAB v1.2.0 buildados 2026-04-27 17:34:19 -03:00
play-store-assets feat(store): screenshot 4 (política) capturado 2026-04-27 18:17:06 -03:00
.gitignore feat(mobile): scaffold Capacitor pra Android Play Store + adapter nativo 2026-04-27 16:02:34 -03:00
capacitor.config.json feat(mobile): scaffold Capacitor pra Android Play Store + adapter nativo 2026-04-27 16:02:34 -03:00
package-lock.json feat(mobile): Capacitor Android pronto — APK + AAB v1.2.0 buildados 2026-04-27 17:34:19 -03:00
package.json feat(mobile): scaffold Capacitor pra Android Play Store + adapter nativo 2026-04-27 16:02:34 -03:00
play-store-listing.md feat(legal+store): política de privacidade LGPD/GDPR + Play Store assets 2026-04-27 18:14:49 -03:00
README.md feat(mobile): scaffold Capacitor pra Android Play Store + adapter nativo 2026-04-27 16:02:34 -03:00

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ê)

  1. JDK 17+ — Adoptium Temurin é a melhor escolha:

    winget install EclipseAdoptium.Temurin.17.JDK
    

    Verificar: java -version deve mostrar 17.x

  2. Android Studio — instala SDK + emulador + tudo:

    winget install Google.AndroidStudio
    

    Apó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
  3. 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
  4. 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-box no 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

  1. Conta Google Play Developer: $25 1× em https://play.google.com/console
  2. Após aprovado (~24h), criar novo app:
    • Nome: "Shivao - Diário de Bordo"
    • Categoria: "Maps & Navigation"
    • Idioma: pt-BR
  3. Subir AAB: Production → Releases → Create new release → upload app-release.aab
  4. Conteúdo obrigatório:
    • Política de privacidade (URL pública — vou criar uma rota /politica-privacidade no 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
  5. Content rating: preencher questionário (~5min)
  6. Pricing: Free (cobrança vai por dentro do app via Asaas, não Google IAP — economia de 30%)
  7. 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