BLE Software Development
End-to-end development practices for building BLE-enabled software.
Bluetooth Low Energy (BLE)How to Use Android BLE Scan Filter
Android's ScanFilter API lets you narrow BLE scan results to the devices that matter most. Learn how to filter by service UUID, device name, manufacturer data, and more while optimizing scan behavior for faster, more reliable discovery.
Bluetooth Low Energy (BLE)How to Perform a BLE Scan on Android
Learn how to perform a BLE scan on Android using Kotlin, from configuring permissions and BluetoothLeScanner to displaying nearby devices and managing scan results across Android versions.
Bluetooth Low Energy (BLE)How to Subscribe to Notifications and Indications in iOS Core Bluetooth
Learn how to subscribe to notifications and indications in iOS Core Bluetooth using setNotifyValue, handle notification state changes, and receive characteristic updates from BLE peripherals without polling.
Bluetooth Low Energy (BLE)How to Discover Services and Characteristics on iOS Core Bluetooth
A successful BLE connection is only the beginning. Learn how to discover services and characteristics on iOS Core Bluetooth, navigate a peripheral's GATT table, and prepare for reading, writing, and subscribing to characteristic values.
Bluetooth Low Energy (BLE)How to Use the centralManager didDiscover Delegate in iOS Core Bluetooth
The centralManager didDiscover delegate is where BLE scanning results become actionable. Learn what Core Bluetooth provides through CBPeripheral, advertisementData, and RSSI, and how to use that information to identify and manage devices before connecting.
LightBlueWhen (and When Not) to Use Virtual Devices in LightBlue
Should you test against a simulated peripheral or real hardware? This article breaks down when LightBlue Virtual Devices are useful and when relying on them can hide integration issues you need to catch.
Dive into our complete collection of articles, guides, and resources.




