An iOS demo app showcasing Bluetooth Low Energy communication using SwiftUI, Combine, and CoreBluetooth.
This project connects to a BLE heart rate sensor and displays real-time BPM values with animated feedback.
There is also a companion ESP32 HR Simulator for easier testing, especially of 16-bit values as described below.
- Scans for BLE peripherals advertising the Heart Rate Service (
UUID 0x180D) - Subscribes to the Heart Rate Measurement characteristic (
UUID 0x2A37) - Displays incoming heart rate values with heartbeat animation
- Handles both 8-bit and 16-bit heart rate formats, as specified in the Heart Rate Profile
- Written in Swift 5 with Complete Strict Concurrency Checking
- iOS 16.0+
- Real iOS device (BLE is not available in the simulator)
- Heart rate monitor supporting BLE (some Garmin models are ANT+ only) or the simulator
