Dependências Flutter e formas de hospedagem

Qual a diferença entre Dart e Plugin Packages?

Mariaelena Nascimento
May 11 · 3 min read
Imagem: flutter.dev

Estava lá uma desenvolvedora iOS passeando por algo híbrido quando de repente esbarrou em Flutter e se deparou com a necessidade do uso de dependências. Nem é meme, e a desenvolvedora sou eu. #EuFuiEuTava.

Se você, assim como eu, já começou a brincar com o Flutter, já deve ter constatado que com o uso da ferramenta muitas vezes é preciso importar bibliotecas externas. Essas bibliotecas, que também chamamos de dependências, são pacotes que contêm códigos que já executam algumas tarefas que você precisa, expondo para uso apenas a chamada da função e o resultado.

Neste post, vamos entender um pouquinho mais sobre como funcionam essas dependências e como implementá-las. Vamos lá?

Dart e Plugin package

Para criar sua própria biblioteca no Flutter, é importante saber que existem dois tipos de dependências: o Dart package e o Plugin package.

O Dart Package é implementado completamente em dart, que é a linguagem de programação usada no Flutter. Para desenvolver um Plugin, porém, além do dart, é também preciso usar a linguagem nativa de cada plataforma.

Explicando melhor: o Plugin Package é uma solução para acessar alguns recursos nativos, como câmera e sensores dos aparelhos de cada plataforma, por exemplo. Por isso, temos que implementar os códigos de cada plataforma separadamente, em uma das linguagens nativas, seja Kotlin, Java, Swift ou Objective-C. Entretanto, a parte de API do Plugin Package ainda permanece em Dart. Lembrando que os dois packages servem para o mesmo objetivo, e você pode utilizar o que for melhor pra você.

Deu pra entender? Vamos, então, à mão na massa!

Criação de um package

O comando de criação de um package é semelhante ao de uma aplicação em Flutter. No terminal, digitando o comando abaixo, você vai obter informações de criação no Flutter.

$ flutter create --help

Com ele, é possível ver o bloco de opções para criação de um template:

$ -t, --template=<type>

O tipo de template que você vai usar está relacionado ao tipo de projeto, ou seja, pode ser um app, module, package ou plugin. Para iniciar os projetos Dart e Plugin, é só usar os seguintes comandos:

$ flutter create --template=package package_name

$ flutter create --template=plugin --platforms=iOS,android -i swift a- kotlin plugin_name

Formas de hospedagem

Depois de construir uma dependência, você pode hospedá-la de quatro formas diferentes. Pode ser no SDK Flutter, em um host específico, no repositório do git ou localmente em um diretório. E para que a hospedagem funcione você precisa sinalizar o caminho da dependência no pubspec.yaml.

Abaixo tem um passo a passo rapidinho para cada uma das opções:

GIT
Plugin no repositório privado, usando ssh:

Utilizando branch específica:

Especificando o caminho:

Hosted packages:
Hospedados no pub.dev:

Hospedados em outro servidor:

Localmente
Mostrando o caminho:

Como falado no início, no Flutter é bem frequente a utilização de pacotes externos, e dependendo do seu projeto você pode se deparar com a necessidade de criar seus próprios módulos de pacotes. Agora você já sabe que alguns recursos só serão acessados de maneira nativa e, para isto, o Plugin Package é a solução. Caso não tenha essa restrição pode seguir com o Dart Package que inclusive, dependendo de seu contato com a linguagem, se torna mais simples já que se mantém no padrão do Flutter.

Com seu pacote prontinho, já sabe que existem algumas formas de hospedar podendo compartilhar publicamente ou mantê-lo privado. E é isso! Espero que tenha ajudado com entendimento sobre dependências para facilitar o seu trabalho com o Flutter.

Ficou alguma dúvida ou tem alguma sugestão? Aproveite os campos de comentários! E se você quiser trabalhar com um grande time de devs iOS que estão aprendendo junto o tempo todo, é só dar uma olhada aqui e se candidatar a uma de nossas vagas. Vamos aprender juntos e até a próxima!

Concrete

Nós desenvolvemos produtos digitais com inovação, agilidade…

Concrete

Nós desenvolvemos produtos digitais com inovação, agilidade e excelentes práticas, para que o mercado brasileiro e latino-americano acompanhe a velocidade do mercado digital mundial.

Mariaelena Nascimento

Written by

Concrete

Nós desenvolvemos produtos digitais com inovação, agilidade e excelentes práticas, para que o mercado brasileiro e latino-americano acompanhe a velocidade do mercado digital mundial.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store