Here are some of the most Popular Flutter Packages, categorized by their functionality that will be part of almost any app you that will build.
UI and Layout
- fluttertoast: A simple toast notification package.
- flutter_statusbar: A package for customizing the status bar on Android and iOS devices.
- animated_text_kit: A package for creating animated text effects.
Navigation between Pages, Screens, UIs
- Navigation Bar & Page Navigation https://docs.flutter.dev/cookbook/navigation/navigation-basics – Build-in – provided by the Flutter SDK https://www.youtube.com/watch?v=DVGYddFaLv0
- go_router: Go Router is a popular navigation package that provides a simple, powerful, and flexible way to navigate between routes in your Flutter app.
- auto_route: Auto Route is another popular navigation package that provides a declarative API for navigating between routes in your Flutter app.
- flow_builder: You could probably implement it with any state management solution – to have an router with flags that are listened by the UI and change the corresponding grand widget (page). But, there is also package for this approach: https://pub.dev/packages/flow_builder
I myself am trying to build a generator for navigation flow – with variety of implementations https://programtom.com/dev/product/app-routing-code-snippets-generator-beta/
Networking and APIs
- http: A popular HTTP client package for making network requests.
- dio: Another popular HTTP client package with additional features like caching and interceptors.
- retrofit: A type-safe HTTP client package that uses annotations to define API endpoints.
Database and Storage
- hive: A lightweight, NoSQL database package for storing data locally on the device.
- sqflite: A SQLite database package for storing data locally on the device.
- shared_preferences: A simple package for storing key-value pairs in a shared preferences file.
- flutter_secure_storage: A package for securely storing sensitive data like passwords or API keys.
Authentication and Security
- firebase_auth: A package for authenticating users with Firebase Authentication.
- google_sign_in: A package for signing in with Google accounts.
Utilities and Tools
- intl: A package for formatting dates, numbers, and currencies according to the user’s locale.
- path_provider: A package for accessing files and directories on the device.
- permission_handler: A package for requesting permissions from the user (e.g., camera, location).
Other notable packages
- flutter_svg: A package for rendering SVG images in Flutter.
- cached_network_image: A package for caching network images to improve performance.
- flutter_markdown: A package for parsing and displaying Markdown text.
Note that this is not an exhaustive list, and there are many other useful packages available on the Dart Package Manager (pub.dev).