iBeacon — este un protocol proprietar Apple pentru beaconuri Bluetooth Low Energy, care permite dispozitivelor iOS să-și determine locația în interior cu o precizie de centimetri. Baza protocolului este difuzarea pachetelor BLE cu un identificator unic care conține UUID, Major și Minor. Conform Apple iBeacon Design Guidelines (2025), tehnologia este utilizată în navigația prin centre comerciale, muzee, aeroporturi și stadioane, suportând detectarea pasivă fără asociere activă a dispozitivelor.
Principalele puncte
iBeacon — este o tehnologie de poziționare în interiorul spațiilor,d ezvoltată de Apple și prezentată la WWDC 2013. Spre deosebire de GPS, care nu funcționează în interiorul clădirilor, iBeacon utilizează beaconuri Bluetooth Low Energy — dispozitive mici alimentate cu baterie care transmit pachete fixe de identificare. Dispozitivele iOS și Android recepționează aceste pachete și calculează distanța aproximativă până la beacon pe baza nivelului semnalului (RSSI).
Protocolul iBeacon a devenit primul standard în masă al beaconurilor BLE, lansat de Apple în 2013 în iOS 7. Inițial, tehnologia a fost utilizată în comerțul cu amănuntul: magazinele Apple Store au implementat iBeacon pentru a informa clienții despre reduceri la intrarea în anumite zone. Până în 2025, infrastructura iBeacon numără milioane de beaconuri instalate în întreaga lume, deși au apărut protocoale alternative — Eddystone de la Google și AltBeacon cu cod sursă deschis.
iBeacon este utilizat în cinci scenarii principale: navigare în interior (centre comerciale, aeroporturi, muzee), notificări context (reduceri la intrarea în magazin), automatizarea proceselor de lucru (marcarea prezenței), logistică și evidență de depozit, precum și ghiduri turistice cu redare automată a conținutului la apropierea de obiect. Conform ABI Research (2025), piața beaconurilor BLE este estimată la 3,2 miliarde de dispozitive în exploatare.
Pachetul iBeacon — este un Advertising PDU (Protocol Data Unit), transmis în canalul publicitar BLE pe frecvențele 2402, 2426 și 2480 MHz. Formatul pachetului este strict fixat și constă din patru câmpuri: prefixul Apple iBeacon (0x4C000215), UUID de 16 octeți, valorile Major de 2 octeți și Minor de 2 octeți, precum și TX Power de 1 octet pentru calibrarea distanței. Dimensiunea totală a datelor este de 30 de octeți, care încape într-un singur BLE Advertising PDU.
| Câmp | Dimensiune | Descriere |
|---|---|---|
| Prefixul Apple | 9 octeți | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 octeți | Identificatorul unic al organizației sau aplicației |
| Major | 2 octeți | Identificatorul zonei (0-65535), de ex. numărul magazinului |
| Minor | 2 octeți | Identificatorul punctului (0-65535), de ex. numărul raftului |
| TX Power | 1 octet | Puterea de calibrare a semnalului la distanța de 1 metru (dBm) |
Identificatorii iBeacon formează o ierarhie pe trei niveluri. UUID este atribuit organizației (de ex., rețeaua de magazine), Major — magazinului sau etajului specific, Minor — punctului specific din zonă (zona de casă, departamentul de marfă). Această ierarhie permite aplicației să reacționeze flexibil la diferite niveluri de context: la intrarea în magazin (UUID + Major) aplicația poate încărca harta etajului, iar la apropierea de un departament specific (Minor) poate afișa informații despre produs.
Câmpul TX Power — este valoarea de referință a nivelului semnalului (RSSI) la distanța de 1 metru de beacon. La primirea pachetului, dispozitivul înregistrează RSSI-ul real și calculează distanța după formula: distance = 10^((TX_Power - RSSI) / (10 * n)), unde n — coeficientul de atenuare al mediului (de obicei 2-4). Calibrarea corectă a TX Power este critică pentru precizia poziționării: o eroare de 1 dBm dă o abatere de până la 30% la o distanță de 5 metri.
iOS definește trei zone de proximitate pe baza distanței calculate până la beacon: Immediate (mai puțin de 0,5 metri), Near (de la 0,5 la 3 metri) și Far (de la 3 la 30-50 metri în funcție de condiții). Distanța exactă nu este comunicată — doar categoria. Acest lucru este intenționat: RSSI este supus interferențelor, reflexiilor semnalului și influenței corpului uman, prin urmare categoriile oferă o determinare mai stabilă a locației.
Immediate — zona de contact direct, când dispozitivul se află la câțiva centimetri de beacon. Utilizată în scenarii care necesită precizie maximă: plata prin terminal, deschiderea unui lacăt digital, verificarea la punctul de control. În zona Immediate, RSSI este de obicei între -30 și -60 dBm.
Zona Near — zona principală de lucru a iBeacon, care acoperă distanța de la 0,5 la 3 metri. Utilizată pentru navigare în interior — de exemplu, la apropierea de o vitrină cu marfă, aplicația afișează informații detaliate. În zona Near, RSSI variază între -60 și -80 dBm la calibrarea TX Power = -59 dBm.
Far — zona maximă de detectare a semnalului beaconului. Utilizată pentru monitorizarea intrării în regiune (de exemplu, intrarea într-un centru comercial). La distanța Far, RSSI este de obicei mai slab de -80 dBm, iar precizia determinării distanței scade semnificativ. Pentru monitorizarea intrării se utilizează API-uri de sistem region monitoring, nu determinarea zonei exacte.
Regiunea iBeacon — este o zonă virtuală definită de UUID (și opțional Major + Minor). iOS permite monitorizarea a până la 20 de regiuni simultan cu ajutorul CLLocationManager. La intrarea în regiune, sistemul trezește aplicația chiar și în fundal sau în stare oprită și trimite o notificare prin delegatul locationManager:didEnterRegion. La ieșirea din regiune, este apelat locationManager:didExitRegion.
import CoreLocation
let locationManager = CLLocationManager()
let region = CLBeaconRegion(
uuid: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!,
identifier: "myBeaconRegion"
)
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: region)
Pentru determinarea zonei (Immediate, Near, Far) se utilizează ranging — scanarea beaconurilor în timp real. Spre deosebire de monitorizare, ranging funcționează doar în modul activ al aplicației și necesită permisiunea de acces la locație. Metoda locationManager:didRangeBeacons:inRegion returnează un array de CLBeacon cu câmpurile proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (distanța calibrată în metri) și rssi.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Proximitate imediată")
case .near:
print("Proximitate apropiată")
case .far:
print("Proximitate îndepărtată")
default:
print("Proximitate necunoscută")
}
}
}
Android nu are suport încorporat pentru iBeacon, deoarece protocolul este o soluție proprietară Apple. Cu toate acestea, cu ajutorul bibliotecilor terțe, cum ar fi AltBeacon de la Radius Networks (acum parte a organizației Open Beacon), dezvoltatorii pot integra iBeacon în aplicațiile Android. Biblioteca AltBeacon implementează scanarea pachetelor BLE, parsarea formatului iBeacon și emularea ranging și monitorizării regiunilor, similare cu API-ul iOS.
val beaconManager = BeaconManager.getInstanceForApplication(context)
beaconManager.beaconParsers.add(
BeaconParser().setBeaconLayout(
"m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
)
)
beaconManager.backgroundBetweenScanPeriod = 5000
beaconManager.foregroundScanPeriod = 1100
beaconManager.bind(this)
Formatul de parsare a iBeacon în biblioteca AltBeacon este definit de șirul layout: „m:2-3=0215” — verificarea a doi octeți ai markerului iBeacon, „i:4-19” — UUID de 16 octeți, „i:20-21” — Major, „i:22-23” — Minor, „p:24-24” — TX Power. Același format este suportat pentru Eddystone și alte protocoale, ceea ce face din AltBeacon o bibliotecă universală pentru lucrul cu beaconuri BLE pe Android.
Pe Android, lucrul cu iBeacon are trei limitări cheie: scanarea în fundal este limitată de producători (Xiaomi, Huawei, Samsung ucid adesea procesele de fundal), precizia RSSI este mai mică decât pe iOS din cauza diferențelor în stivele BLE, iar pentru scanare este necesară permisiunea ACCESS_FINE_LOCATION începând cu Android 6.0 și BLUETOOTH_SCAN începând cu Android 12.
Eddystone — protocol deschis de beaconuri BLE de la Google, prezentat în 2015. Spre deosebire de iBeacon, Eddystone suportă patru tipuri de pachete: Eddystone-UID (identificator fix), Eddystone-URL (transmiterea URL-ului pentru Physical Web), Eddystone-TLM (telemetria beaconului — nivelul bateriei, temperatura) și Eddystone-EID (identificator criptat pentru protecția împotriva clonării). Deși Google a încetat dezvoltarea Physical Web în 2022, protocolul Eddystone continuă să fie utilizat în soluții corporative.
| Parametru | iBeacon | Eddystone |
|---|---|---|
| Proprietar | Apple | Google (deschis) |
| Tipuri de pachete | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Date | UUID+Major+Minor | ID/URL + telemetrie |
| Suport nativ iOS | Da (CoreLocation) | Nu (prin CoreBluetooth) |
| Physical Web | Nu | Da (Eddystone-URL) |
| Securitate | Fără criptare | EID cu rotație de chei |
Alegerea între iBeacon și Eddystone depinde de platforma țintă și scenariul de utilizare. iBeacon este preferabil pentru aplicațiile iOS datorită integrării native cu CoreLocation și monitorizării regiunilor în fundal. Eddystone este mai potrivit pentru proiecte orientate spre Android și scenarii Physical Web, unde beaconul transmite URL fără instalarea aplicației. Pentru proiecte cross-platform, este adesea utilizat AltBeacon, care suportă ambele protocoale.
La implementarea iBeacon, dezvoltatorii se confruntă cu o serie de limitări care trebuie luate în considerare în faza de proiectare a arhitecturii. Neținerea cont corectă a acestor factori duce la funcționarea instabilă a navigației, declanșări false și descărcarea bateriei beaconurilor mai rapid decât termenul calculat.
Nivelul semnalului RSSI este supus unor fluctuații semnificative din cauza reflexiilor de pe pereți, structurilor metalice, prezenței oamenilor și altor dispozitive wireless în banda de 2,4 GHz. În interior, dispersia RSSI pentru un singur beacon poate atinge 10-15 dBm pe minut, ceea ce face calcularea distanței inexactă fără utilizarea filtrelor (netezire prin medie mobilă, filtrare Kalman).
iOS suportă monitorizarea a cel mult 20 de regiuni simultan pentru o singură aplicație. Pentru proiecte care necesită acoperirea unui teritoriu mare (aeroport, stadion), acest lucru nu este suficient. Soluția — comutarea dinamică a regiunilor: la intrarea într-o regiune, cele vecine sunt activate, iar cele îndepărtate sunt dezactivate.
Întârzierea între intrarea în regiune și primirea notificării poate fi de la 1 la 30 de secunde în funcție de condiții. iOS scanează beaconurile periodic pentru economisirea bateriei, prin urmare nu trebuie așteptată o reacție instantanee. Pentru scenarii critice din punct de vedere temporal (deschiderea ușii la apropiere), se recomandă utilizarea Immediate ranging, dar acesta funcționează doar în modul activ al aplicației.
Întrebări frecvente
iBeacon — este protocolul Apple pentru beaconuri Bluetooth Low Energy, care permite dispozitivelor iOS și Android să-și determine locația în interior cu o precizie de centimetri pe baza analizei nivelului semnalului (RSSI) al pachetelor BLE primite.
Bluetooth — este un protocol general de comunicație fără fir pentru transmiterea datelor între dispozitive, care necesită asociere. iBeacon — un protocol specializat peste BLE, destinat exclusiv difuzării identificatorilor fără stabilirea unei conexiuni. Beaconurile iBeacon nu transmit date — ele doar își semnalează prezența.
iBeacon funcționează în modul Advertising — beaconul transmite constant pachete BLE de difuzare cu informații ID. Dispozitivul primește pachetul, dar nu se conectează la beacon. Acest lucru permite economisirea bateriei beaconului (până la 2-3 ani de funcționare de la o singură CR2032) și detectarea pasivă a beaconurilor fără scanare activă.
Nu, iBeacon nu este destinat găsirii dispozitivelor. Beaconurile iBeacon sunt emițătoare staționare, iar iPhone acționează ca receptor. iPhone nu transmite semnale iBeacon (cu excepția funcției Find My, care utilizează un alt protocol pe bază de BLE). Pentru găsirea telefonului se folosesc alte tehnologii (rețeaua Find My, UWB).
Raza de acțiune a iBeacon depinde de setările beaconului și de condițiile mediului. Raza tipică: Immediate — până la 0,5 m, Near — până la 3 m, Far — până la 30-50 m. Cu beaconuri cu amplificator de semnal și în spații deschise, raza poate ajunge la 70 m, dar precizia determinării distanței la o astfel de distanță este minimă.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și