Gestión de versiones de Flutter (FVM): Explicado

Esta guía completa te mostrará todo sobre FVM, desde la instalación hasta escenarios de uso avanzados.

Daniel Costa

Daniel Costa

15 April 2025

Gestión de versiones de Flutter (FVM): Explicado

Flutter Version Management (FVM) es una herramienta esencial para los desarrolladores de Flutter que agiliza el proceso de gestión de múltiples versiones del SDK de Flutter en diferentes proyectos. A medida que Flutter evoluciona rápidamente con actualizaciones frecuentes, tener un sistema de gestión de versiones robusto se vuelve crucial para mantener la estabilidad del proyecto. Esta guía completa te guiará a través de todo lo que necesitas saber sobre FVM, desde la instalación hasta escenarios de uso avanzados.

Mientras desarrollas aplicaciones Flutter, a menudo necesitarás probar e interactuar con APIs. Apidog es una excelente alternativa a Postman que ofrece un conjunto completo de características para el desarrollo y las pruebas de APIs.

¿Por qué considerar Apidog?

Apidog proporciona una experiencia optimizada con características que hacen que las pruebas de API sean más eficientes:

  1. Plataforma todo en uno: Documentación de API, diseño, depuración, pruebas automatizadas y simulación en una sola herramienta
  2. Interfaz intuitiva: Diseño fácil de usar con capacidades potentes
  3. Servidor Mock integrado: Crea APIs simuladas sin escribir código

4. Características de colaboración: Colaboración en equipo en tiempo real con actualizaciones sincronizadas

5. Soporte de OpenAPI: Importa y exporta especificaciones de OpenAPI sin problemas

6. Documentación autogenerada: Crea documentación de API interactiva y atractiva automáticamente

7. Capacidad de prueba avanzada: Crea escenarios de prueba complejos con scripts potentes

button

Por qué necesitas la gestión de versiones de Flutter

Antes de sumergirnos en los detalles técnicos, comprendamos por qué FVM es importante para los desarrolladores de Flutter:

  1. Versiones de Flutter específicas del proyecto: Diferentes proyectos pueden requerir diferentes versiones del SDK de Flutter según la compatibilidad del paquete o los requisitos del cliente.
  2. Consistencia del equipo: Garantiza que todos los miembros del equipo utilicen la misma versión de Flutter, eliminando los problemas de "funciona en mi máquina".
  3. Fácil cambio de SDK: Cambia rápidamente entre canales estables, beta o de desarrollo sin reinstalaciones que consumen mucho tiempo.
  4. Soporte para múltiples proyectos: Trabaja en varios proyectos simultáneamente sin conflictos de versión.
  5. Prueba de nuevas versiones: Experimenta de forma segura con nuevas versiones de Flutter sin afectar tus proyectos de producción estables.

Instalación

Comencemos instalando FVM en tu sistema. El proceso de instalación difiere ligeramente según tu sistema operativo:

Para macOS:

Usando Homebrew:

brew tap leoafarias/fvm
brew install fvm

Usando el script de instalación:

curl -fsSL https://fvm.app/install.sh | bash

Para Windows:

Usando Chocolatey:

choco install fvm

O descarga el paquete independiente del repositorio de FVM en GitHub.

Para Linux:

Usando el script de instalación:

curl -fsSL https://fvm.app/install.sh | bash

Activación global

Después de instalar FVM, actívalo globalmente:

dart pub global activate fvm

Comandos básicos de FVM y uso

Ahora que tienes FVM instalado, exploremos los comandos esenciales para administrar las versiones del SDK de Flutter.

Instalación de versiones de Flutter

Para instalar una versión específica de Flutter:

fvm install 3.16.0

También puedes instalar un canal específico:

fvm install stable
fvm install beta
fvm install dev

Para usuarios avanzados, incluso puedes instalar un commit específico utilizando el hash de commit de git:

fvm install fa345b1  # Short hash
fvm install 476ad8a917e64e345f05e4147e573e2a42b379f9  # Long hash

Establecer una versión de Flutter para tu proyecto

Para establecer una versión específica de Flutter para tu proyecto, navega al directorio de tu proyecto y ejecuta:

