Projects

In my spare time, I’ve developed several side projects to explore ideas that I’m interested in. A few notable ones are described here.

Scrolling­Content­View­Controller

This open source Swift library simplifies the creation of a scrolling view controller filled with arbitrary content.

In Interface Builder, Scrolling­Content­View­Controller exposes a view controller outlet that specifies a content view that should be made scrollable. Everything else is taken care of automatically.

Although Scrolling­Content­View­Controller has a singular purpose, its creation required a deep exploration of the mechanics of keyboard presentation handling on iOS, which can be surprisingly involved. This library correctly handles many undocumented special cases, including device orientation changes, sequences of view controllers with shared keyboards under a navigation controller, and additional safe area insets.

The Fourth Dimension

This iOS app explains the mathematical concept of a tesseract, which is the four‑dimensional analog of a cube.

The Fourth Dimension is a 30‑page interactive book written in simple, everyday language to target a wide audience. Instead of static illustrations or videos, the user engages with a four‑dimensional geometric model.

This app has a 4.8 star average from 5,600 ratings worldwide. It has been featured in the App Store several times, and is particularly popular in China. Despite the fact that The Fourth Dimension is an educational app about abstract mathematics, 50,000 copies have been sold at $2.99.

Special Relativity

I’m now designing an app to explain Einstein’s theory of special relativity, which describes the surprising, unintuitive ways in which time and distance behave for fast‑moving objects.

As with The Fourth Dimension, this app will be built around interactive models. My goal is that the user will be able to develop an intuitive feel for the mathematics of spacetime by playing with it directly, instead of learning the underlying equations and struggling to visualize them.