CoreBluetooth für Swift: Vollständiges Guide zu Bluetooth Low Energy
1. Was ist CoreBluetooth und wofür braucht man es?
CoreBluetooth ist ein Apple-Framework, das eine API für die Kommunikation mit Geräten über das Bluetooth Low Energy-Protokoll (BLE, Bluetooth 4.0 und höher) bereitstellt. Es ist Teil des iOS SDK und macOS SDK und damit ein natives Werkzeug für die Entwicklung im Apple-Ökosystem. Im Gegensatz zu klassischem Bluetooth ist BLE auf minimalen Stromverbrauch ausgelegt – ideal für Wearables, Sensoren, Smart Locks, Fitness-Tracker und IoT-Gadgets.
Wofür braucht man CoreBluetooth? Wenn Sie eine App für das iPhone entwickeln, die Daten mit einem Pulsmesser austauschen, eine intelligente Glühbirne steuern oder Messwerte einer Wetterstation abrufen soll – dann benötigen Sie genau dieses Framework. Es übernimmt die gesamte Low-Level-Arbeit: Scannen der Umgebung, Verbindungsaufbau, Erkennung von Diensten und Charakteristiken sowie das Lesen und Schreiben von Daten. CoreBluetooth arbeitet in zwei Rollen: Central (das Gerät, das sucht und Verbindungen aufbaut) und Peripheral (das Gerät, das sich bewirbt und Daten bereitstellt). In diesem Artikel konzentrieren wir uns auf die Central-Rolle, da sie in Apps am häufigsten benötigt wird.
Wichtig zu verstehen: CoreBluetooth ist keine externe Bibliothek, sondern ein systemeigenes Framework. Es muss nicht über einen Paketmanager installiert werden, sondern ist in Xcode sofort verfügbar. Für den korrekten Betrieb müssen Sie jedoch eine Beschreibung zur Bluetooth-Nutzung in der Info.plist hinzufügen (Schlüssel NSBluetoothAlwaysUsageDescription für iOS 13+ oder NSBluetoothPeripheralUsageDescription für ältere Versionen).
2. Installation
CoreBluetooth erfordert keine Installation über pip oder CocoaPods. Es ist Teil der Apple-Standardbibliothek. So binden Sie das Framework in Ihr Projekt ein:
- Öffnen Sie Ihr Projekt in Xcode.
- Wählen Sie das Target Ihrer App aus.
- Gehen Sie zum Tab "General" → "Frameworks, Libraries, and Embedded Content".
- Klicken Sie auf "+" und wählen Sie
CoreBluetooth.framework.
Oder fügen Sie einfach den Import in Ihren Code ein:
import CoreBluetooth
Für die Arbeit mit Bluetooth im Simulator (iOS 14+ und macOS 11+) funktioniert dies ebenfalls, aber echte BLE-Geräte sind nur auf einem physischen Gerät verfügbar. Im Simulator können Sie lediglich die Scan- und Verbindungslogik testen, nicht jedoch die Datenübertragung.
3. Schnellstart – Minimales Arbeitsbeispiel
Nachfolgend finden Sie einen minimalen Code, der ein Central Device (Central Manager) initialisiert und das Scannen aller verfügbaren BLE-Geräte startet. Das Ergebnis wird in der Konsole ausgegeben.
import UIKit
import CoreBluetooth
class ViewController: UIViewController, CBCentralManagerDelegate {
var centralManager: CBCentralManager!
override func viewDidLoad() {
super.viewDidLoad()
// Central Manager mit Delegat initialisieren
centralManager = CBCentralManager(delegate: self, queue: nil)
}
// MARK: - CBCentralManagerDelegate
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("Bluetooth ist eingeschaltet. Scannen wird gestartet...")
// Scannen aller Geräte starten
centralManager.scanForPeripherals(withServices: nil, options: nil)
case .poweredOff:
print("Bluetooth ist ausgeschaltet")
case .unauthorized:
print("App ist nicht für Bluetooth autorisiert")
case .unknown:
print("Bluetooth-Status unbekannt")
case .unsupported:
print("Gerät unterstützt kein BLE")
case .resetting:
print("Bluetooth wird zurückgesetzt")
@unknown default:
print("Unbekannter Status")
}
}
func centralManager(_ central: CBCentralManager, Auch in der Bibliothek
SMS-Versand mit C# (.NET): Integration mit SMS-API-Diensten über HttpClient
gRPC für TypeScript: Bibliotheken und Anwendungsbeispiele
Internationalisierung (i18n) in TypeScript: Vollständiger Leitfaden
Arbeiten mit Bildern in Go (Golang): Bibliotheken und Beispiele