Top 10 Package I use in every Flutter Project

Sailesh Shakya
codingmountain
Published in
3 min readAug 19, 2022

hello All 😀

I am Sailesh Shakya and I have been in mobile development for more than 5 years and had experience with Java, Kotlin, React Native, and Flutter. I have been doing Flutter for more than 3 years. There are a few Packages I always use in my project. The top 10 packages I use in every project are:

  1. dio
  2. shared_preferences
  3. flutter_screenutil
  4. flutter bloc
  5. permission_handler
  6. google_fonts
  7. url_launcher
  8. path_provider
  9. Lottie
  10. logger

DIO

Dio is a powerful HTTP client for Dart. It supports interceptors, global configuration, Form Data, request cancellation, file downloading, and timeout, among others. Flutter offers an HTTP package that’s nice for performing basic network tasks but is pretty daunting to use when handling some advanced features. By comparison, Dio provides an intuitive API for performing advanced network tasks with ease.

shared_preferences

It is used for storing data key-value pairs on Android and iOS. Suppose you want to save a small value and do not want to use SQLite for that. Your best option is Shared preference

flutter_screenutil

It is used for making the screen and font size adapt according to the different screen sizes and layouts.

permission_handler

While developing an app we may need different permission like storage, Bluetooth, location, etc. This plugin handles all the hassle of getting the permission cross-platform by giving us a simple API that requests permissions and checks their status.

google_fonts

Normally how we integrate new custom font in our flutter project is by downloading the font locally and adding a path in pubspec in the fonts path and there are a lot of steps to integrate the new custom font. But with this plugin for Flutter allows you easily use any of the thousands of fonts available from fonts.google.com in your Flutter app. It normally fetches the font from the server and loads it in our Flutter app.

path_provider

This package provides a platform-agnostic way to access commonly used locations on the device’s file system. The plugin currently supports access to two file system locations:

Temporary directory (cache) that the system can clear at any time. On iOS, this corresponds to the NSCachesDirectory. On Android, this is the value that getCacheDir() returns.

Documents directory for the app to store files that only it can access. The system clears the directory only when the app is deleted. On iOS, this corresponds to the NSDocumentDirectory. On Android, this is the AppData directory.

Lottie

If you want very good animation SplashScreen or Progressing bar then you should try this package. This package work on both Android and iOS. It parses Adobe After Effects animation as JSON with Bodymovin and renders them natively on the Flutter project.

logger

If you use a lot of print or log commands while debugging the app then I feel this plugin is for you. It displays logs in different ways according to different types and with different colors which helps us see the log which is printed in the console.

Thank you for giving the time to read it 🙏

--

--