Durante o desenvolvimento de software é comum nos depararmos com certos problemas comuns, como, por exemplo, realizar a validação de um CPF, realizar requisições HTTP, conectar em um banco de dados, entre outras situações. Porém, não seria muito produtivo termos que implementar essas funcionalidades manualmente sempre que forem necessários, por isso, nas maioria das linguagens temos a possibilidade de usarmos pacotes feitos pela própria comunidade que resolvem esses problemas e para facilitar ainda mais no processo de gerenciamento desses pacotes, nós podemos utilizar ferramentas comumente chamadas de gerenciadores de pacotes.
Gerenciadores de pacotes são ferramentas que automatizam o processo de instalação, atualização e remoção de pacotes necessários para o pleno funcionamento de um software.
Neste artigo, vamos conhecer o gerenciador de pacotes pub, o gerenciador de pacotes para projetos dos ecossistemas Dart e Flutter.
O que é o pub
O pub é o gerenciador de pacotes utilizado para a linguagem de programação Dart, contendo bibliotecas e pacotes reutilizáveis para Flutter, AngularDart e programas Dart gerais.
É importante ressaltar que os comandos mostrados a seguir funcionam tanto para Dart quando Flutter. Então caso seu projeto seja um projeto Dart puro precisa executar dart ...
caso seja um projeto Flutter precisa executar flutter ...
.
Onde encontrar os pacotes
No site pub.dev é possível encontrar todos os pacotes disponíveis para instalação.
Nele basta pesquisar pelo pacote desejado. No exemplo abaixo, vamos buscar pelo pacote “dio” (pacote para fazer requisições HTTP).
![site2 pub.dev](site2 pub.dev “site2 pub.dev”)
Ao selecionar o pacote desejado, será exibido uma página com toda a descrição do pacote (formas de instalação, documentação, versão, plataformas suportadas, etc.).
Como usar o gerenciador de pacotes Dart e Flutter
Para usar o gerenciador de pacotes Dart e Flutter, é muito simples. Primeiro temos que definir qual tipo de projeto vamos criar, seja Dart ou Futter.
Caso vier utilizar uma aplicação Dart você pode executar dart create [nome_do_projeto]
ou no Flutter flutter create [nome_do_projeto]
.
A estrutura de arquivos ficou da seguinte forma em uma aplicação Dart:
Note que ele criou um arquivo chamado pubspec.yaml
. Este arquivo é onde vai ficar definido as versões dos pacotes que estão sendo utilizadas no projeto.
Curso Dart - Fundamentos
Conhecer o cursoO que é Arquivo pubspec.yaml
Ao instalar pacotes em nossas aplicações, eles devem ficar listados de alguma forma para que outros desenvolvedores consigam efetuar novas instalações e/ou possam fazer novas alterações/atualizações. Para isso existe o arquivo pubspec.yaml
Nele também estão contidas informações como a versão Dart, nome, descrição, versão do projeto, etc.
É importante ressaltar que arquivos, como o pubspec, tem a extensão .yaml
ele é um tipo de arquivo que considera a sua indentação.
Arquivos com a extensão yaml
é um tipo de arquivo de serialização de dados legíveis por humanos, inspirado em linguagens como XML e Python.
Caso queira saber mais sobre YAML, falamos neste artigo: O que é YAML?
Instalando pacotes
Agora, para instalar um pacote no seu projeto utilizando o gerenciador de pacotes Dart e Flutter, basta executar o seguinte comando no terminal: dart pub add [nome do pacote]
ou flutter pub add [nome do pacote]
.
Por exemplo, para realizar a instalação do pacote dio (pacote para fazer requisições HTTP), basta executar o comando dart pub add dio
.
Como resultado, o pub criou dentro da pasta .dart_tool
no arquivo package_config.json
um apontamento onde temos uma pasta relacionada ao pacote dio.
Também irá criar no arquivo pubspec.yaml
na parte de dependências o nome do pacote junto a versão.
Note que o pacote foi instalado nas dependências de produção. Também existe a opção de instalar nas dependências de desenvolvimento utilizando a flag --dev
como, por exemplo: dart pub add lints --dev
.
Como utilizar um pacote
Para utilizar o pacote em nosso projeto, é necessário importar o pacote no arquivo .dart
onde vamos trabalhar com o mesmo, adicionando uma linha de código seguindo a seguinte estrutura:
import 'package:dio/dio.dart';
void main(List<String> arguments) {
final dio = Dio();
}
Ou caso queira jogar tudo que tem dentro de um pacote em uma variável para evitar conflito de algo ter o mesmo nome.
import 'package:dio/dio.dart' as packageDio;
void main(List<String> arguments) {
final dio = packageDio.Dio();
}
Desta forma a aplicação estará apta a utilizar o pacote externo instalado com o pub
.
Curso Flutter - Fundamentos
Conhecer o cursoAtualizando um pacote
Após adicionar um pacote, o Dart salva a versão encontrada no arquivo pubspec.lock
. Isso garante que você obtenha a mesma versão novamente ou outro desenvolvedor em sua equipe ao executar o pub get
(comando para baixar as dependências segundo o que está no pubspec.yaml
).
Para atualizar um pacote com o gerenciador de pacotes Dart e Flutter basta utilizar o seguinte comando:
dart pub upgrade
O comando a cima irá atualizar todas as dependências.
É importante saber que existe possibilidade de adicionar flag e o nome de uma dependência específica seguindo o exemplo abaixo.
dart pub upgrade [options] [nome pacote]
Exemplo:
dart pub upgrade --major-versions dio
Remover pacotes
Da mesma forma que temos como adicionar podemos, também, remover um pacote, basta utilizar o seguinte comando:
dart pub remove [nome do pacote]
Com o comando acima, o pacote será removido do projeto.
Conclusão
Por fim, o pub
conta com um vasto repositório de pacotes, frameworks e bibliotecas Dart e Flutter, permitindo a instalação e gerenciamento de pacotes internos e externos.
Neste artigo tivemos a introdução ao gerenciador de pacotes pub, caso queira aprender mais sobre os ecossistemas Dart e Flutter, saiba que aqui na TreinaWeb nós temos a formação Desenvolvedor Dart Flutter que possui 37h44 de vídeo e um total de 152 exercícios.
Veja quais são os cursos que fazem parte desta formação:
- Dart - Fundamentos
- Dart - Orientação a Objetos
- Dart - Gerenciador de dependências Pub
- Flutter - Fundamentos
- Flutter - Widgets de Layout
- Flutter - Widgets de interface
- Dart - Tópicos Avançados
- Flutter - Trabalhando com temas
- HTTP - Fundamentos para desenvolvedores
- APIs Rest - Fundamentos
- Flutter - Consumindo APIs Rest
- Flutter - Consumindo APIs com http
- Flutter - Consumindo APIs com dio
- Flutter - Conhecendo o GetX
- Flutter - Criando um Speed Dial
- Flutter UI - Cardápio de Restaurantes
- Flutter - Gerenciador de senhas
- Flutter - Gerenciador de gastos pessoais