Skip to content

dotintent/flutter_blue_ultra

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,747 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flutter Blue Ultra logo

🩵 Flutter Blue Ultra

pub package pub points

CI license

An open-source Bluetooth Low Energy (BLE) plugin for Flutter. Scan for nearby devices, connect, discover GATT services and characteristics, read and write, subscribe to notifications, negotiate MTU, and manage bonding — all from a single cross-platform API on iOS, Android, macOS, Linux, and Web (central role).

A community continuation of flutter_blue_plus 1.x — same familiar API, with new capabilities and ongoing platform maintenance.

Scanning nearby BLE devices    Connecting to a device and reading characteristics

✨ Features

  • Legacy 1.x compatibility — keep using the familiar flutter_blue_plus 1.x API surface.
  • Cross-platform — iOS, Android, macOS, Linux, and Web (central role).
  • Actively maintained — tracks Android/iOS/macOS/Linux/Web Bluetooth API changes.
  • New functionality — expanded features on top of the legacy API.
  • Accessory Setup Kit — optional accessory pairing flow integration on iOS.

⚡ Quick start

Add the package:

flutter pub add flutter_blue_ultra

Or add it manually to pubspec.yaml:

dependencies:
  flutter_blue_ultra: ^2.2.0

Configure platform permissions (Android manifest, iOS Info.plist, macOS entitlements, Android minSdkVersion) — see Getting started. Apps cannot scan or connect without these.

Minimal scan example:

import 'package:flutter_blue_ultra/flutter_blue_ultra.dart';

void main() async {
  // Ensure Bluetooth is supported and powered on before scanning.
  if (await FlutterBlueUltra.isSupported == false) return;
  await FlutterBlueUltra.adapterState
      .where((s) => s == BluetoothAdapterState.on)
      .first;

  await FlutterBlueUltra.startScan(timeout: const Duration(seconds: 5));
  await FlutterBlueUltra.isScanning.where((v) => v == false).first;
}

A full runnable app lives in example/.

📘 Documentation

🚇 Compatibility and migration

Compatibility with flutter_blue_plus

  • You cannot install both flutter_blue_plus and flutter_blue_ultra in the same project — they are mutually exclusive.
  • A compatibility layer keeps legacy code that uses FlutterBluePlus working with flutter_blue_ultra.
  • New features land only on the FlutterBlueUltra API.

Migration strategy

  1. Immediate migration (recommended) — find-and-replace:
    • flutter_blue_plusflutter_blue_ultra (imports)
    • FlutterBluePlusFlutterBlueUltra (code)
  2. Gradual migration — keep using FlutterBluePlus via the compatibility layer and migrate file by file.
  3. Legacy support — on flutter_blue_plus 1.x, use this project as a drop-in replacement. Original migration notes are in MIGRATION.md.

🙋 Where to go next

🤖 Credits and origins

A community continuation of flutter_blue_plus 1.x. Original work:

📜 License

Licensed under the BSD 3-Clause license. See LICENSE.


🛠️ Maintained by Intent

Maintained by Intent

Flutter Blue Ultra is built and maintained by Intent — we design and engineer connected products, including Bluetooth and IoT experiences. Get in touch if you need help with your BLE project.

About

Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Dart 59.8%
  • Java 18.8%
  • Objective-C 12.5%
  • Swift 5.6%
  • CMake 1.1%
  • Ruby 0.9%
  • Other 1.3%