All writing

Building My First Solo iOS App

No, I never finished or released this app, though I did get it working to the point where I was proud of it. It would've been cool, but honestly I was never passionate enough about it to take it any further, and apps like Portal are doing the same thing to a higher degree of excellence.

Working on Interlude in Xcode

TL;DR — I’m building an iPhone app called Interlude, using the knowledge of Swift I’ve gained by working at Dwell. It’s a small project that will give me the chance to build something start-to-finish, rather than just editing an existing codebase, so I’ll learn more about the overall native development ecosystem.

How I Learn

I’ve always learned new languages and frameworks by necessity, diving into existing codebases to make tweaks and eventually gaining the understanding to build more robust features.

I learned PHP by working on WordPress sites (who didn’t?).

I learned Rails by working on Agrilyst and Dwell.

I learned React and React Native by implementing more complex features at Agrilyst.

Now, at Dwell, I’ve had a chance to work with Swift and develop a native app.

Languages vs. Ecosystems

True understanding doesn’t come from editing existing code, it comes from starting from scratch and seeing a whole project through. Being able to play around in someone else’s codebase is one thing; being able to start something new is another.

The challenge with code isn’t usually the code itself; it’s understanding the ecosystem and conventions well enough to build something. Just understanding Ruby won’t let you build a Rails app — you have to know about installing gems, and spinning up a local server, and doing all the tangential things that allow you to start coding.

I don’t want to just be able to jump into an existing Swift project and make changes; I want to be able to start from scratch and create something new.

Starting from Scratch

With that in mind, I’ve started building Interlude, an unguided meditation timer for iPhone.

The basic premise is this: I want to make more space in my life to pray and meditate, and I like doing so with pleasant background ambience. I don’t want a British monk talking in my ear, or a soft voice explaining how to breathe more deeply. Apps like Headspace and Calm are focused on those guided meditations, and their unguided modes are afterthoughts.

Interlude is just the unguided mode. You can pick a scene — forest, beach, mountaintop, etc. — and listen to high-quality audio for a set amount of time. There are only three features: a meditation mode, a breathing mode, and a profile screen from which you can track your stats.

It’s as close to a “hello world” app as I can reasonably put in the app store.