Comandos flutter que todo desarrollador debería dominar para acelerar tareas comunes: desde crear un proyecto hasta optimizar builds y depuración en dispositivos reales. Esta guía recopila los comandos más relevantes, explica cuándo usarlos y muestra errores habituales con soluciones prácticas.
Flujo inicial: crear, configurar y verificar el entorno
Antes de escribir código conviene confirmar que el entorno está listo. Estos comandos permiten crear proyectos y validar la instalación de Flutter y dependencias.
- flutter doctor — Informa sobre la configuración del SDK, la versión de Android SDK, Xcode y otros requisitos. Revisar las advertencias que muestra evita problemas posteriores.
- flutter channel <stable|beta|dev|master> — Cambia de canal. Usar stable en proyectos de producción y beta o dev para probar funciones experimentales.
- flutter upgrade — Actualiza Flutter a la última versión del canal activo. Ejecutar antes de empezar nuevas tareas para beneficiarse de correcciones y mejoras.
- flutter create <nombre_app> — Genera la plantilla inicial. Para proyectos con estructura personalizada, combinarlo con plantillas y flags como –org o –template=app.
Comandos flutter para desarrollo local y pruebas rápidas
Durante el desarrollo es habitual iterar rápido: compilar, ejecutar y hot reload. Estos comandos aceleran ese ciclo.
- flutter run — Ejecuta la app en el dispositivo conectado o emulador. Añadir -d <deviceId> para seleccionar un dispositivo concreto.
- r (en la consola donde se ejecuta flutter run) — Realiza hot reload para aplicar cambios de UI sin reiniciar el estado de la app.
- R — Realiza hot restart, que reinicia el estado de la app; útil cuando los cambios afectan a la inicialización global.
- flutter attach -d <deviceId> — Conecta el depurador a un proceso Flutter ya en ejecución; útil para testing en dispositivos físicos donde la app se inicia fuera del flujo de Flutter CLI.
- flutter logs — Muestra registros del dispositivo. Complementar con adb logcat en Android para mensajes nativos.
Comandos para gestión de dependencias y generación de código
La gestión correcta de paquetes y la generación de código automatiza tareas repetitivas y mantiene el proyecto ordenado.
- flutter pub get — Descarga dependencias declaradas en pubspec.yaml. Ejecutar tras modificar versiones o añadir paquetes.
- flutter pub upgrade — Actualiza paquetes a las versiones más recientes permitidas por las restricciones semánticas.
- flutter pub outdated — Muestra paquetes desactualizados y ayuda a planificar actualizaciones con menor riesgo.
- flutter pub run build_runner build — Genera código (por ejemplo, serializadores o providers) cuando se usa build_runner. Usar –delete-conflicting-outputs para resolver conflictos de archivos generados.
Builds, distribución y optimización
Preparar una aplicación para distribución requiere comandos específicos según la plataforma y objetivos de optimización.
- flutter build apk –release — Genera APK optimizado para Android. Para obtener un AAB, usar flutter build appbundle, recomendado para Google Play.
- flutter build ios –release — Prepara la build para iOS; requiere macOS y configuración previa de provisioning profiles y certificados.
- flutter build web — Crea la versión web; usar flags como –profile o –release según la necesidad de análisis de rendimiento.
- flutter build ipa — Empaqueta una IPA en macOS cuando se integra con herramientas de signing automáticas.
- flutter build bundle — Genera recursos del framework; útil para integraciones avanzadas y análisis personalizado.
Optimización y tamaño de la app
Reducir tamaño y mejorar rendimiento implica combinar builds con análisis. Usar –split-per-abi al generar APKs para evitar paquetes monolíticos y dart2js optimizations en builds web. Revisar la salida de flutter build y emplear herramientas como DevTools para identificar cuellos de botella.
Depuración, análisis y tests
Detectar errores temprano y automatizar pruebas mejora la calidad del producto. Estos comandos integran análisis estático, pruebas unitarias y generación de trazas.
- flutter analyze — Ejecuta el analizador estático; configurar reglas en analysis_options.yaml para adaptarlo al estilo de equipo.
- flutter test — Ejecuta tests unitarios y de widgets. Complementar con flutter drive para tests de integración en dispositivos reales.
- flutter format . — Formatea el código siguiendo convenciones; incluirlo en hooks pre-commit evita inconsistencias.
- flutter trace y flutter attach combinados con DevTools ayudan a generar perfiles de CPU y memoria.
Errores frecuentes y cómo resolverlos
Algunos problemas se repiten entre proyectos. Aquí hay soluciones prácticas a situaciones comunes asociadas a comandos Flutter.
- Dependencias bloqueadas: Si flutter pub get falla por versiones incompatibles, usar pubspec.yaml para fijar versiones o ejecutar flutter pub outdated y actualizar gradualmente. Evitar forzar versiones sin pruebas.
- Errores de signing en iOS: Después de flutter build ios, abrir el proyecto en Xcode, revisar perfiles de aprovisionamiento y seleccionar el equipo de signing. Automatizar mediante CI reduce diferencias entre máquinas.
- Hot reload no aplica cambios: Si r no refleja cambios, puede ser por modificaciones en código nativo o en la inicialización global. Usar R (hot restart) o reiniciar con flutter run.
- Espacio y tamaño: Builds enormes suelen deberse a assets no optimizados, dependencias pesadas o paquetes mal configurados. Revisar la carpeta assets y usar herramientas de compresión.
Buenas prácticas y flujo recomendado
Adoptar convicciones prácticas en el uso de comandos mejora la colaboración y la estabilidad del proyecto.
- Integrar flutter analyze y flutter test en pipelines de CI para detectar regresiones antes de merge.
- Usar ramas y canales controlados: mantener stable en main y probar features en canales menos estables.
- Documentar comandos recurrentes en el README del repositorio para nuevos integrantes del equipo.
- Automatizar la limpieza periódica con flutter clean antes de builds problemáticos, pero evitarlo como rutina diaria porque invalida caches útiles.
Ejemplo práctico: preparar una versión de prueba para testers Android
- Confirmar entorno: flutter doctor.
- Actualizar dependencias: flutter pub get.
- Generar build dividido: flutter build apk –release –split-per-abi.
- Enviar el APK correspondiente al ABI del dispositivo del tester.
Los comandos presentados funcionan como herramientas: elegir cuándo ejecutar flutter clean, cuándo actualizar el canal o cómo versionar dependencias depende del tamaño del equipo y del ciclo de desarrollo. Priorizar builds reproducibles y pruebas automatizadas reduce riesgos en producción.
Comandos flutter incluidos aquí ofrecen un mapa de ruta operativo: desde pasos iniciales hasta optimizaciones y resolución de errores. Implementarlos como parte del flujo de trabajo incrementa la velocidad de desarrollo y mejora la estabilidad del proyecto.
