# 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: ```bash java -version adb --version ``` **Tempo total de instalação:** ~30-45 min (download de ~3GB). --- ## 🚀 Build inicial (faz 1 vez) ```bash 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 ``: ```xml ``` --- ## 🔐 Keystore PERMANENTE (CRÍTICO — gera 1 vez, guarda pra sempre) ```bash 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:** ```bash 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 { ... }`: ```gradle 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) ```bash 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 ```bash 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`: ```gradle buildTypes.release.minifyEnabled true buildTypes.release.shrinkResources true ```