Top 12 Useful Flutter Packages that can make developers’ Life Easy

aditya nandedkar
6 min readJun 11, 2020

Flutter was so quick to attract the developer community that, at the double, it has become one of the most sought-after open-source UI framework out there. Be it Android or iOS, Windows or Linux, Google Fuchsia or any other web application, with Flutter you could build beautiful native apps in a record time.

The best of part of Flutter is that it supports shared packages contributed by other developers to be used in the Flutter and Dart ecosystems. This ingenuity helps developers to quickly build an app without the need of developing things from scratch.

Packages, just like libraries, help reduce development time. And here is a list of some of the most important and widely used Flutter packages in 2020 to make a developer’s life easy. Obviously, it is not a complete and definitive list, as Flutter is expeditiously expanding, but these are certainly useful packages that every Flutter enthusiast should take a look at.

1.url_launcher

As the name implies, this Flutter package is used to launch URLs in mobile apps. It supports both Android & iOS platforms and it becomes brilliantly handy and useful when you want the OS to handle the URL for you. The URL Launcher package supports multiple URL schemes like HTTP, mailto, SMS etc.

Get started with this package here: https://pub.dev/packages/url_launcher

2.fl_chart

If drawing fantastic charts is what you are looking for, this the package. The fl-chart is an amazing package to create pie charts, line charts, bar charts, scattered charts and more. It also provides flexible settings to customize the look & feel of the charts. If you are building an app that banks on rich data representation, filtering and analytics, this package could be your life-saver.

Get started with this package here: https://pub.dev/packages/fl_chart

3. package_info

This plugin is used when you need to fetch application version and other related information. It is a handy tool when you need to check version info, especially during the runtime. It works on both Android and iOS.

Get started with this package here: https://pub.dev/packages/package_info

4.Dio

Dio is a powerful HTTP client for Dart that supports interceptors, FormData, request cancellation, global configuration, timeout, file download etc. This package is useful when you want to make requests in a simplified way. It is a handy plugin and very simple to use.

Get started with this package here: https://pub.dev/packages/dio

5. path_provider

The path_provider package helps developers to easily and quickly getting commonly used location on Android and iOS file systems (such as temp and app data directories). using this package you can fetch the database path when using SQFlite library. It supports both internal and external storage and makes it easy to get directories like documents, privates etc.

Get started with this package here: https://pub.dev/packages/path_provider

6. local_auth

This package is designed to help implement local and biometric authentication on the user’s device, such as fingerprint APIs for Android and Touch ID APIs for iOS. It supports two types of biometric authentication:

This plugin is also useful in securing the app and its data and it works fine with both Android and iOS.

  • Face biometric authentication
  • Fingerprint biometric authentication

Example: To get a list of enrolled biometrics.

Get started with this package here: https://pub.dev/packages/local_auth

7. intro_slider

Now, create engaging, cool animated introductions to your apps quickly and easily. This package lets you pick and choose from a variety of patterns and animations. It also has an extensive list of parameters where you can easily customize the look and feel of intros, just the way you want.

Get started with this package here: https://pub.dev/packages/intro_slider

8. RxDart

The RxDart package does not provide its own Observable class as a replacement for Dart Streams. Instead, it provides a number of additional Operators (extension methods on the Stream class), Stream classes, and Subjects.

9. cached_network_image

This Flutter package is used to show images from the internet and keep them in the cache directory. It uses SQFlite for cache management and it can also be used with placeholders and error widgets. The cached_network_image can be either used directly or through the ImageProvider.

Example:

With a placeholder:

With a progress indicator:

Get started with this package here: https://pub.dev/packages/cached_network_image

10. bottom_navy_bar

The bottom navy bar package lets you build lively animated bottom bars for your application. Though the navigation uses the current theme of the app, you can customize it accordingly.

Get started with this package here: https://pub.dev/packages/bottom_navy_bar

11. SQFlite

As Flutter does not have a built-in abstraction for accessing the SQLite Database, the team has come up with a way to facilitate this action. With the SQFlite plugin, you can now access the SQLite database on both Android & iOS. It is a well-maintained package, and is even recommended by the Flutter team.

12. Slidy

Slidy is a CLI package manager and template generator for Flutter. It is used to generate modules, widgets, BloCs, pages, controllers and tests. The main objective of Slidy is to help developers structure their projects in a standardized way. Slidy also helps in installing the dependencies and packages, updating and removing them — and the best part is that you can do all this by running a single command.

Sample folder structure generated by Slidy:

Bonus

13. bloc_pattern

The BLoC (Business Logic Components) pattern package helps in implementing the BloC Pattern (by dependency injection) to your project. In BLoC everything in the application must be represented as an event stream. So, when widgets send events, other widgets will respond to it, and BLoC sitting in the middle, manages this conversation.

Thanks for reading this article.

Show some love ❤️ if you find it useful !!

Thank You ! Keep Coding !

--

--

aditya nandedkar

A passionate Flutter developer learning new things daily !