What is Vicinity?

Vicinity replicates iBeacons and supports broadcasting and detecting low-energy bluetooth devices in the background.

It is built with CoreBluetooth framework and doesn’t use CoreLocation to implement iBeacons. CoreLocation itself limits how it can be used when apps are in the background, whereas CoreBluetooth fully supports background operations.

What is iBeacon?

The term iBeacon describes the ability of low-engergy bluetooth devices to broadcast and detect proximity of devices by analyzing the received signal strength of the wireless bluetooth signal.

In the iOS SDK iBeacons are implemented in the CoreLocation framework—which places many limits on how it can be used in the background.

The CoreBluetooth framework itself supports RSSI (received signal strength indication), which is all that it is needed to replicate the iBeacon sections of CoreLocation.

The problem with using CoreLocation to detect iBeacons is this functionality is very limited once an app is in the background. CoreBluetooth has much greater background support of iOS apps. With CoreBluetooth, you can broadcast as a peripheral and detect as a central while in the background. The framework will even allow limited actions within your app code while these services are running.