A cross-platform Bluetooth Low Energy (BLE) plugin for Flutter, enabling mobile apps to discover, connect, and communicate with BLE devices.
FlutterBlue is a Bluetooth plugin for Flutter that enables developers to integrate Bluetooth Low Energy (BLE) functionality into their cross-platform mobile applications. It provides APIs for scanning, connecting to, and communicating with BLE devices, handling the underlying platform differences between iOS and Android. The plugin solves the problem of building BLE-enabled apps with a single codebase for both major mobile platforms.
Flutter developers building mobile applications that need to interact with Bluetooth Low Energy devices, such as IoT sensors, wearables, smart home gadgets, or medical devices.
Developers choose FlutterBlue because it offers a unified, cross-platform API for BLE operations, reducing the need to write platform-specific Bluetooth code. It is actively developed alongside production apps and provides direct access to core BLE features like service discovery, characteristic read/write, and notifications.
Bluetooth plugin for Flutter
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a unified Dart API for iOS and Android, handling platform differences internally, as shown in the consistent methods for scanning, connecting, and data communication across both platforms.
Supports full BLE operations including device discovery, service/characteristic access, and real-time notifications, with detailed API tables demonstrating feature coverage for core functionalities.
Actively developed alongside real-world apps, ensuring the API evolves based on practical use cases, though this comes with the caveat of instability and breaking changes.
Includes MTU size reading and request capabilities, with specific handling for Android-only MTU requests and iOS auto-negotiation up to 185, as noted in the documentation.
The library is explicitly in alpha with warnings about breaking changes, requiring developers to frequently adapt their code and making it unsuitable for projects that prioritize long-term stability.
Features like MTU request are Android-only, and iOS has limitations in MTU negotiation, leading to inconsistencies and potential workarounds for cross-platform parity.
Requires manual setup of permissions and SDK versions for both iOS and Android, including changes to build.gradle and Info.plist, which can be complex and error-prone.