DevForge

Desenvolvimento Mobile

Setup completo para desenvolvimento mobile: Android (Java/Kotlin), iOS (Swift), React Native, Flutter, Ionic, Cordova, Xamarin/.NET MAUI e KMM.

📱 Android 🍎 iOS ⚛️ React Native 🦋 Flutter ⚡ Ionic 📦 Cordova 🔷 Xamarin 🎯 KMM

⚡ Instalação Automatizada - Mobile Stack

Windows / Linux / macOS
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/mobile/install-mobile.sh | bash

Instala: Android Studio, SDK, emuladores, Node.js, React Native CLI, Flutter SDK, Ionic CLI, Cordova, .NET MAUI, Xcode Command Line Tools (macOS).

Android (Java / Kotlin)

📦 Instalação

sudo apt install openjdk-17-jdk android-sdk
winget install Google.AndroidStudio

🚀 Comandos Essenciais

./gradlew assembleDebug
./gradlew installDebug
emulator -avd Pixel_4_API_33
adb devices

📝 build.gradle (app level)

android { compileSdk 34 defaultConfig { applicationId "com.example.app" minSdk 21 targetSdk 34 versionCode 1 versionName "1.0" } } dependencies { implementation 'androidx.core:core-ktx:1.12.0' implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.0' }

iOS (Swift) - Apenas macOS

📦 Instalação

xcode-select --install
sudo gem install cocoapods

🚀 Comandos Essenciais

xcodebuild -workspace App.xcworkspace -scheme App build
xcrun simctl list devices
pod install

📝 SwiftUI Example

import SwiftUI struct ContentView: View { var body: some View { VStack { Text("Hello, DevForge!") .font(.title) .padding() } } }

React Native

📦 Instalação

npm install -g react-native-cli
npx create-expo-app MyApp
npx react-native init MyApp

🚀 Comandos Essenciais

npx react-native start
npx react-native run-android
npx react-native run-ios
cd android && ./gradlew assembleRelease

📝 App.js Example

import React from 'react'; import { View, Text, StyleSheet } from 'react-native'; const App = () => ( <View style={styles.container}> <Text>Hello DevForge!</Text> </View> ); const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center' } }); export default App;

Flutter

📦 Instalação

git clone https://github.com/flutter/flutter.git -b stable
export PATH="$PATH:`pwd`/flutter/bin"
flutter doctor

🚀 Comandos Essenciais

flutter create my_app
flutter run
flutter build apk
flutter pub get

📝 main.dart Example

import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('DevForge')), body: Center(child: Text('Hello Flutter!')), ), ); } }

Ionic (Angular/React/Vue)

📦 Instalação

npm install -g @ionic/cli
ionic start myApp blank --type=react

🚀 Comandos Essenciais

ionic serve
ionic build
npx cap add android && npx cap sync

Apache Cordova

📦 Instalação

npm install -g cordova
cordova create myApp com.example.app MyApp

🚀 Comandos Essenciais

cordova platform add android ios
cordova build android
cordova run android --emulator

.NET MAUI (Xamarin.Forms)

📦 Instalação

dotnet workload install maui
dotnet new maui -n MyApp

🚀 Comandos Essenciais

dotnet build -c Release
dotnet build -t:Run -f net8.0-android

KMM (Kotlin Multiplatform Mobile)

📦 Instalação

curl -s https://get.sdkman.io | bash
sdk install kotlin

🚀 Comandos Essenciais

./gradlew build
./gradlew allTests

🔧 Troubleshooting Mobile

❌ Erro: "SDK not found" (Android)

Causa: Android SDK não configurado.
Solução: Configure ANDROID_HOME no .bashrc: export ANDROID_HOME=$HOME/Android/Sdk

⚠️ Erro: "No iOS signing certificate found"

Causa: Certificado de desenvolvimento não configurado no Xcode.
Solução: Abra Xcode → Preferences → Accounts e adicione sua conta Apple Developer.

🐘 React Native: "Metro bundler failed"

Solução: npx react-native start --reset-cache

Diagnóstico automático Mobile:

java -version && node -v && npm -v && flutter doctor && npx react-native --version && ionic --version && cordova --version && dotnet --version

Este comando verifica versões das principais ferramentas mobile.

⚠️ IMPORTANTE - Como executar os scripts corretamente

Os scripts abaixo funcionam em Windows, Linux e macOS. Siga as instruções específicas do seu sistema:

WINDOWS (PowerShell)
# ERRO COMUM: "arquivo não assinado" ou "execução de scripts desabilitada" # SOLUÇÃO 1: Executar com bypass (recomendado) powershell -ExecutionPolicy Bypass -File "C:\caminho\script.ps1" # SOLUÇÃO 2: Baixar e executar direto (pode ter erro de codificação) powershell -ExecutionPolicy Bypass -Command "iex (irm https://.../script.ps1)" # SOLUÇÃO 3: Habilitar execução permanentemente (como Administrador) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Se houver erros de acentuação (caracteres estranhos): O script ainda funciona, apenas a saída visual pode ficar distorcida
LINUX / WSL (Bash)
# ERRO COMUM: "permission denied" ou "comando não encontrado" # SOLUÇÃO 1: Dar permissão de execução (obrigatório) chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Executar via curl (baixar e executar direto) curl -fsSL https://.../script.sh | bash # SOLUÇÃO 4: Se der erro de permissão, use sudo (cuidado!) sudo chmod +x script.sh && sudo ./script.sh # Se houver erros de permissão: Execute 'ls -la script.sh' para verificar permissões atuais
macOS (Terminal / Zsh)
# ERRO COMUM: "permission denied" ou "operation not permitted" # SOLUÇÃO 1: Dar permissão de execução chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Se der erro de "quarentena" (arquivo baixado da internet) xattr -d com.apple.quarantine script.sh # SOLUÇÃO 4: Executar via curl curl -fsSL https://.../script.sh | bash # Se erro persistir: Vá em Preferências do Sistema → Segurança e Privacidade → Permitir execução

Dicas importantes:
Windows: Se aparecerem caracteres estranhos (ex: "�" ou "ção"), ignore - o script funciona normalmente. Para evitar, baixe o script localmente e execute.
Linux/macOS: Sempre use chmod +x antes de executar scripts baixados.
WSL (Windows): Siga as instruções do Linux, mas certifique-se de que o script está dentro do sistema de arquivos do Linux (não no /mnt/c/).

📜 Scripts prontos

Scripts verificados no Ubuntu 22.04/24.04, macOS 13+ e Windows 10/11 (WSL2).

❓ Perguntas frequentes - Mobile

React Native vs Flutter: qual escolher?

React Native: melhor para devs JS/React, biblioteca madura. Flutter: melhor performance, UI consistente, linguagem Dart. Ambos são excelentes!

Como testar apps iOS sem Mac?

Use serviços de CI/CD como GitHub Actions (macOS runners), BrowserStack, Sauce Labs ou TestFlight para testes remotos.

Melhor stack para MVP rápido?

React Native + Expo ou Flutter. Ambos têm hot-reload, vasta comunidade e publicação rápida nas stores.

Como publicar apps nas stores?

Android: gere .aab com `./gradlew bundleRelease`, publique na Google Play Console. iOS: gere .ipa, publique no App Store Connect com Transporter.