CoreBluetooth para Swift: Guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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:

  1. Abra seu projeto no Xcode.
  2. Selecione o target do seu aplicativo.
  3. Vá até a aba "General" → "Frameworks, Libraries, and Embedded Content".
  4. 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,                    

Recommendations