Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Gerenciamento de Versões do Flutter (FVM): Explicado

@apidog

@apidog

Updated on abril 5, 2025

A Gestão de Versões do Flutter (FVM) é uma ferramenta essencial para desenvolvedores Flutter que simplifica o processo de gerenciamento de várias versões do SDK Flutter em diferentes projetos. À medida que o Flutter evolui rapidamente com atualizações frequentes, ter um sistema robusto de gerenciamento de versões se torna crucial para manter a estabilidade do projeto. Este guia abrangente irá orientá-lo sobre tudo o que você precisa saber sobre o FVM, desde a instalação até cenários de uso avançado.

Enquanto desenvolve aplicações Flutter, você muitas vezes precisará testar e interagir com APIs. O Apidog é uma excelente alternativa ao Postman que oferece um conjunto abrangente de recursos para desenvolvimento e teste de APIs.

Por que considerar o Apidog?

O Apidog proporciona uma experiência simplificada com recursos que tornam o teste de APIs mais eficiente:

  1. Plataforma Tudo-em-um: Documentação de API, design, depuração, testes automatizados e simulação em uma única ferramenta
  2. Interface Intuitiva: Design amigável com poderosas funcionalidades
  3. Servidor Simulado Integrado: Crie APIs simuladas sem escrever código

4. Recursos de Colaboração: Colaboração em equipe em tempo real com atualizações sincronizadas

5. Suporte a OpenAPI: Importe e exporte especificações OpenAPI sem dificuldades

6. Documentação Auto-gerada: Crie documentos de API bonitos e interativos automaticamente

7. Capacidade Avançada de Testes: Crie cenários de teste complexos com poderosos scripts

button

Por que você precisa da Gestão de Versões do Flutter

Antes de mergulhar nos detalhes técnicos, vamos entender por que o FVM é importante para os desenvolvedores Flutter:

  1. Versões do Flutter Específicas para Projetos: Projetos diferentes podem exigir diferentes versões do SDK Flutter com base na compatibilidade de pacotes ou requisitos do cliente.
  2. Consistência na Equipe: Garante que todos os membros da equipe usem a mesma versão do Flutter, eliminando problemas do tipo "funciona na minha máquina".
  3. Troca Fácil de SDK: Altere rapidamente entre canais estáveis, beta ou dev sem reinstalações que consomem tempo.
  4. Suporte a Múltiplos Projetos: Trabalhe em vários projetos simultaneamente sem conflitos de versão.
  5. Testando Novos Lançamentos: Experimente novos lançamentos do Flutter de forma segura, sem afetar seus projetos de produção estáveis.

Instalação

Vamos começar instalando o FVM em seu sistema. O processo de instalação difere um pouco dependendo do seu sistema operacional:

Para macOS:

Usando Homebrew:

brew tap leoafarias/fvm
brew install fvm

Usando script de instalação:

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

Para Windows:

Usando Chocolatey:

choco install fvm

Ou baixe o pacote autônomo do repositório FVM no GitHub.

Para Linux:

Usando o script de instalação:

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

Ativação Global

Após instalar o FVM, ative-o globalmente:

dart pub global activate fvm

Comandos e Uso Básico do FVM

Agora que você instalou o FVM, vamos explorar os comandos essenciais para gerenciar versões do SDK Flutter.

Instalando Versões do Flutter

Para instalar uma versão específica do Flutter:

fvm install 3.16.0

Você também pode instalar um canal específico:

fvm install stable
fvm install beta
fvm install dev

Para usuários avançados, você pode até instalar um commit específico usando o hash do commit do git:

fvm install fa345b1  # Hash curto
fvm install 476ad8a917e64e345f05e4147e573e2a42b379f9  # Hash longo

Definindo uma Versão do Flutter para Seu Projeto

Para definir uma versão específica do Flutter para seu projeto, navegue até o diretório do seu projeto e execute:

fvm use 3.16.0

Este comando cria uma pasta .fvm em seu projeto e configura um link simbólico para o SDK Flutter especificado.

Para usar a versão mais recente de um canal específico:

fvm use stable

Se você quiser fixar o canal em sua versão atual (evitando atualizações automáticas):

fvm use stable --pin

Listando Versões Instaladas

Para ver todas as versões do Flutter que você instalou via FVM:

fvm list

Alternativamente, você pode usar a forma abreviada:

fvm ls

Visualizando Lançamentos Disponíveis do Flutter

Para visualizar todos os lançamentos disponíveis do SDK Flutter:

fvm releases

Para filtrar lançamentos por canal:

fvm releases --channel beta

Removendo uma Versão do Flutter

Quando você não precisar mais de uma versão específica do Flutter:

fvm remove 3.16.0

Definindo uma Versão Global do Flutter

Para definir uma versão global do Flutter a ser usada em todo o seu sistema:

fvm global 3.16.0

Para desvincular a versão global:

fvm global --unlink

Configuração do Projeto

Depois de configurar o FVM para seu projeto, você precisará configurar seu ambiente de desenvolvimento para usar o SDK Flutter gerenciado pelo FVM.

Atualizando o .gitignore