fvm use 3.16.0

Este comando crea una carpeta .fvm en tu proyecto y configura un enlace simbólico al SDK de Flutter especificado.

Para usar la última versión de un canal específico:

fvm use stable

Si deseas fijar el canal a su versión actual (evitando actualizaciones automáticas):

fvm use stable --pin

Listado de versiones instaladas

Para ver todas las versiones de Flutter que has instalado a través de FVM:

fvm list

Alternativamente, puedes usar la abreviatura:

fvm ls

Visualización de versiones de Flutter disponibles

Para ver todas las versiones disponibles del SDK de Flutter:

fvm releases

Para filtrar versiones por canal:

fvm releases --channel beta

Eliminación de una versión de Flutter

Cuando ya no necesites una versión específica de Flutter:

fvm remove 3.16.0

Establecer una versión global de Flutter

Para establecer una versión global de Flutter para usar en todo tu sistema:

fvm global 3.16.0

Para desvincular la versión global:

fvm global --unlink

Configuración del proyecto

Después de configurar FVM para tu proyecto, deberás configurar tu entorno de desarrollo para usar el SDK de Flutter administrado por FVM.

Actualización de .gitignore

FVM crea un enlace simbólico en .fvm/flutter_sdk que apunta a la caché de la versión de Flutter seleccionada. Agrega esto a tu .gitignore:

.fvm/flutter_sdk

Configuraciones de IDE

VS Code

Crea o actualiza .vscode/settings.json en tu proyecto con lo siguiente:

{
  "dart.flutterSdkPath": ".fvm/flutter_sdk",
  // Remove .fvm files from search
  "search.exclude": {
    "**/.fvm": true
  },
  // Remove from file watching
  "files.watcherExclude": {
    "**/.fvm": true
  }
}

Android Studio

  1. Ve a Languages & Frameworks > Flutter
  2. Cambia la ruta del SDK de Flutter a la ruta absoluta de tu enlace simbólico de FVM (por ejemplo, /absolute-project-path/.fvm/flutter_sdk)
  3. Aplica los cambios y reinicia Android Studio

Para ignorar el directorio raíz del SDK de Flutter dentro de Android Studio, agrega esto a .idea/workspace.xml:

<component name="VcsManagerConfiguration">
  <ignored-roots>
    <path value="$PROJECT_DIR$/.fvm/flutter_sdk" />
  </ignored-roots>
</component>

XCode

Si estás trabajando en iOS, abre Xcode, ve a Build phases y agrega esto en Run script:

export FLUTTER_ROOT="$PROJECT_DIR/../.fvm/flutter_sdk"

Características avanzadas de FVM

Sabores del proyecto

FVM admite sabores de proyecto, lo que permite que diferentes partes de tu aplicación utilicen diferentes versiones del SDK de Flutter:

fvm use 3.16.0 --flavor production
fvm use 3.10.0 --flavor development

Para cambiar entre sabores:

fvm use production
fvm use development

Para ejecutar un comando de Flutter con un sabor específico:

fvm flavor production flutter build

Ejecución de comandos de Flutter con versiones específicas

El comando spawn te permite ejecutar comandos de Flutter con una versión específica del SDK:

fvm spawn 3.16.0 flutter build
fvm spawn 3.10.0 flutter test

Ejecución de comandos con la versión de Flutter del proyecto

El comando exec ejecuta comandos o scripts utilizando la versión de Flutter configurada del proyecto:

fvm exec melos bootstrap
fvm exec path/to/script.sh

Trabajar con FVM en entornos CI/CD

Para la integración continua, agrega estos pasos a tu flujo de trabajo:

  1. Instala FVM
  2. Ejecuta fvm install
  3. Usa fvm flutter <command> para ejecutar comandos de Flutter

Ejemplo para GitHub Actions:

steps:
  - uses: actions/checkout@v3
  - name: Install FVM
    run: |
      dart pub global activate fvm
      fvm install
  - name: Build and Test
    run: |
      fvm flutter pub get
      fvm flutter test

