CoreBluetooth Swift: Bluetooth Low Energy की पूरी गाइड
1. CoreBluetooth क्या है और क्यों ज़रूरी है?
CoreBluetooth Apple का एक फ्रेमवर्क है जो Bluetooth Low Energy (BLE, Bluetooth 4.0 और उससे ऊपर) प्रोटोकॉल के ज़रिए डिवाइसों से संवाद करने का API प्रदान करता है। यह iOS SDK और macOS SDK का हिस्सा है, जो इसे Apple इकोसिस्टम के लिए नेटिव टूल बनाता है। पारंपरिक Bluetooth के विपरीत, BLE कम बिजली खपत पर केंद्रित है, जो वियरेबल डिवाइस, सेंसर, स्मार्ट लॉक, फिटनेस ट्रैकर और IoT गैजेट्स के लिए आदर्श है।
CoreBluetooth क्यों ज़रूरी है? अगर आप iPhone के लिए कोई ऐप बना रहे हैं जो हार्ट रेट मॉनिटर से डेटा लेना, स्मार्ट बल्ब को कंट्रोल करना या मौसम स्टेशन से रीडिंग लेना चाहता है, तो आपको इसी फ्रेमवर्क की ज़रूरत होगी। यह सभी लो-लेवल काम खुद करता है: एयरवेव्स को स्कैन करना, कनेक्शन स्थापित करना, सर्विस और कैरेक्टरिस्टिक्स का पता लगाना, और डेटा पढ़ना/लिखना। CoreBluetooth दो भूमिकाओं में काम करता है: Central (डिवाइस जो खोजता और कनेक्ट होता है) और Peripheral (डिवाइस जो खुद को प्रदर्शित करता है और डेटा देता है)। इस लेख में हम Central भूमिका पर ध्यान केंद्रित करेंगे, क्योंकि यह ऐप्स में सबसे ज़्यादा उपयोग होती है।
यह समझना ज़रूरी है कि CoreBluetooth कोई तीसरे पक्ष की लाइब्रेरी नहीं है, बल्कि एक सिस्टम फ्रेमवर्क है। इसे पैकेज मैनेजर के ज़रिए इंस्टॉल करने की ज़रूरत नहीं है; यह Xcode में "आउट ऑफ द बॉक्स" उपलब्ध है। हालांकि, सही काम करने के लिए Info.plist में Bluetooth उपयोग का विवरण जोड़ना ज़रूरी है (iOS 13+ के लिए कुंजी NSBluetoothAlwaysUsageDescription या पुराने संस्करणों के लिए NSBluetoothPeripheralUsageDescription)।
2. सेटअप कैसे करें
CoreBluetooth को pip या CocoaPods के ज़रिए इंस्टॉल करने की ज़रूरत नहीं है। यह Apple की मानक लाइब्रेरी का हिस्सा है। प्रोजेक्ट में फ्रेमवर्क जोड़ने के लिए:
- Xcode में अपना प्रोजेक्ट खोलें।
- अपने ऐप का टार्गेट चुनें।
- "General" टैब → "Frameworks, Libraries, and Embedded Content" पर जाएं।
- "+" दबाएं और
CoreBluetooth.frameworkचुनें।
या बस कोड में इम्पोर्ट जोड़ें:
import CoreBluetooth
iOS 14+ और macOS 11+ पर सिम्युलेटर पर Bluetooth काम करेगा, लेकिन वास्तविक BLE डिवाइस केवल फिजिकल डिवाइस पर ही उपलब्ध हैं। सिम्युलेटर पर आप केवल स्कैनिंग और कनेक्शन लॉजिक का परीक्षण कर सकते हैं, डेटा ट्रांसफर का नहीं।
3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण
नीचे न्यूनतम कोड दिया गया है जो एक सेंट्रल मैनेजर (Central Manager) को इनिशियलाइज़ करता है और सभी उपलब्ध BLE डिवाइसों को स्कैन करना शुरू करता है। परिणाम कंसोल में दिखाई देगा।
import UIKit
import CoreBluetooth
class ViewController: UIViewController, CBCentralManagerDelegate {
var centralManager: CBCentralManager!
override func viewDidLoad() {
super.viewDidLoad()
// डेलिगेट के साथ Central Manager को इनिशियलाइज़ करें
centralManager = CBCentralManager(delegate: self, queue: nil)
}
// MARK: - CBCentralManagerDelegate
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("Bluetooth चालू है। स्कैनिंग शुरू कर रहे हैं...")
// सभी डिवाइसों की स्कैनिंग शुरू करें
centralManager.scanForPeripherals(withServices: nil, options: nil)
case .poweredOff:
print("Bluetooth बंद है")
case .unauthorized:
print("ऐप Bluetooth के लिए अधिकृत नहीं है")
case .unknown:
print("Bluetooth की स्थिति अज्ञात है")
case .unsupported:
print("डिवाइस BLE को सपोर्ट नहीं करता")
case .resetting:
print("Bluetooth रीसेट हो रहा है")
@unknown default:
print("अज्ञात स्थिति")
}
}
func centralManager(_ central: CBCentralManager,