15 Bibliotecas úteis para produtividade no desenvolvimento com Flutter [Atualizado 2021]

Lucas Alves
6 min readOct 14, 2021

O Flutter é um framework de código aberto criado pelo Google que utiliza a linguagem Dart para o desenvolvimento de aplicações para Android, iOS, Desktop ou Web, além de ser o principal método de criação de aplicativos para o Google Fuchsia.

Sim, o desenvolvedor irá “possuir o poder” para utilizar a base de código em plataformas mobile, desktop ou web. Não é fantástico?

Neste artigo, iremos abordar de forma breve e concisa, 15 bibliotecas que podem ser amplamente utilizada nas aplicações em 2021. Afirmo que nesse artigo serão listados as bibliotecas que recomendo e que em algum momento utilizei nos projetos durante o processo de desenvolvimento.

Antes de iniciarmos, deixo um outro artigo que criado por mim em 2019 que também vale a pena conferir: 12 Bibliotecas úteis para auxiliar no desenvolvimento utilizando Flutter

Levaremos em conta nas recomendações fatores como: a relevância pelo score, votos da comunidade e se estão sendo frequentemente atualizadas pelos criadores e pela comunidade, pra não incluir neste artigo bibliotecas descontinuadas. 😉

Mencionarei o link para cada uma das bibliotecas, porém ao clicar no link na seção Scores você pode ter mais informações detalhadas sobre cada uma delas, como por exemplo índices de: quantidade de likes, pontuacão do site pub.dev (onde são hospedadas oficialmente) e índice de popularidade em porcentagem.

Outras informações úteis também são fornecidas como: se o package segue as convenções do Dart, se possui documentação, suporta múltiplas plataformas e outras informações úteis.

As bibliotecas que serão mencionadas abaixo não estão organizadas por ranking.

  1. cupertino_icons

Este é um repositório com assets que contém o conjunto padrão de ativos de ícone usados ​​pelos widgets Cupertino do Flutter, normalmente utilizados na plataforma iOS.

Exemplos de ícones do Cupertino.

A documentação e os ícones disponibilizados pelo cupertino_icons pode ser encontrada clicando aqui.

2. flutter_bloc

flutter_bloc image

BLoC é a sigla para Business Logic Object Components, um padrão muito utilizado no Flutter. O BLoC nada mais é do que a separação das regras de negócio da sua interface, algo recomendado em diversas tecnologias atualmente.

O conceito utilizado pelo criador da biblioteca é: os flutter_blocs são widgets que facilitam a integração de blocs e cubits no Flutter. Construído para funcionar com package:bloc.

Como o conceito pode não parecer muito simples para quem nunca utilizou (mas acredite, é muito bom de utilizar em diversos casos), acesse a documentação do flutter_bloc clicando aqui.

3. animations

Animações pré-construídas de alta qualidade para Flutter.

Essa biblioteca contém animações predefinidas para efeitos comumente desejados. As animações podem ser personalizadas com seu conteúdo e colocadas em seu aplicativo para encantar seus usuários.

Exemplo de algumas animações possíveis com o animations

O link para acesso a documentação encontra-se clicando aqui.

4. flutter_local_notifications

Um plugin cross-platform para exibir notificações locais no dispositivo do usuário. Atualmente suporta Android (4.1+), iOS (8.0+), macOS (10.11+) e Linux.

Exemplo de local notification no dispositivo macOS.

Consulte os exemplos de implementação, por meio deste link.

5. flutter_slidable

Uma implementação Flutter de item de lista deslizante com ações direcionais de slide que podem ser dispensadas.

Exemplo do Stretch Motion com flutter_slidable.

Atualmente o flutter_slidable possui 4 diferentes motions: Behind Motion, Drawer Motion, Scroll Motion e Stretch Motion (exemplo acima).

Sua implementacão pode ser consultada aqui.

6. flutter_native_splash

Quando seu aplicativo é aberto, ocorre um breve período enquanto o aplicativo nativo carrega o Flutter. Por padrão, durante esse tempo, o aplicativo nativo exibe uma tela de abertura branca.

Este pacote gera automaticamente iOS, Android e código nativo da Web para personalizar a cor de fundo da tela inicial nativa e a imagem inicial. Suporta modo escuro, tela inteira e opções específicas da plataforma.

Exemplo de uma Splash Screen.
Exemplo do uso do flutter_native_splash.

Consulte detalhes de como implementar, clicando no link da documentacão do flutter_native_splash.

7. google_maps_flutter

Um plugin Flutter que fornece um widget para auxiliar a implementar o Google Maps em sua aplicação.

Exemplo de uma aplicação com o Google Maps em um dispositivo iOS.
Exemplo de uma aplicação com o Google Maps em um dispositivo iOS.

A documentação e os primeiros passos para gerar o API key para sua aplicação pode ser consultada clicando aqui.

8. permission_handler

Na maioria dos sistemas operacionais, as permissões não são concedidas apenas aos aplicativos no momento da instalação. Em vez disso, os desenvolvedores precisam pedir ao usuário permissões enquanto o aplicativo está em execução.

Este plugin fornece uma API de plataforma cruzada (iOS, Android) para solicitar permissões e verificar seu status. Você também pode abrir as configurações do aplicativo do dispositivo para que os usuários possam conceder uma permissão. No Android, você pode mostrar uma justificativa para solicitar uma permissão.

Exemplo de solicitação de permissão ao usuário.
Exemplo de solicitação de permissão ao usuário.

Consulte a documentação clicando aqui.

9. connectivity_plus

Este plug-in permite que aplicativos Flutter descubram a conectividade de rede e se configurem de acordo. Ele pode distinguir entre conexão de celular e WiFi.

Atualmente, o package é mantido pela comunidade oficial do Flutter. E possui suporte para todas as plataformas mobile e web. A documentação pode ser consultada aqui.

10. webview_flutter

Um plug-in Flutter que fornece um widget WebView.

O WebView é uma ferramenta que permite a exibição de conteúdos web dentro de aplicativos. Esse é um recurso personalizado que entrega da melhor forma possível o conteúdo de uma página ou serviço no Android, sem alterar a experiência de navegação.

Exemplo de um webview em um dispositivo Android.
Exemplo de um webview em um dispositivo Android.

A documentação pode ser consultada aqui.

11. file_picker

Uma biblioteca que permite que você use o explorador de arquivos nativos do dispositivo para escolher um ou vários arquivos, com suporte para filtragem de extensões.

Exemplo do file_picker em um dispositivo Android.
Exemplo do file_picker em um dispositivo Android.

Instruções de uso e de implementacão da biblioteca podem ser encontradas clicando aqui.

12. pull_to_refresh

Um widget fornecido para a atualização suspensa do componente de drop-down, atualiza puxando de cima para baixo no device e executa o carregamento. Atualmente suporta Android e iOS.

Exemplo do pull_to_refresh em um dispositivo Android.
Exemplo do pull_to_refresh em um dispositivo Android.

A documentação pode ser consultada aqui.

13. just_audio

A biblioteca just_audio é um reprodutor de áudio rico em recursos para Android, iOS, macOS e web.

Suporta uma infinidade de recursos como por exemplo:

Imagem com exemplo dos recursos do just_audio.
Imagem com exemplo dos recursos do just_audio.

Consulte as instruções de implementação clicando aqui.

14. sign_in_with_apple

Uma bibliteca que fornece os recursos necessários para fazer login com a Apple. Suporta atualmente iOS, Android e macOS.

Oferece suporte ao login por meio de um ID Apple, bem como à recuperação de credenciais salvas nas chaves do usuário.

Exemplo de uso da biblioteca sign_in_with_apple.
Exemplo de login utilizando as credenciais Apple.

Consulte a documentação clicando aqui.

15. firebase_crashlytics

Um plug-in Flutter para usar a API Firebase Crashlytics.

O Firebase Crashlytics, uma ferramenta de relatório de erros em tempo real, ajuda você a priorizar e corrigir as falhas mais comuns com base no impacto sobre os usuários reais. O Crashlytics também se integra facilmente aos seus aplicativos Android, iOS, macOS, tvOS e watchOS.

Vídeo de Introdução ao Firebase Crashlytics.

Para saber mais sobre o Crashlytics, visite o site do Firebase.

A força agora está com o desenvolvedor que aprendeu vários packages interessantes. 😄

Finalizamos! Mas não menos importante…

Se as dicas foram interessantes, deixe seu comentário e não esqueça de deixar seu aplauso aqui no Medium, você pode dar de 1 a 50 aplausos, e também me incentive a criar mais conteúdos relacionados a desenvolvimento de software.

Conecte-se também comigo no LinkedIn, clicando aqui. E vamos nos conectar também no GitHub:

--

--

Lucas Alves

A mobile developer passionate about learning and sharing knowledge.