My first iOS app: You've just gotta fight your way through.


Several months ago I got a prototype of my first attempt at an iOS app working, but I'm still quite far from being ready to release it to the app store. Some of the reasons for this are technical, and some are not. It's these non-technical issues that have really been problematic so far, and the introduction of iOS 7 has made me completely rethink what I had already figured out. During this difficulty, I heard this great quote from Ira Glass, the host of NPR's excellent radio show (and podcast) 'This American Life', that really cuts to the core of what's going on. It's a long one, but well worth the read if you too are starting out on a creative project.

"Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. A lot of people never get past this phase, they quit. Most people I know who do interesting, creative work went through years of this. We know our work doesn’t have this special thing that we want it to have. We all go through this. And if you are just starting out or you are still in this phase, you gotta know its normal and the most important thing you can do is do a lot of work. Put yourself on a deadline so that every week you will finish one story. It is only by going through a volume of work that you will close that gap, and your work will be as good as your ambitions. And I took longer to figure out how to do this than anyone I’ve ever met. It’s gonna take awhile. It’s normal to take awhile. You’ve just gotta fight your way through." - Ira Glass (source)

Ira is talking about writing, but this really applies to any creative project. The problem is that you get this idea in your head - Ah ha! I can make a thing that is so much better than this crappy thing by doing such and such! - but, you can't execute on it the way you believe it should be executed. If this thing you come up with happens to be within your skill set already then, boom, you're off and running.  But if it's something that is outside of your wheelhouse, then Ira's Law (a term I'm coining here) kicks in, and things can become much more difficult. This thing you make turns out to suck, or so you think. It probably does. How do you get to that place you visualized when you started this project?

In this case I had been looking for a good excuse to learn how to create iOS apps. The idea came: I saw an opportunity to create an app for a niche market in the App Store that is lacking in quality options. Even in prototype form, I found my app to be significantly better than all of its existing competitors. But that doesn't matter; I need to ship something or I can't even consider myself a competitor. It's the aesthetics I'm struggling with primarily, and it's what I believe is most important to set my app apart. I'm in that phase that Ira talks about, the phase where the most important thing you can do is a lot of work. And that's what I'm going to have to do to come up with something that is up to the standard that I've decided is necessary.

What is important now is figuring out how to fight my way through this and ship something. For the technical challenges involved with simultaneously learning object oriented programming concepts, Objective C, the model-view-controller programming paradigm, and the seemingly infinite set of APIs available in iOS I fall back to advice one of my college professors gave me in undergrad: Sometimes you've gotta feel your way through the dark. It's been working, and slowly I'm getting there. I think I'm going to be ok with the programming part. 

To push things along, I've done two important things that have become excellent mental aids: 

There's a deadline: This app will ship when iOS 7 ships. For no reason other than aesthetics, it will require iOS 7 or higher.

The problem has been bounded: I've established a feature roadmap. This was a critical exercise, as there is now a light at the end of the tunnel for version 1.0.

The next step is to work through what the heck the design of this app is going to be. I've got the features down, but the design (especially with the curveball thrown by iOS 7's new look) will take some trial and error. The key is it's not just the aesthetic, "Design is how it works", to quote Steve Jobs. And I've got a lot of work to do to figure out how to make it work while I close the gap between my abilities and taste.