15 Useful Libraries for Flutter Development Productivity [Updated 2021]

Lucas Alves
Flutter Community
Published in
6 min readOct 27, 2021

Flutter is an open source framework created by Google that uses the Dart language for the development of applications for Android, iOS, Desktop or Web, besides being the main method of creating applications for Google Fuchsia.

Yes, the developer will “own the power” to use the code base on mobile, desktop or web platforms. Isn’t that great?

In this article, we will briefly and concisely address 15 libraries that can be widely used in applications in 2021. I say that this article will list the libraries that I recommend and that at some point I used in projects during the development process.

We will take into account in the recommendations factors such as: relevance by the score, community votes and if they are being frequently updated by the creators and by the community, not to include in this article discontinued libraries. 😉

I will mention the link for each of the libraries, but by clicking on the link in the Scores section you can have more detailed information about each of them, such as indices of: number of likes, pub.dev website score (where they are officially hosted) and percentage popularity index.

Other useful information is also provided such as: whether the package follows Dart conventions, whether it has documentation, supports multiple platforms, and other useful information.

The libraries that will be mentioned below are not organized by ranking.

  1. cupertino_icons

This is an asset repo containing the default set of icon assets used by Flutter’s Cupertino widgets commonly used on the iOS platform..

Examples of Cupertino icons.
Examples of Cupertino icons.

The documentation and icons provided by cupertino_icons can be found by clicking here.

2. flutter_bloc

BLoC is the acronym for Business Logic Object Components, a widely used pattern in Flutter. BLoC is nothing more than the separation of business rules from its interface, something recommended in many technologies today.

The concept used by the creator of the library is: flutter_blocs are widgets that facilitate the integration of blocs and cubits in Flutter. Built to work with package:bloc.

As the concept may not seem very simple for those who have never used it (but believe me, it is very good to use in many cases), access the flutter_bloc documentation by clicking here.

3. animations

High quality pre-built animations for Flutter.

This package contains pre-canned animations for commonly-desired effects. The animations can be customized with your content and dropped into your application to delight your users.

Example of some possible animations with animations.
Example of some possible animations with animations.

The link to access the documentation can be found by clicking here.

4. flutter_local_notifications

A cross-platform plugin to display local notifications on the user’s device. It currently supports Android (4.1+), iOS (8.0+), macOS (10.11+) and Linux.

Example of local notification on macOS device.
Example of local notification on macOS device.

See implementation examples via this link.

5. flutter_slidable

A Flutter implementation of slidable list item with directional slide actions that can be dismissed.

Stretch Motion example with flutter_slidable.
Stretch Motion example with flutter_slidable.

Currently flutter_slidable has 4 different motions: Behind Motion, Drawer Motion, Scroll Motion and Stretch Motion (example above).

Its implementation can be found here.

6. flutter_native_splash

When your app opens, there is a brief period while the native app loads Flutter. By default, during this time, the native app displays a white splash screen.

This package automatically generates iOS, Android, and native web code to customize the native home screen background color and splash image. It supports dark mode, full screen and platform specific options.

Example of using flutter_native_splash.
Example of using flutter_native_splash.

See details on how to implement it by clicking on the flutter_native_splash documentation link.

7. google_maps_flutter

A Flutter plugin that provides a widget to help you implement Google Maps in your application.

Example of an application with Google Maps on an iOS device.
Example of an application with Google Maps on an iOS device.

The documentation and the first steps to generate the API key for your application can be consulted by clicking here.

8. permission_handler

On most operating systems, permissions are not only granted to applications at installation time. Instead, developers need to ask the user for permissions while the app is running.

This plugin provides a cross-platform API (iOS, Android) to request permissions and check their status. You can also open the device app settings so that users can grant a permission. On Android, you can show a justification for requesting permission.

Example of user permission request.
Example of user permission request.

Consult the documentation by clicking here.

9. connectivity_plus

This plug-in allows Flutter applications to discover network connectivity and configure themselves accordingly. It can distinguish between cellular and WiFi connection.

Currently, the package is maintained by the official Flutter community. And it has support for all mobile and web platforms. Documentation can be found here.

10. webview_flutter

A Flutter plugin that provides a WebView widget.

WebView is a tool that allows the display of web content within applications. This is a custom feature that best delivers the content of a page or service on Android without changing the browsing experience.

Example of a webview on an Android device.

Documentation can be found here.

11. file_picker

A library that allows you to use the device’s native file explorer to choose one or multiple files, with support for filtering extensions.

File_picker example on an Android device.
File_picker example on an Android device.

Instructions for use and implementation of the library can be found by clicking here.

12. pull_to_refresh

A widget provided for drop-down component, updates by pulling from the top down on the device and performs the loading. Currently supports Android and iOS.

Example of pull_to_refresh on an Android device.
Example of pull_to_refresh on an Android device.

Documentation can be found here.

13. just_audio

The just_audio library is a feature-rich audio player for Android, iOS, macOS and the web.

It supports a multitude of features such as:

Image with example of just_audio resources.
Image with example of just_audio resources.

See implementation instructions by clicking here.

14. sign_in_with_apple

A library that provides the features you need to log in with Apple. Currently supports iOS, Android and macOS.

It supports logging in via an Apple ID as well as retrieving credentials saved in user keys.

Example of login using as Apple credentials.
Example of login using as Apple credentials.

Consult the documentation by clicking here.

15. firebase_crashlytics

A Flutter plugin to use a Firebase Crashlytics API.

Firebase Crashlytics, a real-time bug reporting tool, helps prioritize and fix the most common crashes based on their impact on real users. Crashlytics also easily integrates with your Android, iOS, macOS, tvOS and watchOS apps.

Introduction to Firebase Crashlytics Video.

To learn more about Crashlytics, visit the Firebase website.

The force now lies with the developer who learned several interesting packages. 😄

Finished! But not least…

If the tips were interesting, leave your comment and don’t forget to give your applause here on Medium, you can give from 1 to 50 applause, and also encourage me to create more content related to software development.

Also connect with me on LinkedIn by clicking here. And let’s also connect on GitHub:

Follow Flutter Community on Twitter: https://twitter.com/FlutterComm

--

--

Lucas Alves
Flutter Community

A mobile developer passionate about learning and sharing knowledge.