This awesome adventure is the opportunity for me to update my mobile app skills. A lot of new things have appeared and among them: Swift. The brand new language from Apple especially designed in the aim of replacing Objective-C. Swift brings a cleaner syntax but above all a functional paradigm. It took me some times to adopt it but now I feel more and more at ease with it.
Before coding anything, I wrote a specification document describing each views and features of the app. That helped me to split the application into several smaller parts. Each of them has been or will be coded in a sprint. Also, I defined what kinds of messages will be exchanged between the mobile app and Aimo. The protocol I chose for communication is Bluetooth Low Energy (BLE). We didn’t really have the choice but anyway this is the best one. The wifi would have quickly drained the battery of the smartphone as well as Aimo’s one. On the other hand, the NFC could have been an interesting option but is not opened to developer on iOS and its range of a few centimeters only wasn’t enough for our needs.
I am also writing some pieces of the firmware of Aimo. Especially the communication part and its internal database. This side of the project is also very interesting for me. This is an excellent way to dust off my knowledge in C language and it is still challenging to write code for devices with memory constraints.
Source files of the iOS app and the firmware are versioned using git.