Question #157MediumFlutter Basics

Check all the plugins in flutter.dev ? (optional)

#flutter

Answer

Overview

flutter.dev hosts a comprehensive plugin/package directory at pub.dev, featuring thousands of packages for various use cases. Below is a categorized overview of essential Flutter plugins.


Categories of Plugins

1. State Management

PackageDescriptionPopularity
providerSimple state management⭐⭐⭐⭐⭐
flutter_blocBLoC pattern implementation⭐⭐⭐⭐⭐
riverpodModern provider alternative⭐⭐⭐⭐
getSimple state + routing + DI⭐⭐⭐⭐
mobxObservable state management⭐⭐⭐
reduxRedux pattern for Flutter⭐⭐⭐

2. Networking

PackageDescription
dioAdvanced HTTP client
httpSimple HTTP client (official)
retrofitType-safe REST client (code gen)
graphql_flutterGraphQL client
socket_io_clientSocket.IO client

3. Local Storage

PackageDescription
shared_preferencesKey-value storage
hiveFast NoSQL database
sqfliteSQLite database
isarFast NoSQL database (native)
objectboxObject database
driftType-safe SQL (was moor)

4. Firebase

PackageDescription
firebase_coreFirebase initialization
firebase_authAuthentication
cloud_firestoreFirestore database
firebase_storageCloud storage
firebase_messagingPush notifications
firebase_analyticsAnalytics
firebase_crashlyticsCrash reporting

5. UI Components

PackageDescription
cached_network_imageImage caching
flutter_svgSVG rendering
lottieLottie animations
shimmerLoading shimmer effect
carousel_sliderImage carousel
flutter_staggered_grid_viewStaggered grids
flutter_spinkitLoading spinners

6. Navigation/Routing

PackageDescription
go_routerOfficial routing (recommended)
auto_routeType-safe routing (code gen)
fluroAdvanced routing
beamerRouter with navigation stack

7. Dependency Injection

PackageDescription
get_itService locator
injectableCode-gen DI with get_it
kiwiSimple DI
providerAlso handles DI

8. Forms & Validation

PackageDescription
flutter_form_builderForm builder with validation
reactive_formsReactive forms (Angular-style)
formzForm state management (BLoC)

9. Authentication

PackageDescription
google_sign_inGoogle OAuth
sign_in_with_appleApple Sign In
flutter_facebook_authFacebook Login
local_authBiometric authentication

10. Media

PackageDescription
image_pickerPick images/videos
cameraCamera access
video_playerVideo playback
audioplayersAudio playback
just_audioAdvanced audio player
flutter_soundAudio recording

11. Maps & Location

PackageDescription
google_maps_flutterGoogle Maps widget
geolocatorLocation services
geocodingAddress ↔ coordinates
locationLocation updates

12. Sensors

PackageDescription
sensors_plusAccelerometer, gyroscope
battery_plusBattery info
connectivity_plusNetwork connectivity
device_info_plusDevice information

13. Notifications

PackageDescription
flutter_local_notificationsLocal notifications
awesome_notificationsAdvanced notifications

14. WebView

PackageDescription
webview_flutterWebView widget
flutter_inappwebviewAdvanced WebView

15. Animations

PackageDescription
animationsMaterial motion animations
flutter_animateSimple animations
riveRive animations

16. Charts

PackageDescription
fl_chartBeautiful charts
syncfusion_flutter_chartsProfessional charts
charts_flutterGoogle charts

17. Internationalization

PackageDescription
intlOfficial i18n support
easy_localizationSimple localization
flutter_localizationsOfficial localization (built-in)

18. Testing

PackageDescription
mockitoMocking library
bloc_testBLoC testing
integration_testIntegration tests (official)

19. Code Generation

PackageDescription
build_runnerCode generation runner
freezedImmutable data classes
json_serializableJSON serialization
retrofit_generatorRetrofit code gen
injectable_generatorInjectable DI gen

20. Utils

PackageDescription
loggerLogging library
url_launcherOpen URLs, emails, etc.
share_plusShare content
path_providerGet app directories
package_info_plusApp version info
permission_handlerRequest permissions
flutter_launcher_iconsGenerate app icons
flutter_native_splashSplash screens

Top 20 Must-Have Plugins (2025)

  1. flutter_bloc — State management
  2. dio — HTTP client
  3. hive — Local database
  4. cached_network_image — Image caching
  5. go_router — Navigation
  6. get_it — Dependency injection
  7. freezed — Immutable data classes
  8. firebase_core — Firebase integration
  9. google_maps_flutter — Maps
  10. image_picker — Pick images
  11. flutter_local_notifications — Notifications
  12. shared_preferences — Key-value storage
  13. flutter_svg — SVG support
  14. url_launcher — Open URLs
  15. permission_handler — Permissions
  16. geolocator — Location services
  17. video_player — Video playback
  18. webview_flutter — WebView
  19. fl_chart — Charts
  20. lottie — Lottie animations

How to Find Plugins

1. Search on pub.dev

Visit pub.dev/flutter and search by keyword.

2. Flutter Favorites

Official "Flutter Favorite" badge indicates high-quality packages.

text
🏅 Flutter Favorite

3. Filter by Platform

bash
# Filter by platform
- Android ✅
- iOS ✅
- Web ✅
- Windows ✅
- macOS ✅
- Linux ✅

4. Check Popularity

  • Pub Points: Score out of 140 (quality metrics)
  • Likes: Community upvotes
  • Popularity: Usage statistics

Installation

yaml
dependencies:
  # Add package name and version
  dio: ^5.3.0
  flutter_bloc: ^8.1.0
  cached_network_image: ^3.3.0

dev_dependencies:
  # Development tools
  build_runner: ^2.4.0
  mockito: ^5.4.0
bash
# Install dependencies
flutter pub get

# Update dependencies
flutter pub upgrade

Best Practices

yaml
# ✅ Pin major versions
dependencies:
  dio: ^5.3.0  # Allows 5.x.x (SemVer)

# ✅ Check pub.dev for latest version
# ✅ Read documentation before using

# ❌ Don't use too many packages (bundle size)
# ❌ Don't use unmaintained packages (check last update)

Summary

CategoryTop Packages
Stateflutter_bloc, riverpod, provider
Networkdio, http, retrofit
Storagehive, shared_preferences, sqflite
UIcached_network_image, flutter_svg, lottie
Routinggo_router, auto_route
DIget_it, injectable
Firebasefirebase_core, cloud_firestore

Explore more: pub.dev/flutter