Project Brief: Robo 3D App

Challenge

Robo 3D has produced several high-quality consumer-grade 3D printers. They wanted an iPhone app that looked and operated as smoothly as their printers and would enable their customers to control the 3D printing process from the iPhone or iPad in addition to the on-printer controls.

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