Challenge
Solution
Working with Robo 3D’s graphic designer, we were able to create an iOS app that met their needs. Users are able to connect their printers to the app, start new print jobs and monitor existing print jobs. The app can also cancel print jobs, re-orient print heads, heat the print tools or print bed.
A second stage of app development involved enabling users to access 3D models stored in Dropbox, Google Drive, or on 3rd Party model websites such as Thingiverse and MyMiniFactory.
Insights
The app relies heavily on REST APIs to communicate with and control the various printers as well as to connect with 3rd party APIs including Dropbox, Google Drive, Thingiverse, and MyMiniFactory.
One particularly fun aspect of the app develop was creating the functionality where the app remotely configures a printer’s Wi-Fi access. This was accomplished via Bonjour. One aspect of development I was surprised by was the sheer volume and complexity of the JSON information the app would need to parse and utilize. While initially I was handling the JSON parsing by hand in Swift, I eventually moved to using Gloss via Cocoapods which made life much easier.
Technologies and Methods
Requirement | Solution |
---|---|
Printer Communication & Control | OctoPrint |
User Communication | Local & Push notifications |
Analytics | Mixpanel |
Crash Monitoring | Firebase |
Login & Authentication | Facebook SDK, OAuthSwift |