This is a story of how I got the air quality sensor to transmit its data via LoRa, from the balcony of my flat, over LoRaWAN nano-gateway to TTN router in the Netherlands, then to my relay server elsewhere in Europe, and to the database on the Raspberry Pi in the living room of the same flat. (Not) just because it can™.
It’s been a while since I deployed the WiPy-powered air quality monitor on my balcony. I have since replaced the microcontroller with a LoPy4 to enable LoRa connectivity, and I switched to a custom-made PCB.
Accidentally inspired by my colleagues during a casual chat, I developed the the ESP32-powered Bluetooth Low Energy button that triggers shell commands on a Mac.
Base iOS client version 3.5.2 is a build number 2259. Base 2.3 from January 2013 was a build number 270. Roughly 2000 builds in 5 years means roughly 8 builds every week, and if you won’t optimize it to be a streamlined task, it can become a painful experience.
If I told you Base iOS client takes around 3.5 minutes for a clean build on a decent MacBook Pro (Mid 2015) you would probably say it’s not that bad, considering around 2000 classes and 30+ cocoapods. However, since we haven’t ever worked specifically on build time optimization, we surely could do something to cut it down a bit.
Have a read to get a grasp of what can happen when you work hard on new features and limit maintenance work to bug fixes.