*TL;DR - *App developers, I salute you. You do hard, expensive work.

Around 6 months or so ago, I bought myself an Apple iOS Developer License. The main reason behind this decision was a vain attempt to motivate myself to get to grips with the Objective-C programming language, and hopefully produce a sellable app within the year.

This did not happen. Instead, I’d find myself opening Xcode for about 20 seconds at a time, before getting terrified by words like “header file” and “compile and run” and running back to Textmate with my tail between my legs. Why can’t everything be as simple as CSS?

I digress. One day, a few weeks ago now, I decided to sit myself down with Xcode and suss out our differences. It was mildly fruitful - the result of about 6 hours of work can be seen sitting proudly on the homescreen on my iPhone and iPad. Helveticlock is actually something I’d wanted to do for some time, and kinda-sorta had a go at, too. The idea was to create an insanely simple clock application for iOS that just told the time, and nothing else.

Why? Well, I often find myself sitting around at home watching movies on my computer. After about 7 hours of that, I think “I’d better get dressed. I wonder what time it is?” Alas! In order to tell the time, I’d have to exit the full-screen mode my movie was playing in. If only there was a simpler way! If only the time was display in big, glorious Helvetica on my iPad which is conveniently standing upright on my desk. Yes. I’m that lazy. Sue me.<!– more –>

So after scrambling around the internet, finding tutorials and tweeting iOS developers, and a few hours of head-scratching and “Huh?” moments, I finally had a clock running on my iPad. A few hours. Let’s put that into perspective: the equivalent application that I made in HTML/CSS was made in about 10 minutes - a length which would be at least halved if I actually knew JavaScript and wasn’t fumbling my way through it all. That’s a staggering time difference.

It’s staggering, but it’s not particularly surprising. Consider me, the author - I know nothing about programming. I hacked together a web application - the source code to which I hope never sees the light of day for shame of how badly coded it is - through weeks of trial and error coding. But native applications are on an entirely new level of complexity.

I ask a lot of my developer friends how I should go about learning Objective-C properly, and they always say the same thing. “Learn Java. Then, learn C. Then you can learn Objective-C.” What? I have to learn 3 languages in order to make the next Angry Birds? But in hindsight, it makes sense. Java and C would certainly help enforce the MVC programming style required to make a decent application, as well as give you a head-start with the Objective-C language itself. But I’m far too impatient to do that. I dove into jQuery without caring for JavaScript (though admittedly, I find myself using vanilla JS more and more these days). I’m used to human-readable languages like HTML - which is basically English - and CSS. I’ve led a cushioned life.

And then there’s the App Store submission process. Long story short, I must have spent about 50% of the development time for my Helveticlock app simply trying to get it into Apple’s hands - something I still haven’t managed to do. It’s mind boggling. I admire iOS developers for the pain they must go through during the App Store submission process alone. My hat to you, gentle(wo)men.

The Alternative

But Dan,” I hear you cry, “surely having been the designer of Owlr, you of all people would be an advocate for the mobile web app?” Wrong. I feel like the mobile web app is definitely a stopgap. They don’t offer the fluidity or device integration of a native application, and that’s a problem. If your app isn’t a pleasure to use, people won’t use it. And I’ve never used a web app that was better than the native alternative. Well, except Facebook.

Native apps are expensive. They take months to build - and even then, you have to patch them on a regular basis. It takes years to learn the languages required to build them. The submission process is incredibly painful. And yet it pays off so well. Those few short hours have given me a lifetime of respect for the developers of native applications for all platforms. I don’t think I’ll be renewing my developer license - the development role is best left for the masters.