BLE and Apple

Apple supported BLE in its software and hardware early. Here is a little recap

  • The iOS5 SDK introduced Core Bluetooth framework that allows interact with BLE devices either as a central or a peripheral.
  • All iOS devices since the iPhone 4S support BLE.
  • The iOS simulator support BLE if your Mac supports it. The first Macs that support BLE are:
  • Mid-2011 MacBook air
  • Mid-2011 mac mini
  • Mid-2012 retina and non retina MacBook pro
  • Late 2012 iMacs

Knowing this, if you currently own a Mac and an iPhone or iPad, chances are very high that you can get started right now to code some BLE apps.

Developing BLE apps on iOS

When you develop an app that interacts with other hardware using BLE, you need to first ask these three questions:

  • Am I going to interact with a peripheral or central device ?
  • What is the profile, i.e. services and characteristics of the peripheral
  • Which framework or library am I going to use

Firstly, the answer of the first question allows to decide which type of BLE device the app going to implement. If device we are interacting with is a central, then the app will act as a peripheral. On the other hand, if the device that we want to communicate with is a peripheral, than our app will be a central device.
Secondly, clearly defining in advance the services and characteristics allows the app to seamlessly and correctly communicate with the BLE device. Without this, it will be like a blind communication.
Lastly, choosing the framework that suits you the most is very important when developing BLE apps. The first most important reason for me is because we need to perform many asynchronous tasks before exchanging the first bytes. The second one is that the commination may fail for many reasons. So choosing a framework that eases these tasks is very relevant.