Mejores prácticas para usar FVM

  1. Siempre usa FVM para los comandos de Flutter - Ejecuta los comandos de Flutter a través de FVM (por ejemplo, fvm flutter pub get) para garantizar la coherencia.
  2. Incluye la versión de FVM en la documentación del proyecto - Documenta la versión requerida de Flutter en tu README para ayudar a los nuevos miembros del equipo.
  3. Bloquea la versión de Flutter en CI/CD - Asegúrate de que tu canalización de integración continua use la misma versión de Flutter que tu entorno de desarrollo.
  4. Considera usar --pin para la estabilidad - Cuando uses un canal como 'stable', considera fijarlo para evitar actualizaciones automáticas.
  5. Limpieza regular de la caché - Elimina periódicamente las versiones de Flutter no utilizadas con fvm remove para ahorrar espacio en disco.

Solución de problemas comunes

Versión de FVM no reconocida

Si tu IDE no reconoce la versión de Flutter establecida por FVM:

  1. Asegúrate de que la ruta del SDK de Flutter esté configurada correctamente en la configuración de tu IDE
  2. Reinicia tu IDE después de los cambios de configuración
  3. Verifica que el enlace simbólico se haya creado correctamente con ls -la .fvm/flutter_sdk

Problemas de permisos

Si encuentras errores de permiso:

  1. En sistemas basados en Unix, prueba sudo fvm <command>
  2. Verifica los permisos de la carpeta para el directorio de caché de FVM

Problemas de ruta

Si los comandos de Flutter no se encuentran después de usar FVM:

  1. Asegúrate de que la ruta del SDK de Flutter esté en la variable PATH de tu sistema
  2. Usa rutas absolutas al SDK de Flutter en tus scripts

Conclusión

Flutter Version Management (FVM) es una herramienta indispensable para el desarrollo moderno de Flutter. Al permitir un control preciso sobre las versiones del SDK de Flutter en diferentes proyectos, elimina los problemas de compatibilidad y garantiza la coherencia entre los equipos de desarrollo.

Comenzando con los conceptos básicos de la instalación y avanzando hacia características avanzadas como los sabores del proyecto, esta guía ha cubierto los aspectos esenciales del uso eficaz de FVM. Al incorporar FVM en tu flujo de trabajo de desarrollo de Flutter, puedes mejorar la productividad, mantener la estabilidad del proyecto y colaborar sin problemas con los miembros del equipo.

Recuerda siempre ejecutar los comandos de Flutter a través de FVM para garantizar la coherencia de la versión y evitar comportamientos inesperados. Con el uso adecuado de FVM, puedes trabajar con confianza en múltiples proyectos de Flutter con diferentes requisitos de SDK y experimentar fácilmente con nuevas versiones de Flutter sin afectar tu código de producción.

¡Feliz codificación de Flutter con FVM!

Explore more

Cómo usar Ollama: Guía Completa para Principiantes sobre LLMs Locales con Ollama

Cómo usar Ollama: Guía Completa para Principiantes sobre LLMs Locales con Ollama

El panorama de la inteligencia artificial evoluciona constantemente, y los Grandes Modelos de Lenguaje (LLM) se vuelven cada vez más potentes y accesibles. Aunque muchos interactúan con estos modelos a través de servicios basados en la nube, existe un movimiento creciente enfocado en ejecutarlos directamente en computadoras personales. Aquí es donde entra Ollama. Ollama es una herramienta potente pero fácil de usar, diseñada para simplificar drásticamente el complejo proceso de descargar, config

28 April 2025

¿Dónde Descargar Swagger UI en Español Gratis?

¿Dónde Descargar Swagger UI en Español Gratis?

¿Necesitas Swagger UI en español? Este artículo explica por qué no existe una descarga oficial gratuita y cómo habilitar la traducción. Explora las características de Swagger y por qué Apidog es la alternativa superior para diseño, pruebas y documentación API integrados.

23 April 2025

¿Dónde Descargar Postman en Español Gratis?

¿Dónde Descargar Postman en Español Gratis?

¿Puedes descargar Postman en español gratis? Aunque Postman carece de soporte nativo en español, existen soluciones. Explóralas y descubre Apidog, una potente alternativa unificada a Postman diseñada para optimizar todo tu flujo de trabajo de API, sin importar el idioma.

22 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs