Top Related Projects
Plugins for Flutter maintained by the Flutter team
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
Android and iOS Geolocation plugin for Flutter
File picker plugin for Flutter, compatible with mobile (iOS & Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.
SQLite flutter plugin
Quick Overview
Plus Plugins is a collection of Flutter plugins that extend the functionality of existing Flutter plugins or provide new features. These plugins are maintained by the Flutter Community, ensuring high-quality and up-to-date implementations for various platform-specific functionalities.
Pros
- Extends functionality of existing Flutter plugins
- Maintained by the Flutter Community, ensuring quality and updates
- Provides a wide range of plugins for different platform-specific features
- Easy integration with existing Flutter projects
Cons
- Some plugins may have limited platform support
- Dependency on third-party maintainers for updates and bug fixes
- Potential compatibility issues with future Flutter versions
- Limited documentation for some plugins
Code Examples
- Using the Network Info Plus plugin to get Wi-Fi details:
import 'package:network_info_plus/network_info_plus.dart';
final info = NetworkInfo();
String? wifiName = await info.getWifiName();
String? wifiIP = await info.getWifiIP();
- Implementing Android Alarm Manager Plus for background tasks:
import 'package:android_alarm_manager_plus/android_alarm_manager_plus.dart';
await AndroidAlarmManager.initialize();
await AndroidAlarmManager.periodic(const Duration(hours: 1), 0, backgroundTask);
void backgroundTask() {
print('Background task executed');
}
- Using Device Info Plus to get device information:
import 'package:device_info_plus/device_info_plus.dart';
final deviceInfo = DeviceInfoPlugin();
if (Platform.isAndroid) {
final androidInfo = await deviceInfo.androidInfo;
print('Running on ${androidInfo.model}');
} else if (Platform.isIOS) {
final iosInfo = await deviceInfo.iosInfo;
print('Running on ${iosInfo.utsname.machine}');
}
Getting Started
To use Plus Plugins in your Flutter project, add the desired plugin to your pubspec.yaml
file:
dependencies:
flutter:
sdk: flutter
network_info_plus: ^3.0.1
android_alarm_manager_plus: ^2.1.0
device_info_plus: ^8.0.0
Then, run flutter pub get
to install the dependencies. Import the required plugins in your Dart files and start using them as shown in the code examples above.
Competitor Comparisons
Plugins for Flutter maintained by the Flutter team
Pros of plugins
- Official Flutter team maintenance ensures high-quality and up-to-date plugins
- Wider range of plugins available, covering more diverse functionalities
- Tighter integration with Flutter framework and potential for performance optimizations
Cons of plugins
- Slower release cycle due to rigorous review process
- Less community involvement in decision-making and feature prioritization
- Some plugins may lack platform-specific features or optimizations
Code Comparison
plugins:
import 'package:connectivity/connectivity.dart';
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
// Mobile data detected
} else if (connectivityResult == ConnectivityResult.wifi) {
// Wi-Fi detected
}
plus_plugins:
import 'package:connectivity_plus/connectivity_plus.dart';
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
// Mobile data detected
} else if (connectivityResult == ConnectivityResult.wifi) {
// Wi-Fi detected
}
The code usage is nearly identical, with the main difference being the import statement. plus_plugins often provide additional features or platform-specific optimizations while maintaining similar APIs to their plugins counterparts.
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
Pros of flutter-permission-handler
- Focused specifically on permission handling, providing a more comprehensive and specialized solution
- Offers a wider range of permission types, including more granular controls
- Provides more detailed permission status information and request results
Cons of flutter-permission-handler
- Limited to permission-related functionality, requiring additional plugins for other features
- May have a steeper learning curve due to its more specialized nature
- Potentially larger package size compared to the more modular plus_plugins approach
Code Comparison
flutter-permission-handler:
import 'package:permission_handler/permission_handler.dart';
Future<void> requestCameraPermission() async {
var status = await Permission.camera.request();
if (status.isGranted) {
// Camera permission granted
}
}
plus_plugins (camera_plus):
import 'package:camera_plus/camera_plus.dart';
Future<void> requestCameraPermission() async {
var status = await CameraPlus.requestPermissions();
if (status == PermissionStatus.granted) {
// Camera permission granted
}
}
The flutter-permission-handler provides a more granular approach to permission handling, while plus_plugins offers a simpler, more streamlined API for specific functionalities. The choice between the two depends on the project's specific requirements and the desired level of control over permissions.
Android and iOS Geolocation plugin for Flutter
Pros of flutter-geolocator
- More focused on geolocation functionality, providing a comprehensive set of features for location-based services
- Offers advanced features like geofencing and activity recognition
- Well-documented API with clear examples and usage guidelines
Cons of flutter-geolocator
- Limited to geolocation-specific features, unlike plus_plugins which covers a broader range of functionalities
- May require additional plugins for other device features not related to location services
- Slightly larger package size due to its specialized nature
Code Comparison
flutter-geolocator:
import 'package:geolocator/geolocator.dart';
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high);
plus_plugins (location_plus):
import 'package:location/location.dart';
Location location = Location();
LocationData locationData = await location.getLocation();
Both packages offer similar basic functionality for getting the current location, but flutter-geolocator provides more options for accuracy and additional location-related features. plus_plugins, being a collection of various plugins, offers a wider range of functionalities beyond just location services, making it a more versatile choice for projects requiring multiple device features.
File picker plugin for Flutter, compatible with mobile (iOS & Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.
Pros of flutter_file_picker
- Focused specifically on file picking functionality, potentially offering more specialized features
- Simpler API for basic file picking operations
- Supports custom file extensions and MIME types
Cons of flutter_file_picker
- Limited to file picking, while plus_plugins offers a wider range of functionalities
- May have less frequent updates or community support compared to the Flutter Community project
- Potentially less integration with other Flutter ecosystem tools
Code Comparison
flutter_file_picker:
FilePickerResult? result = await FilePicker.platform.pickFiles();
if (result != null) {
File file = File(result.files.single.path!);
}
plus_plugins (using file_selector):
final XTypeGroup typeGroup = XTypeGroup(label: 'images', extensions: ['jpg', 'png']);
final XFile? file = await openFile(acceptedTypeGroups: [typeGroup]);
if (file != null) {
final String filePath = file.path;
}
Both repositories provide file picking functionality, but flutter_file_picker offers a more straightforward API for basic operations. plus_plugins, being a collection of plugins, provides a wider range of features beyond just file picking. The choice between them depends on whether you need a specialized file picking solution or a more comprehensive set of plugins for various functionalities in your Flutter project.
SQLite flutter plugin
Pros of sqflite
- Specialized for SQLite database operations in Flutter
- Provides low-level database access and custom SQL queries
- Well-established and widely used in the Flutter community
Cons of sqflite
- Limited to SQLite databases only
- Requires more manual setup and SQL knowledge
- Less comprehensive compared to the wide range of plugins in plus_plugins
Code Comparison
sqflite:
final db = await openDatabase('my_db.db');
await db.execute('CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT)');
await db.insert('Test', {'name': 'John'});
List<Map> result = await db.query('Test', where: 'name = ?', whereArgs: ['John']);
plus_plugins (using shared_preferences as an example):
final prefs = await SharedPreferences.getInstance();
await prefs.setString('name', 'John');
String? name = prefs.getString('name');
Summary
sqflite is a specialized SQLite database plugin for Flutter, offering low-level database access and custom SQL queries. It's well-established but limited to SQLite operations. plus_plugins, on the other hand, provides a wider range of plugins for various functionalities, including simpler data storage options like shared_preferences. The choice between them depends on the specific needs of your project, with sqflite being more suitable for complex database operations and plus_plugins offering a broader set of tools for different purposes.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Plus plugins
PlusPlugins is a set of Flutter plugins that is developed based on plugins, which previously existed as a part of Flutter plugins, with extra functionalities, support for more platforms and better maintenance.
Feedback and Pull Requests are most welcome!
Plugins
Table of contents:
- Batteryâ (
battery_plus
) - Connectivityâ (
connectivity_plus
) - Device Infoâ (
device_info_plus
) - Network Infoâ (
network_info_plus
) - Package Infoâ (
package_info_plus
) - Sensorâ (
sensors_plus
) - Shareâ (
share_plus
) - Android Alarm Managerâ (
android_alarm_manager_plus
) - Android Intentâ (
android_intent_plus
)
battery_plus
Flutter plugin for accessing information about the battery state(full, charging, discharging) on Android and iOS.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
connectivity_plus
Flutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
device_info_plus
Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
network_info_plus
Flutter plugin for discovering network info.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
package_info_plus
Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
sensors_plus
Flutter plugin for accessing accelerometer, gyroscope, magnetometer and barometer sensors.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
share_plus
Flutter plugin for sharing content via the platform share UI, using the ACTION_SEND intent on Android and UIActivityViewController on iOS.
Platform Support
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
â | â | â | â | â | â |
android_alarm_manager_plus
Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire.
Platform Support
Android |
---|
â |
android_intent_plus
Flutter plugin for launching Android Intents. Not supported on iOS.
Platform Support
Android |
---|
â |
Issues
Please file PlusPlugins specific issues, bugs, or feature requests in our issue tracker.
Plugin issues that are not specific to PlusPlugins can be filed in the Flutter issue tracker.
Contributing
If you wish to contribute a change to any of the existing plugins in this repo, please review our contribution guide and open a pull request.
Status
This repository is maintained by FlutterCommunity authors. Issues here are answered by maintainers and other community members on GitHub on a best-effort basis.
Top Related Projects
Plugins for Flutter maintained by the Flutter team
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
Android and iOS Geolocation plugin for Flutter
File picker plugin for Flutter, compatible with mobile (iOS & Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.
SQLite flutter plugin
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot