Fala aí turma! Vocês já devem estar habituados a uma coisa bem comum no ambiente de desenvolvimento, principalmente quando o assunto é front-end, que é a utilização de pacotes, bibliotecas, frameworks e afins.. Hoje vou passar para vocês minha jornada na publicação de um pacote para o Flutter dentro do pub.dev, a biblioteca de pacotes oficial do Flutter, equivalente ao npm para o JavaScript.
O pacote que irei publicar é um código que desenvolvi a um tempo atrás, por não existir um pacote já pronto, que sua função é transformar um número em texto, então só cobrirei a publicação em si. Exemplo da aplicação:
number_transcriber().transcribe(27420); // => “Vinte e sete mil, quatrocentos e vinte”
O primeiro passo para criarmos nosso pacote é a criação do projeto local, para isso o flutter nos disponibiliza alguns templates. Rodando o comando flutter create -h temos a lista completa desses templates:

templates:
Como padrão o Flutter utiliza o App mas para esse caso utilizaremos o Package, então nosso comando para criação do projeto será:
flutter create –template=package number_transcriber
Criando esse novo projeto notamos uma grande semelhança com projetos comuns (App) do Flutter..:

Tanto na sua estrutura quanto no pubspec.yalm:

Package

App
Mas bora botar a mão na massa e ir direto para o pacote em si. Quando iniciado o projeto, o arquivo principal é criado com o nome dado ao pacote e dentro dele uma simples função de adição dentro de uma classe é criada, como exemplo:

No meu caso o pacote também irá se comportar como uma função, então a sua implementação foi bem simples, alterei o nome da classe para ficar de acordo com o pacote, importei o pacote necessário, joguei a função dentro da classe e alterei os comentários de documentação:

Com isso feito, o funcionamento do nosso pacote está pronto! Mas existem alguns detalhes que ainda precisamos cobrir antes da sua publicação, começando pelo projeto interno de exemplo. É necessário que nosso pacote tenha um projeto de exemplo dentro dele para ser publicado no pub.dev e, sua ideia é ser a utilização mais direta possível do pacote.
Vamos começar criando um projeto com o comando de criação simples:
flutter create example
Dentro do pubspec do nosso exemplo podemos referenciar ao nosso pacote da seguinte forma:

Assim criei um exemplo bem simples para o projeto:

Com isso pronto a próxima etapa é adicionar as informações necessárias dentro do pubspec. As minhas ficaram da seguinte forma:

Notem que para a homepage eu criei um repositório do github, sendo o mais comum dentro dos pacotes do Flutter. Não entrarei em detalhes de como criar um repositório aqui, já que isso se encontra aos montes na internet. Notem também que o campo author foi removido, isso porque atualmente ele não é mais utilizado na publicação de pacotes.
Agora estamos na reta final do nosso pacote! O próximo passo é rodar o seguinte comando:
flutter pub publish –dry-run
Esse comando nos retorna se o pacote está pronto para ser publicado no pub.dev sem erros, no nosso caso ele retornou que não temos erros.
Agora para publicarmos de fato o nosso pacote vamos rodar o seguinte comando:
flutter pub publish
Com esse comando vamos receber o seguinte retorno:

Acessando o link você é direcionado para uma área de login do google onde daremos acesso a nossa conta e após a autorização nosso pacote é publicado!

Após alguns minutos o seu pacote vai aparecer no pub.dev, você pode acessar ele em My Pub.dev > My Packages:


