The CoreBluetooth interface can be restrictive, but the BLE functionality that it exposes is so consistent. That “just works” on a whole other operating system is incredibly valuable. Then you have Android where something for one phone doesn’t behave the same way on another phone, and all the work you pour into it gets you no closer to a functioning desktop app.