Flutter has a rich ecosystem of packages and plugins (from pub.dev) that add functionality — from UI components to device features to backend integration. Using packages effectively (and understanding plugins for native features) is essential for productive development.
Packages vs plugins
PACKAGE → pure Dart code adding functionality (e.g. http, provider, intl)
PLUGIN → a package that also includes PLATFORM-SPECIFIC native code (iOS/Android),
bridging to native device features (e.g. camera, geolocation, sensors, Bluetooth)
→ Plugins let Flutter access native platform capabilities.
