15 Useful Libraries for Flutter Development Productivity [Updated 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.
- 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..
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.
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.
See implementation examples via this link.
5. flutter_slidable
A Flutter implementation of slidable list item with directional slide actions that can be dismissed.
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.
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.
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.
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.
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.
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.
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:
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.
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.
To learn more about Crashlytics, visit the Firebase website.
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