The last week or so I've been playing around with a Bluetooth technology called iBeacon by Apple. Basically it allows an iOS device (e.g. iPhone, iPad, or estimote) to advertise a signal to other iOS devices within a certain proximity. Most examples demonstrated are museum or merchant focused. As a merchant for example, a store might place an iBeacon in a static location, such as the entrance, and it would begin transmitting to devices that are organically carried through its doors. Once a receiver detects the iBeacon signal it might notify the user of special discounts or coupons or a myriad of other marketing ploys. A museum might place iBeacons discreetly at each painting, and after downloading their app a user might get historical information and the painter's biography delivered to their phone as they navigate the museum.
While I like the museum examples presented, frankly I'm not excited about an increased bombardment of advertising as I walk through the world. However, beyond the merchant and museum applications, I think there is a lot of potential in the peer to peer application space. In particular, ideas that become possible when a device both advertises and receives iBeacon signals. Imagine walking into the subway and being challenged by another user on the same train to a game of Rock, Paper, Scissors. Or a simple dating app that advertises availability while out at the bar. Or a multitude of other gaming applications (see Nintendo's "Street Pass for examples). Not to mention ideas related to daisy chaining iBeacon devices into areas where reception and wifi isn't available.
There is one very big problem with the technology as it now stands that prevents these ideas from taking off. A iOS device cannot advertise while the app is running in the background!
It is possible to receive iBeacon signals while in the background, or even if the application is closed (after the latest update - see this). However, advertising those signals can only be done while the app is running in the foreground.
This is definitely a bummer. Fortunately there are ways using traditional Core Bluetooth to create these applications - but it looks rather difficult. See this github project as an example. I'm also unsure what the battery draining implications are, or if the application has to be running in the background. I will be exploring this option in the upcoming weeks to get at least one idea off the ground.
I believe the lack of background broadcasting really reduces the peer to peer applications that would be possible otherwise. Apple has got to know this, right? Or is there a reason why background advertising is not supported?