iBeacon, Apple'ın Bluetooth Low Energy beacon'ları için özel mülkiyet protokolüdür ve iOS cihazlarının iç mekanlarda santimetre hassasiyetiyle konumlarını belirlemesine olanak tanır. Protokol, UUID, Major ve Minor değerlerini içeren benzersiz bir tanımlayıcıya sahip BLE paketlerinin yayınına dayanır. Apple iBeacon Design Guidelines (2025)'e göre teknoloji, alışveriş merkezleri, müzeler, havaalanları ve stadyumlarda navigasyon için kullanılır ve cihazların aktif eşlemesi olmadan pasif algılamayı destekler.
Önemli noktalar
iBeacon, Apple tarafından geliştirilen ve WWDC 2013'te tanıtılan bir iç mekan konumlandırma teknolojisidir. Binaların içinde çalışmayan GPS'in aksine, iBeacon Bluetooth Low Energy beacon'ları kullanır — sabit tanımlama paketleri gönderen küçük pille çalışan cihazlar. iOS ve Android cihazlar bu paketleri alır ve sinyal seviyesine (RSSI) dayalı olarak beacon'a olan yaklaşık mesafeyi hesaplar.
iBeacon protokolü, Apple tarafından 2013 yılında iOS 7 ile piyasaya sürülen ilk büyük ölçekli BLE beacon standardı oldu. Başlangıçta teknoloji perakende sektöründe kullanıldı: Apple Store'lar, belirli bölgelere giren müşterilere indirimler hakkında bilgi vermek için iBeacon'u uyguladı. 2025 yılına kadar iBeacon altyapısı dünya çapında milyonlarca kurulu beacon'a ulaştı, ancak alternatif protokoller — Google'dan Eddystone ve açık kaynaklı AltBeacon — ortaya çıktı.
iBeacon beş ana senaryoda kullanılır: iç mekan navigasyonu (alışveriş merkezleri, havaalanları, müzeler), bağlamsal bildirimler (mağazaya girişte indirimler), iş akışı otomasyonu (yoklama işaretleme), lojistik ve depo yönetimi ve bir nesneye yaklaşıldığında içeriği otomatik oynatan turist rehberleri. ABI Research (2025)'e göre, BLE beacon pazarının 3,2 milyar cihaz olduğu tahmin edilmektedir.
iBeacon paketi, 2402, 2426 ve 2480 MHz frekanslarındaki BLE reklam kanalında iletilen bir Advertising PDU'dur (Protokol Veri Birimi). Paket formatı sabittir ve dört alandan oluşur: Apple iBeacon öneki (0x4C000215), 16 baytlık UUID, 2 baytlık Major ve 2 baytlık Minor ile mesafe kalibrasyonu için 1 baytlık TX Power. Toplam veri boyutu 30 bayttır ve tek bir BLE Advertising PDU'ya sığar.
| Alan | Boyut | Açıklama |
|---|---|---|
| Apple öneki | 9 bayt | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 bayt | Kuruluş veya uygulamanın benzersiz tanımlayıcısı |
| Major | 2 bayt | Bölge tanımlayıcısı (0-65535), örn.: mağaza numarası |
| Minor | 2 bayt | Nokta tanımlayıcısı (0-65535), örn.: raf numarası |
| TX Power | 1 bayt | 1 metre mesafede kalibrasyon sinyal gücü (dBm) |
iBeacon tanımlayıcıları üç seviyeli bir hiyerarşi oluşturur. UUID kuruluşa (örneğin bir mağaza zinciri), Major belirli mağazaya veya kata, Minor bölge içindeki belirli noktaya (kasa alanı, ürün departmanı) atanır. Bu hiyerarşi, uygulamanın farklı bağlam seviyelerine esnek bir şekilde yanıt vermesini sağlar: mağazaya girildiğinde (UUID + Major) uygulama kat haritasını yükleyebilir ve belirli bir departmana yaklaşıldığında (Minor) ürün bilgilerini gösterebilir.
TX Power alanı, beacon'dan 1 metre mesafedeki sinyal seviyesinin (RSSI) referans değeridir. Paket alındığında, cihaz gerçek RSSI'yı kaydeder ve şu formülle mesafeyi hesaplar: distance = 10^((TX_Power - RSSI) / (10 * n)), burada n ortamın zayıflama katsayısıdır (genellikle 2-4). Konumlandırma doğruluğu için TX Power'ın doğru kalibrasyonu kritiktir: 1 dBm'lik bir hata, 5 metre mesafede %30'a varan bir hataya neden olur.
iOS, beacon'a hesaplanan mesafeye dayalı olarak üç yakınlık bölgesi tanımlar: Immediate (0,5 metreden az), Near (0,5 ila 3 metre) ve Far (koşullara bağlı olarak 3 ila 30-50 metre). Kesin mesafe bildirilmez — yalnızca kategori. Bu kasıtlıdır: RSSI, girişim, sinyal yansımaları ve insan vücudunun etkisine karşı hassastır, bu nedenle kategoriler daha kararlı bir konum belirleme sağlar.
Immediate, cihazın beacon'dan birkaç santimetre içinde olduğu doğrudan temas bölgesidir. Maksimum hassasiyet gerektiren senaryolarda kullanılır: terminal ödemesi, dijital kilit açma, kontrol noktasında doğrulama. Immediate bölgesinde RSSI genellikle -30 ila -60 dBm arasındadır.
Near bölgesi, iBeacon'un ana çalışma alanıdır ve 0,5 ila 3 metre arasındaki mesafeleri kapsar. İç mekan navigasyonu için kullanılır — örneğin, ürün teşhirine yaklaşıldığında uygulama ayrıntılı bilgileri gösterir. Near bölgesinde, TX Power = -59 dBm kalibrasyonu ile RSSI -60 ila -80 dBm arasında değişir.
Far, beacon sinyal algılamasının maksimum bölgesidir. Bir bölgeye giriş izleme için kullanılır (örneğin, bir alışveriş merkezine giriş). Far mesafesinde RSSI genellikle -80 dBm'den zayıftır ve mesafe belirleme doğruluğu önemli ölçüde düşer. Giriş izleme için, kesin bölge belirleme yerine sistem API region monitoring kullanılır.
iBeacon bölgesi, UUID (ve isteğe bağlı olarak Major + Minor) tarafından tanımlanan sanal bir alandır. iOS, CLLocationManager ile aynı anda en fazla 20 bölgeyi izlemeye olanak tanır. Bir bölgeye girildiğinde, sistem uygulamayı arka planda veya kapalı durumda bile uyandırır ve locationManager:didEnterRegion delegesi aracılığıyla bir bildirim gönderir. Bölgeden çıkıldığında locationManager:didExitRegion çağrılır.
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)
Bölgeyi (Immediate, Near, Far) belirlemek için ranging kullanılır — gerçek zamanlı beacon taraması. İzlemenin aksine, ranging yalnızca uygulamanın aktif modunda çalışır ve konuma erişim izni gerektirir. locationManager:didRangeBeacons:inRegion yöntemi, proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (metre cinsinden kalibre edilmiş mesafe) ve rssi alanlarına sahip bir CLBeacon dizisi döndürür.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Anlık yakınlık")
case .near:
print("Yakın mesafe")
case .far:
print("Uzak mesafe")
default:
print("Bilinmeyen yakınlık")
}
}
}
Android, iBeacon için yerleşik desteğe sahip değildir çünkü protokol Apple'ın özel mülkiyet bir çözümüdür. Ancak, Radius Networks (şimdi Open Beacon organizasyonunun bir parçası) tarafından geliştirilen AltBeacon gibi üçüncü taraf kütüphanelerle geliştiriciler, Android uygulamalarına iBeacon'u entegre edebilir. AltBeacon kütüphanesi, BLE paket taraması, iBeacon formatı ayrıştırması ve iOS API'sine benzer ranging ve bölge izleme emülasyonunu uygular.
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)
AltBeacon kütüphanesinde iBeacon ayrıştırma formatı, layout dizesiyle tanımlanır: “m:2-3=0215” — iBeacon işaretçisinin iki bayt kontrolü, “i:4-19” — 16 baytlık UUID, “i:20-21” — Major, “i:22-23” — Minor, “p:24-24” — TX Power. Aynı format Eddystone ve diğer protokoller için de desteklenir ve AltBeacon'u Android'de BLE beacon'larla çalışmak için evrensel bir kütüphane haline getirir.
Android'de iBeacon ile çalışmanın üç temel sınırlaması vardır: arka plan taraması üreticiler tarafından sınırlanmıştır (Xiaomi, Huawei, Samsung sık sık arka plan işlemlerini sonlandırır), BLE yığınlarındaki farklılıklar nedeniyle RSSI doğruluğu iOS'tan düşüktür ve Android 6.0'dan itibaren ACCESS_FINE_LOCATION ve Android 12'den itibaren BLUETOOTH_SCAN izni gereklidir.
Eddystone, 2015 yılında tanıtılan Google'ın açık BLE beacon protokolüdür. iBeacon'dan farklı olarak Eddystone, dört paket türünü destekler: Eddystone-UID (sabit tanımlayıcı), Eddystone-URL (Physical Web için URL iletimi), Eddystone-TLM (beacon telemetrisi — pil şarjı, sıcaklık) ve Eddystone-EID (klonlamaya karşı koruma için şifrelenmiş tanımlayıcı). Google 2022'de Physical Web'in geliştirilmesini durdurmuş olsa da, Eddystone protokolü kurumsal çözümlerde kullanılmaya devam etmektedir.
| Parametre | iBeacon | Eddystone |
|---|---|---|
| Sahibi | Apple | Google (açık) |
| Paket türleri | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Veri | UUID+Major+Minor | ID/URL + telemetri |
| Yerel iOS desteği | Evet (CoreLocation) | Hayır (CoreBluetooth aracılığıyla) |
| Physical Web | Hayır | Evet (Eddystone-URL) |
| Güvenlik | Şifreleme yok | Anahtar dönüşümlü EID |
iBeacon ve Eddystone arasındaki seçim, hedef platform ve kullanım senaryosuna bağlıdır. iBeacon, CoreLocation ile yerel entegrasyonu ve arka planda bölge izlemesi sayesinde iOS uygulamaları için tercih edilir. Eddystone, Android odaklı projeler ve beacon'ın uygulama kurulumu olmadan URL gönderdiği Physical Web senaryoları için daha uygundur. Çapraz platform projelerinde, her iki protokolü de destekleyen AltBeacon sıkça kullanılır.
iBeacon uygulamasında geliştiriciler, mimari tasarım aşamasında dikkate alınması gereken bir dizi sınırlamayla karşılaşır. Bu faktörlerin yanlış değerlendirilmesi, kararsız navigasyon, yanlış tetiklemeler ve beacon pillerinin beklenenden daha hızlı bitmesine yol açar.
Sinyal seviyesi RSSI, duvarlardan yansımalar, metal yapılar, insanların varlığı ve 2,4 GHz bandındaki diğer kablosuz cihazlar nedeniyle önemli dalgalanmalara maruz kalır. İç mekanlarda, aynı beacon için RSSI değişimi dakikada 10-15 dBm'ye ulaşabilir ve filtreler (hareketli ortalama, Kalman filtresi) kullanılmadan mesafe hesaplamasını hatalı hale getirir.
iOS, uygulama başına en fazla 20 bölgenin aynı anda izlenmesini destekler. Geniş alan kapsamı gerektiren projeler (havaalanı, stadyum) için bu yetersizdir. Çözüm, dinamik bölge değiştirme kullanmaktır: bir bölgeye girildiğinde, komşu bölgeler etkinleştirilir ve uzak bölgeler devre dışı bırakılır.
Bir bölgeye girme ile bildirim alma arasındaki gecikme, koşullara bağlı olarak 1 ila 30 saniye arasında değişebilir. iOS, pil tasarrufu için periyodik olarak beacon'ları tarar, bu nedenle anında yanıt beklenmemelidir. Zamana duyarlı senaryolarda (yaklaşıldığında kapı açma), Immediate ranging kullanılması önerilir, ancak bu yalnızca uygulamanın aktif modunda çalışır.
Sıkça sorulan sorular
iBeacon, Apple'ın Bluetooth Low Energy beacon'ları için protokolüdür ve iOS ve Android cihazlarının, iletilen BLE paketlerinin sinyal seviyesi (RSSI) analizine dayalı olarak iç mekanlarda santimetre hassasiyetiyle konumlarını belirlemesine olanak tanır.
Bluetooth, cihazlar arasında veri iletimi için genel bir kablosuz iletişim protokolüdür ve eşleme gerektirir. iBeacon, BLE üzerinde özelleşmiş bir protokoldür ve yalnızca bağlantı kurmadan tanımlayıcıların yayını için tasarlanmıştır. iBeacon beacon'ları veri iletmez — yalnızca varlıklarını bildirir.
iBeacon, Advertising modunda çalışır — beacon, kimlik bilgileriyle birlikte sürekli olarak yayın BLE paketleri gönderir. Cihaz paketi alır ancak beacon'a bağlanmaz. Bu, beacon pilinden tasarruf sağlar (bir CR2032 ile 2-3 yıla kadar) ve aktif tarama olmadan beacon'ların pasif olarak algılanmasına olanak tanır.
Hayır, iBeacon cihazları bulmak için tasarlanmamıştır. iBeacon beacon'ları sabit vericilerdir ve iPhone alıcı olarak görev yapar. iPhone, iBeacon sinyalleri göndermez (Find My işlevi hariç, BLE tabanlı başka bir protokol kullanır). Telefonu bulmak için diğer teknolojiler kullanılır (Find My ağı, UWB).
iBeacon'un menzili, beacon ayarlarına ve çevre koşullarına bağlıdır. Tipik menzil: Immediate — 0,5 m'ye kadar, Near — 3 m'ye kadar, Far — 30-50 m'ye kadar. Sinyal yükselticili beacon'lar ve açık alanlarda menzil 70 m'ye ulaşabilir, ancak bu mesafede mesafe belirleme doğruluğu minimumdur.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun