Writing Custom Software For Smart Bluetooth IoT Devices By Reverse Engineering On Mac And iPhone
The amount of smart devices that communicate through Bluetooth, specifically BLE (Bluetooth Low Energy) keeps on growing. Everything claims to be “smart”, “cloud” and “AI” today. This includes washing machines, coffee makers, and even electric tooth brushes. I recently got a remote controlled toy race track with four vehicles and several race track parts. It came with the usual challenges of “smart things”; software is immature, doesn’t work the way I’d expect and it requires a number of phones to even play — and of course it’s always online. Not surprising.
As an indie developer, my first reaction is always: how can I build software for it? In this article we’ll be going through the process of reverse engineering the BLE protocol and building a custom app for macOS, iOS, iPadOS, watchOS or tvOS using Xcode and Swift with SwiftUI. Further, we’ll look into writing software for BLE on the Mac. Although this is all possible to do on Windows and Linux as well, we’ll focus on the Mac as it’s not just popular among developers, but also comes with very useful tools and libraries. At the end we’ll have some quick insights into building your own smart things for iPhone apps.