CoreBluetooth para Swift: Guia Completo de Bluetooth Low Energy
1. O que é e para que serve
CoreBluetooth é um framework da Apple que fornece uma API para comunicação com dispositivos via protocolo Bluetooth Low Energy (BLE, Bluetooth 4.0 e superior). Ele faz parte do iOS SDK e do macOS SDK, sendo uma ferramenta nativa para desenvolvimento no ecossistema Apple. Diferente do Bluetooth clássico, o BLE é focado em consumo mínimo de energia, ideal para dispositivos vestíveis, sensores, fechaduras inteligentes, rastreadores fitness e gadgets IoT.
Para que serve o CoreBluetooth? Se você está desenvolvendo um app para iPhone que precisa trocar dados com um monitor cardíaco, controlar uma lâmpada inteligente ou receber leituras de uma estação meteorológica — este é o framework que você precisa. Ele cuida de todo o trabalho de baixo nível: escaneamento do ambiente, estabelecimento de conexão, descoberta de serviços e características, além de leitura/escrita de dados. O CoreBluetooth opera em dois papéis: Central (dispositivo que procura e se conecta) e Peripheral (dispositivo que se anuncia e fornece dados). Neste artigo, focaremos no papel de Central, que é o mais comum em aplicativos.
É importante entender que o CoreBluetooth não é uma biblioteca de terceiros, mas sim um framework do sistema. Não é necessário instalá-lo via gerenciador de pacotes — ele já vem disponível no Xcode. No entanto, para funcionar corretamente, você precisa adicionar uma descrição de uso do Bluetooth no Info.plist (chave NSBluetoothAlwaysUsageDescription para iOS 13+ ou NSBluetoothPeripheralUsageDescription para versões anteriores).
2. Configuração
CoreBluetooth não requer instalação via pip ou CocoaPods. Ele faz parte da biblioteca padrão da Apple. Para adicionar o framework ao seu projeto:
- Abra seu projeto no Xcode.
- Selecione o target do seu aplicativo.
- Vá até a aba "General" → "Frameworks, Libraries, and Embedded Content".
- Clique em "+" e escolha
CoreBluetooth.framework.
Ou simplesmente adicione o import no código:
import CoreBluetooth
Para trabalhar com Bluetooth no simulador iOS 14+ e macOS 11+, isso também funciona, mas dispositivos BLE reais só estão disponíveis em um dispositivo físico. No simulador, você pode testar apenas a lógica de escaneamento e conexão, mas não a transmissão de dados.
3. Início rápido — exemplo mínimo funcional
Abaixo está um código mínimo que inicializa o Central Manager e começa a escanear todos os dispositivos BLE disponíveis. O resultado é exibido no console.
import UIKit
import CoreBluetooth
class ViewController: UIViewController, CBCentralManagerDelegate {
var centralManager: CBCentralManager!
override func viewDidLoad() {
super.viewDidLoad()
// Inicializa o Central Manager com delegate
centralManager = CBCentralManager(delegate: self, queue: nil)
}
// MARK: - CBCentralManagerDelegate
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("Bluetooth ligado. Iniciando escaneamento...")
// Inicia o escaneamento de todos os dispositivos
centralManager.scanForPeripherals(withServices: nil, options: nil)
case .poweredOff:
print("Bluetooth desligado")
case .unauthorized:
print("App não autorizado para Bluetooth")
case .unknown:
print("Estado do Bluetooth desconhecido")
case .unsupported:
print("Dispositivo não suporta BLE")
case .resetting:
print("Bluetooth está reiniciando")
@unknown default:
print("Estado desconhecido")
}
}
func centralManager(_ central: CBCentralManager, Também na biblioteca
UUID em JavaScript (Node.js): guia completo com exemplos práticos
Filas de Tarefas para PHP: RabbitMQ, Gearman e PhpAmqpLib
Trabalhando com Kafka em Rust: bibliotecas rdkafka e Franz
Geração Swagger/OpenAPI para Swift: ferramentas e bibliotecas