A comprehensive Bluetooth Low Energy library for Flutter with built-in support for simulating peripherals.
FlutterBleLib is a Bluetooth Low Energy (BLE) library for Flutter that provides a complete solution for integrating BLE functionality into mobile applications. It abstracts the complexities of platform-specific BLE APIs (Android and iOS) into a single, easy-to-use Dart interface. The library also supports BLE simulation, enabling developers to test their BLE logic without physical devices.
Flutter developers building mobile applications that require Bluetooth Low Energy connectivity, such as IoT device controllers, health monitors, or smart home apps. It's also valuable for teams needing to automate BLE testing.
Developers choose FlutterBleLib for its comprehensive feature set, cross-platform consistency, and unique BLE simulation capabilities, which streamline development and testing workflows compared to handling native BLE APIs directly.
Bluetooth Low Energy library for Flutter with support for simulating peripherals
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 API for Android and iOS using Polidea's MultiPlatformBleAdapter, abstracting platform-specific complexities into a single Dart interface.
Integrates with BLEmulator for hardware-free development and automated testing, a unique feature that streamlines testing workflows without physical devices.
Offers full control over BLE entities like peripherals, services, and characteristics with asynchronous Futures and Streams, enabling non-blocking execution for complex use cases.
Allows cancellation of ongoing BLE operations via transaction IDs, giving developers fine-grained control over execution, as detailed in the README's transaction section.
The library does not manage Bluetooth or location permissions; developers must manually request ACCESS_FINE_LOCATION on Android and set iOS privacy keys, adding boilerplate code.
Some features like isConnectable in ScanResult are iOS-only, and Android requires location permissions for scanning, leading to inconsistent cross-platform behavior.
Requires setting minSDKVersion, running pod install for iOS, and managing native Rx libraries, which increases initial setup time and app size compared to lighter alternatives.