O FVM cria um link simbólico em .fvm/flutter_sdk que aponta para o cache da versão do Flutter selecionada. Adicione isso ao seu .gitignore:

.fvm/flutter_sdk

Configurações do IDE

VS Code

Crie ou atualize .vscode/settings.json em seu projeto com o seguinte:

{
  "dart.flutterSdkPath": ".fvm/flutter_sdk",
  // Remover arquivos .fvm da busca
  "search.exclude": {
    "**/.fvm": true
  },
  // Remover da vigilância de arquivos
  "files.watcherExclude": {
    "**/.fvm": true
  }
}

Android Studio

  1. Vá para Languages & Frameworks > Flutter
  2. Altere o caminho do SDK do Flutter para o caminho absoluto do seu link simbólico do FVM (por exemplo, /caminho-absoluto-do-projeto/.fvm/flutter_sdk)
  3. Aplique as alterações e reinicie o Android Studio

Para ignorar o diretório raiz do SDK do Flutter dentro do Android Studio, adicione isto ao .idea/workspace.xml:

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

XCode

Se você estiver trabalhando em iOS, abra o Xcode, vá para Build phases e adicione isso em Run script:

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

Recursos Avançados do FVM

Flavors de Projeto

O FVM suporta flavors de projeto, permitindo que diferentes partes de sua aplicação usem diferentes versões do SDK Flutter:

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

Para alternar entre flavors:

fvm use production
fvm use development

Para executar um comando Flutter com um flavor específico:

fvm flavor production flutter build

Executando Comandos Flutter com Versões Específicas

O comando spawn permite executar comandos Flutter com uma versão específica do SDK:

fvm spawn 3.16.0 flutter build
fvm spawn 3.10.0 flutter test

Executando Comandos com a Versão do Flutter do Projeto

O comando exec executa comandos ou scripts usando a versão do Flutter configurada do projeto:

fvm exec melos bootstrap
fvm exec caminho/para/script.sh

Trabalhando com o FVM em Ambientes CI/CD

Para integração contínua, adicione estas etapas ao seu fluxo de trabalho:

  1. Instale o FVM
  2. Execute fvm install
  3. Use fvm flutter <comando> para executar comandos Flutter

Exemplo para GitHub Actions:

steps:
  - uses: actions/checkout@v3
  - name: Instalar FVM
    run: |
      dart pub global activate fvm
      fvm install
  - name: Construir e Testar
    run: |
      fvm flutter pub get
      fvm flutter test

Melhores Práticas para Usar o FVM

  1. Sempre use o FVM para comandos Flutter - Execute comandos Flutter através do FVM (por exemplo, fvm flutter pub get) para garantir consistência.
  2. Inclua a versão do FVM na documentação do projeto - Documente a versão do Flutter necessária em seu README para ajudar novos membros da equipe.
  3. Bloqueie a versão do Flutter em CI/CD - Garanta que seu pipeline de integração contínua use a mesma versão do Flutter que seu ambiente de desenvolvimento.
  4. Considere usar --pin para estabilidade - Ao usar um canal como 'estável', considere fixá-lo para evitar atualizações automáticas.
  5. Limpeza regular do cache - Remova periodicamente versões do Flutter não utilizadas com fvm remove para economizar espaço em disco.

Resolvendo Problemas Comuns

Versão do FVM Não Reconhecida

Se seu IDE não estiver reconhecendo a versão do Flutter definida pelo FVM:

  1. Certifique-se de que o caminho do SDK Flutter está corretamente definido nas configurações do seu IDE
  2. Reinicie seu IDE após alterações na configuração
  3. Verifique se o link simbólico foi criado corretamente com ls -la .fvm/flutter_sdk

Problemas de Permissão

Se você encontrar erros de permissão:

  1. Em sistemas baseados em Unix, tente sudo fvm <comando>
  2. Verifique as permissões da pasta do diretório de cache do FVM

Problemas de Caminho

Se os comandos Flutter não forem encontrados após usar o FVM:

  1. Certifique-se de que o caminho do SDK Flutter está no seu PATH do sistema
  2. Use caminhos absolutos para o SDK Flutter em seus scripts

Conclusão

A Gestão de Versões do Flutter (FVM) é uma ferramenta indispensável para o desenvolvimento moderno com Flutter. Ao permitir o controle preciso sobre as versões do SDK Flutter em diferentes projetos, elimina problemas de compatibilidade e garante consistência entre as equipes de desenvolvimento.

Começando pelos fundamentos da instalação e progredindo para recursos avançados como flavors de projeto, este guia cobriu os aspectos essenciais para usar o FVM de forma eficaz. Ao incorporar o FVM ao seu fluxo de trabalho de desenvolvimento Flutter, você pode aumentar a produtividade, manter a estabilidade do projeto e colaborar sem problemas com os membros da equipe.

Lembre-se sempre de executar os comandos Flutter através do FVM para garantir a consistência das versões e evitar comportamentos inesperados. Com o uso adequado do FVM, você pode trabalhar com confiança em vários projetos Flutter com diferentes requisitos de SDK e experimentar facilmente novas versões do Flutter sem afetar seu código de produção.

Feliz programação Flutter com o FVM!