From the desk of Alasdair Monk

From idea to AppStore in 2 weeks

I have long been fascinated with iPhone apps and held up those who can make them as gods amongst men, as I do with plumbers, mechanics and just about anyone who possesses knowledge of things that to me seem unknowable.

I like to think of myself as a dabbler in code, but really my strengths lie in design. I reasonably successfully taught myself PHP, Ruby (with the ongoing aid of Rik Lomas & Dan Howells) and Javascript, but making an iPhone app bears little resemblance to web development, and I had resigned myself to the fact that making apps for my shiny phone was just going to be something I probably wouldn't be able to do without being able to download the skillset directly into my brain like in 'The Matrix'.

But I sat down and did it and, what's more, I didn't even need Morpheus or probes. I gave myself two weeks to learn iPhone development and release an app, and I made my self-imposed deadline.

Recently, I released my first app ever into the AppStore. It's called Lines, and it's a simple app to check the status of the London Underground.

This is the short story of how I went from being completely ignorant of app development to a couple of thousand sales, a #2 spot in the travel category and naming my as-of-yet unbought yacht.

Ruby Motion is key

I can't stress this enough to anyone from a web development background, if you want to make apps the only way you're going to swim and not sink in Objective C is to avoid the awkward language entirely and go and buy Ruby Motion.

Ruby Motion immediately makes things a little more comfortable but still leaves you with the biggest learning curve of all…

You can't avoid iOS libraries

This is in fact, a huge benefit of Ruby Motion, although it may not seem like it at first. Ruby Motion doesn't abstract away any of the native iOS libraries. This means you call exactly the same functions and use the same classes as any 'regular' iPhone developer.

This is great in the long run, as you'll always have access to the latest iOS features and avoid a whole load of abstraction bugs BUT, and it's a big butt, you need to learn the concepts that make iOS apps and this is a huge learning curve.

The best place to start is the Ruby Motion cookbook and look at lots of sample code. The cookbook especially will help you learn how to translate ObjC into ruby. By looking at sample code, you'll get a feel for how UI elements work and how your apps are supposed to be structured. For even more resources, Kyle Bragger has put together an invaluable set here.

Bubble wrap & sugar cubes

Once you've grasped the basics of native iOS libraries, you can safely start using some Ruby wrappers for them which will speed up development time and make your code more legible and much more Ruby-esque. Both BubbleWrap & Sugarcube contain a wealth of wrappers for iOS libraries from using GPS to handling navigation controllers.

They'll let you turn this:

UIApplication.sharedApplication.openURL(NSURL.URLWithString(url))

into this:

url.nsurl.open

Some won't like the abstraction these kind of libraries afford, but I do. A lot.

CocoaPods & MotionPods = <3

Once you start getting your hands dirty, you'll want to start getting fancy. CocoaPods are to Obj C what gems are to Ruby; there's a wealth of them available and they'll let you do some very nice things quite simply. Using MotionPods you'll be able to access these ObjC classes from within Ruby and they work a treat. I used the dynamic duo of JASidePanels and MBProgressHud in Lines. They saved me a huge amount of time and add a lot of polish to the app.

Publish + ??? = Profit

Publishing to the AppStore is a somewhat arduous process that involves all sorts of complex stuff regarding certifcates and codesigning. Luckily XCode and Ruby Motion make most of this straightforward. There's a great post here about readying Ruby Motion apps for app store.

Once I submitted to Apple I spent a nail-biting FOUR WHOLE DAYS waiting for them to review my app. I haven't been that nervous since waiting for my A-level results, except this was something that really mattered and was going to possibly affect the course of my life.

Luckily for my fingernails, Apple approved Lines and it went into the AppStore moments later. Lines was featured the Metro newspaper five days after launch which saw it becoming the 40th bestselling app in AppStore and earning me enough pennies to buy some Dominos pizza.

So, if you're a web developer or designer or just someone with a passing interest in making your own app, you can do it.

It's not as difficult as it looks.

It won't be easy. Your brain will hurt. Your fingers will weaken.

But you will do it, and you'll have the weakened fingers and strained bloodshot eyes to prove it.

Go forth and app.

Download Lines


Follow @almonk

Now read Improving the forgotten password process