Saltar al contenido principal

FAQ - Mobile Development

General​

¿Qué cambió?​

Antes tenías que hacer rebuild completo (5-10 min) por cada cambio. Ahora los cambios se reflejan automáticamente en 2-5 segundos con live reload.

¿Afecta los builds de producción?​

No. El comando npm run build:mobile sigue funcionando exactamente igual. Esto solo mejora el desarrollo local.

¿Necesito cambiar mi código?​

No. Todo el código existente funciona sin cambios. Solo cambia cómo desarrollas localmente.

¿Funciona con todas las configuraciones?​

Sí. Todas las configs en mobile/config/ funcionan igual (auravantbeta, ag, aura, etc.).


Comandos​

¿Cuál es el comando principal?​

npm run dev:mobile -- --platform=android --config=auravantbeta

¿Cómo veo los dispositivos disponibles?​

npm run list:devices

¿Cómo verifico que todo está configurado?​

npm run check:setup

¿Puedo usar un dispositivo específico?​

Sí:

npm run dev:mobile -- --platform=android --device=emulator-5554

Desarrollo​

¿Cómo funciona el live reload?​

  1. Webpack dev server corre en tu IP local (ej: http://192.168.1.100:8080)
  2. Capacitor configura la app para conectarse a ese servidor
  3. Cuando guardas un archivo, webpack lo recompila
  4. La app detecta el cambio y se recarga automáticamente

¿Qué tan rápido es?​

  • Primera vez: ~30 segundos (setup)
  • Cambios subsecuentes: 2-5 segundos (auto-reload)

¿Necesito reiniciar el servidor entre cambios?​

No. Mantén el servidor corriendo todo el día. Solo reinicia si:

  • Cambias de configuración
  • Instalas nuevas dependencias
  • Algo se rompe

¿Qué pasa si el auto-reload falla?​

Refresh manual:

  • Android: Cmd+M → Reload
  • iOS: Cmd+R

¿Puedo desarrollar para iOS y Android al mismo tiempo?​

No en el mismo proceso, pero puedes:

  1. Iniciar dev server una vez
  2. Abrir Android Studio y Xcode
  3. Ambos se conectan al mismo dev server
  4. Cambios se reflejan en ambos

Configuración​

¿Cómo cambio de configuración?​

# Detener servidor actual
Ctrl+C

# Iniciar con nueva config
npm run dev:mobile -- --platform=android --config=ag

¿Cuánto tarda cambiar de config?​

~30 segundos (mucho más rápido que rebuild completo de 5-10 min).

¿Puedo tener múltiples configs corriendo?​

No simultáneamente en el mismo puerto. Pero puedes cambiar rápidamente entre ellas.


Troubleshooting​

"Cannot connect to dev server"​

Causa: App no puede conectarse al webpack dev server.

Solución:

# 1. Verifica tu IP local
ifconfig | grep "inet " | grep -v 127.0.0.1

# 2. Verifica que webpack está corriendo
curl http://TU_IP:8080

# 3. Verifica firewall (puerto 8080 debe estar abierto)

# 4. Si usas emulador, prueba con localhost
# Edita capacitor.config.json temporalmente:
# "url": "http://localhost:8080"

"App crashes on launch"​

Causa: Datos corruptos o config incorrecta.

Solución:

# Limpiar datos de la app
adb shell pm clear com.auravantbeta # Android
xcrun simctl uninstall booted com.auravantbeta # iOS

# Reinstalar
npx cap sync android # o ios

"Changes not reflecting"​

Causa: Webpack no está detectando cambios o app no está escuchando.

Solución:

# 1. Verifica consola de webpack por errores

# 2. Refresh manual
Cmd+M → Reload (Android)
Cmd+R (iOS)

# 3. Reinicia dev server
Ctrl+C
npm run dev:mobile -- --platform=android --config=auravantbeta

"Module not found"​

Causa: Dependencia nueva no instalada.

Solución:

# Detener servidor
Ctrl+C

# Instalar dependencias
npm install

# Sincronizar
npx cap sync android # o ios

# Reiniciar
npm run dev:mobile -- --platform=android --config=auravantbeta

"Port 8080 already in use"​

Causa: Otro proceso usando el puerto.

Solución:

# Encontrar proceso
lsof -i :8080

# Matar proceso
kill -9 <PID>

# O cambiar puerto en webpack.dev.js

"Android Studio/Xcode no abre"​

Causa: Comando npx cap open falla.

Solución:

# Abrir manualmente
# Android: Abrir Android Studio → Open → /path/to/project/android
# iOS: Abrir Xcode → Open → /path/to/project/ios/App/App.xcworkspace

Performance​

¿Por qué a veces tarda más de 5 segundos?​

Posibles causas:

  1. Primera carga: Webpack compila todo (~30 seg)
  2. Cambio grande: Muchos archivos modificados
  3. Red lenta: WiFi inestable
  4. Memoria baja: Cerrar apps innecesarias

¿Cómo puedo hacerlo más rápido?​

Tips:

  1. Usa SSD (no HDD)
  2. Cierra apps innecesarias
  3. Usa cable USB si WiFi es lento
  4. Reinicia emulador si está lento
  5. Usa eval-source-map (ya configurado)

¿Consume mucha batería en dispositivo físico?​

Sí, más que la app normal porque:

  • Mantiene conexión WiFi activa
  • Recarga frecuentemente
  • Tiene dev tools habilitados

Recomendación: Usa emulador para desarrollo, dispositivo físico para testing final.


Comparación​

¿Cuándo usar dev mode vs build mode?​

Dev Mode (npm run dev:mobile):

  • ✅ Desarrollo diario
  • ✅ Iteración rápida
  • ✅ Testing de features
  • ✅ Debugging
  • ❌ Testing de performance
  • ❌ Testing de producción

Build Mode (npm run build:mobile):

  • ❌ Desarrollo diario (muy lento)
  • ✅ Testing final
  • ✅ Testing de performance
  • ✅ Builds de producción
  • ✅ Deployment

¿Es como Expo?​

Sí, similar:

  • ✅ Live reload automático
  • ✅ Hot module replacement
  • ✅ Desarrollo rápido
  • ❌ No tiene app standalone (usamos Capacitor)
  • ❌ No tiene OTA updates (no es necesario)

Avanzado​

¿Puedo personalizar el puerto?​

Sí, edita config/webpack.dev.js:

devServer: {
port: 3000 // Cambiar de 8080 a 3000
}

¿Puedo usar HTTPS en dev?​

Sí, pero no es recomendado para mobile dev. HTTP es más simple y rápido.

¿Funciona con hot reload de React?​

Sí, Hot Module Replacement está habilitado. Cambios en componentes React se reflejan sin perder estado.

¿Puedo debuggear con Chrome DevTools?​

Android:

# Abrir chrome://inspect en Chrome
# Seleccionar tu dispositivo

iOS:

# Safari → Develop → Simulator → Tu App

¿Puedo usar Redux DevTools?​

Sí, funciona normal. Instala la extensión y conéctate al dev server.


Migración​

¿Necesito actualizar mi workflow?​

Antes:

npm run build:mobile -- --platform=android
# Abrir Android Studio
# Presionar Play
# Hacer cambio
# Repetir todo

Ahora:

npm run dev:mobile -- --platform=android --config=auravantbeta
# Presionar Play (solo primera vez)
# Hacer cambios → Auto-reload
# Mantener corriendo todo el día

¿Qué pasa con mis scripts existentes?​

Todos siguen funcionando:

  • npm run build:mobile - Sin cambios
  • npm run deploy:mobile - Sin cambios
  • npm run sync - Sin cambios

Solo se agregaron nuevos comandos:

  • npm run dev:mobile - Nuevo
  • npm run list:devices - Nuevo
  • npm run check:setup - Nuevo

Soporte​

¿Dónde encuentro más información?​

  1. Quick Start: mobile/README.md
  2. Guía Completa: MOBILE_DEV_GUIDE.md
  3. Tips: MOBILE_DEV_TIPS.md
  4. Implementación: MOBILE_DEV_IMPLEMENTATION.md

¿Cómo reporto un bug?​

  1. Ejecuta npm run check:setup
  2. Revisa la consola de webpack por errores
  3. Revisa la consola del dispositivo
  4. Incluye toda esa información en el reporte

¿Puedo contribuir mejoras?​

Sí! Los scripts están en mobile/scripts/:

  • dev.js - Script principal
  • list-devices.js - Listar dispositivos
  • check-setup.js - Verificar setup

Preguntas Frecuentes del Equipo​

"¿Esto reemplaza Android Studio/Xcode?"​

No. Todavía necesitas los IDEs para:

  • Configuración inicial
  • Cambios en código nativo
  • Debugging avanzado
  • Builds de producción

"¿Funciona offline?"​

No. Necesitas conexión entre tu computadora y el dispositivo/emulador (WiFi o USB).

"¿Puedo usar esto en CI/CD?"​

No. Esto es solo para desarrollo local. CI/CD sigue usando npm run build:mobile.

"¿Afecta el tamaño del bundle?"​

No. El dev server no está incluido en el build de producción.

"¿Es seguro?"​

Sí. Solo funciona en tu red local. No expone nada a internet.


¿No encuentras tu pregunta? Revisa MOBILE_DEV_TIPS.md o MOBILE_DEV_GUIDE.md