A comprehensive Bluetooth Low Energy (BLE) testing and exploration application built with Flutter. This app provides a complete suite of tools for discovering, connecting to, and interacting with BLE devices.
- Device Discovery: Scan and discover nearby BLE devices with real-time RSSI monitoring
- Connection Management: Establish and manage connections to BLE peripherals
- GATT Explorer: Browse and interact with GATT services, characteristics, and descriptors
- Data Operations: Read, write, and subscribe to characteristic notifications
- Simulation Mode: Test BLE functionality without physical hardware using built-in simulation
- Cross-platform: Works on Android, iOS, Windows, macOS, Linux, and Web
The app follows a clean architecture pattern with:
- Core Layer: Shared utilities, constants, error handling, and BLE simulation interface
- Features Layer: Modular feature implementation (device discovery, connection dashboard, GATT explorer, mode selector)
- Presentation Layer: UI components, providers, and state management
- Flutter SDK 3.0 or higher
- Dart 2.17 or higher
- Android Studio / Xcode for mobile development
- Physical BLE device or simulator for testing
-
Clone the repository:
git clone https://github.com/your-username/ble_master_lab.git cd ble_master_lab -
Install dependencies:
flutter pub get
-
Run the app:
flutter run
lib/
├── app/ # App configuration and routing
├── core/ # Core utilities and shared components
├── features/ # Feature modules
│ ├── device_discovery/ # BLE device scanning
│ ├── connection_dashboard/ # Device connection management
│ ├── gatt_explorer/ # GATT browsing and operations
│ └── mode_selector/ # App mode selection
└── main.dart # Entry point
- Scans for nearby BLE devices
- Displays device information (name, RSSI, MAC address)
- Real-time signal strength monitoring
- Manage active BLE connections
- Display connection status and statistics
- Handle connection lifecycle events
- Browse GATT services and characteristics
- Read/write characteristic values
- Subscribe to notifications
- View descriptor information
- Test BLE functionality without hardware
- Simulated devices and services
- Ideal for development and demonstration
Key packages used in this project:
flutter_blue_plus: BLE functionality for mobile platformspermission_handler: Handle device permissionsriverpod: State managementgo_router: Navigation and routing
- ✅ Android
- ✅ iOS
- ✅ Windows
- ✅ macOS
- ✅ Linux
- ✅ Web (limited BLE support)
flutter testThis project uses code generation for certain components. Run:
flutter pub run build_runner buildEnable detailed logging by setting the log level in AppLogger:
AppLogger().level = Level.verbose;- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter Blue Plus for BLE functionality
- The Flutter community for excellent packages and resources
