DevForge
Desenvolvimento Mobile
Setup completo para desenvolvimento mobile: Android (Java/Kotlin), iOS (Swift), React Native, Flutter, Ionic, Cordova, Xamarin/.NET MAUI e KMM.
⚡ Instalação Automatizada - Mobile Stack
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/mobile/install-mobile.sh | bashInstala: 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-sdkwinget install Google.AndroidStudio🚀 Comandos Essenciais
./gradlew assembleDebug./gradlew installDebugemulator -avd Pixel_4_API_33adb 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 --installsudo gem install cocoapods🚀 Comandos Essenciais
xcodebuild -workspace App.xcworkspace -scheme App buildxcrun simctl list devicespod 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-clinpx create-expo-app MyAppnpx react-native init MyApp🚀 Comandos Essenciais
npx react-native startnpx react-native run-androidnpx react-native run-ioscd 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 stableexport PATH="$PATH:`pwd`/flutter/bin"flutter doctor🚀 Comandos Essenciais
flutter create my_appflutter runflutter build apkflutter 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/cliionic start myApp blank --type=react🚀 Comandos Essenciais
ionic serveionic buildnpx cap add android && npx cap syncApache Cordova
📦 Instalação
npm install -g cordovacordova create myApp com.example.app MyApp🚀 Comandos Essenciais
cordova platform add android ioscordova build androidcordova run android --emulator.NET MAUI (Xamarin.Forms)
📦 Instalação
dotnet workload install mauidotnet new maui -n MyApp🚀 Comandos Essenciais
dotnet build -c Releasedotnet build -t:Run -f net8.0-androidKMM (Kotlin Multiplatform Mobile)
📦 Instalação
curl -s https://get.sdkman.io | bashsdk 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:
# 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
# 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
# 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.