Mobile Developer - Guía de Entorno¶
Esta guía detalla las herramientas necesarias para que Claude Code pueda ayudarte eficazmente en el desarrollo de aplicaciones móviles.
Resumen de Capacidades¶
| Capacidad | Herramientas Requeridas |
|---|---|
| iOS Development | Xcode, CocoaPods, Swift |
| Android Development | Android Studio, Gradle, Kotlin |
| Cross-platform | Flutter, React Native |
| Testing | XCTest, Espresso, Detox |
| Debugging | Flipper, React Native Debugger |
iOS Development¶
Requisitos¶
Solo macOS
El desarrollo iOS nativo requiere macOS y Xcode.
Xcode¶
# Instalar desde App Store o CLI
xcode-select --install
# Aceptar licencia
sudo xcodebuild -license accept
# Verificar
xcodebuild -version
# Instalar simuladores adicionales
xcrun simctl list devices
CocoaPods¶
# Instalar
sudo gem install cocoapods
# O con Homebrew
brew install cocoapods
# Verificar
pod --version
# Comandos comunes
pod init
pod install
pod update
pod deintegrate # Eliminar pods
Swift Package Manager¶
Fastlane (CI/CD)¶
# Instalar
brew install fastlane
# Inicializar en proyecto
fastlane init
# Comandos comunes
fastlane ios beta
fastlane ios release
fastlane match # Gestión de certificados
Android Development¶
Android Studio¶
# Windows
winget install Google.AndroidStudio
# macOS
brew install --cask android-studio
# Linux
sudo snap install android-studio --classic
# Después de instalar, configurar SDK via GUI
Command Line Tools¶
# Instalar SDK Command-line Tools desde Android Studio
# O descarga directa: https://developer.android.com/studio#command-tools
# Variables de entorno (añadir a .bashrc/.zshrc)
export ANDROID_HOME=$HOME/Android/Sdk # Linux
export ANDROID_HOME=$HOME/Library/Android/sdk # macOS
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
# Verificar
adb --version
sdkmanager --version
ADB (Android Debug Bridge)¶
# Dispositivos conectados
adb devices
# Instalar APK
adb install app.apk
# Logs
adb logcat
adb logcat -s MyApp # Filtrar por tag
# Shell
adb shell
adb shell pm list packages
# Captura de pantalla
adb exec-out screencap -p > screen.png
# Grabar pantalla
adb shell screenrecord /sdcard/video.mp4
Gradle¶
# Incluido con Android Studio, o instalar:
sdk install gradle # SDKMAN
# Comandos comunes
./gradlew build
./gradlew assembleDebug
./gradlew assembleRelease
./gradlew test
./gradlew connectedAndroidTest
./gradlew clean
./gradlew dependencies
Emuladores¶
# Listar AVDs
emulator -list-avds
# Ejecutar emulador
emulator -avd Pixel_6_API_34
# Crear AVD via CLI
avdmanager create avd -n "Pixel_6_API_34" -k "system-images;android-34;google_apis;x86_64" -d "pixel_6"
# scrcpy - Mirror de dispositivo Android
brew install scrcpy # macOS
winget install Genymobile.scrcpy # Windows
scrcpy # Ejecutar
Flutter (Cross-platform - Recomendado)¶
Instalación¶
# macOS
brew install --cask flutter
# Windows
winget install Google.Flutter
# Linux
sudo snap install flutter --classic
# Verificar instalación
flutter doctor
# Aceptar licencias
flutter doctor --android-licenses
Comandos Comunes¶
# Crear proyecto
flutter create my_app
# Ejecutar
flutter run
flutter run -d chrome # Web
flutter run -d macos # macOS desktop
# Build
flutter build apk
flutter build appbundle # Play Store
flutter build ios
flutter build web
# Testing
flutter test
flutter test integration_test/
# Dependencias
flutter pub get
flutter pub upgrade
flutter pub outdated
# Generar código (build_runner)
flutter pub run build_runner build
flutter pub run build_runner watch
# Análisis
flutter analyze
flutter format .
FVM (Flutter Version Manager)¶
# Instalar
dart pub global activate fvm
# Instalar versión de Flutter
fvm install 3.16.0
fvm use 3.16.0
fvm global 3.16.0
# En proyecto
fvm use 3.16.0 # Crea .fvm/fvm_config.json
React Native¶
Requisitos¶
# Node.js (ver guía backend/nodejs.md)
node --version # 18+
# Watchman (macOS)
brew install watchman
# Java 17 (para Android)
sdk install java 17.0.10-tem
CLI¶
# Crear proyecto con CLI
npx react-native@latest init MyApp
# O con Expo (recomendado para empezar)
npx create-expo-app@latest my-app
Expo (Recomendado)¶
# Crear proyecto
npx create-expo-app@latest my-app
# Ejecutar
cd my-app
npx expo start
# En dispositivo físico: Expo Go app
# O con desarrollo local:
npx expo run:ios
npx expo run:android
# Build para producción
npx expo build:android
npx expo build:ios
# EAS Build (nuevo)
npm install -g eas-cli
eas build -p android
eas build -p ios
React Native CLI¶
# Ejecutar
npx react-native run-android
npx react-native run-ios
# Build
cd android && ./gradlew assembleRelease
cd ios && xcodebuild -workspace MyApp.xcworkspace -scheme MyApp
# Metro bundler
npx react-native start
npx react-native start --reset-cache
# Linking nativo (si es necesario)
npx react-native link
Debugging¶
# Flipper (Facebook debugger)
brew install --cask flipper
# React Native Debugger
brew install --cask react-native-debugger
# Chrome DevTools
# Shake device > Debug with Chrome
Testing¶
iOS (XCTest)¶
# Ejecutar tests
xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'
# Via Fastlane
fastlane scan
Android (Espresso/JUnit)¶
# Unit tests
./gradlew test
# Instrumented tests (emulador/dispositivo)
./gradlew connectedAndroidTest
# Tests específicos
./gradlew testDebugUnitTest --tests "com.example.MyTest"
Flutter¶
# Unit/Widget tests
flutter test
# Integration tests
flutter test integration_test/
# Cobertura
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html
React Native (Jest + Detox)¶
# Jest (unit tests)
npm test
# Detox (E2E)
npm install -g detox-cli
detox init
detox build -c android.emu.debug
detox test -c android.emu.debug
IDE y Extensiones¶
Visual Studio Code¶
# Flutter
code --install-extension Dart-Code.flutter
code --install-extension Dart-Code.dart-code
# React Native
code --install-extension msjsdiag.vscode-react-native
code --install-extension dsznajder.es7-react-js-snippets
# General
code --install-extension esbenp.prettier-vscode
code --install-extension dbaeumer.vscode-eslint
Android Studio Plugins¶
- Flutter (si usas Flutter)
- Kotlin
- ADB Idea
- JSON To Kotlin Class
Xcode Extensions¶
- SwiftLint (via build phase)
- SwiftFormat
Comandos que Claude Code Ejecutará¶
# Flutter
flutter create my_app
flutter run
flutter build apk
flutter test
flutter pub get
# React Native / Expo
npx expo start
npx expo run:ios
npx react-native run-android
npm test
# iOS
pod install
xcodebuild build
fastlane ios beta
# Android
./gradlew assembleDebug
./gradlew test
adb install app.apk
adb logcat
Verificación del Entorno¶
#!/bin/bash
echo "=== Verificación Entorno Mobile ==="
echo -e "\n--- Flutter ---"
flutter --version 2>/dev/null || echo "Flutter no instalado"
flutter doctor 2>/dev/null | head -20
echo -e "\n--- React Native ---"
npx react-native --version 2>/dev/null || echo "React Native CLI no instalado"
echo -e "\n--- Android ---"
adb --version 2>/dev/null || echo "ADB no instalado"
echo "ANDROID_HOME: $ANDROID_HOME"
echo -e "\n--- iOS (solo macOS) ---"
xcodebuild -version 2>/dev/null || echo "Xcode no instalado"
pod --version 2>/dev/null || echo "CocoaPods no instalado"
echo -e "\n=== Verificación Completa ==="