Masterclass: iOS development in Objective C

That’s one pompous title, I admit. But I have no better idea how to call this series of posts I wanted to write for a long time. So let’s add a bit of context to it:

…for non-Computer Science developers.

I’ve been working on ObjC/iOS apps for a very long time, since day 1 of the iPhone SDK. Before that, I was (as it’s now called) front-end developer for 15 years, mostly working in HTML (since 2.0 times baby), witnessed the CSS birth and rise. Been part of the first batch of Javascript developers back in Netscape Navigator 2 then all the way through its rise into plethora of framework abominations “real” (sic!) developers made out of it when they were forced to use it. I did it because I was a designer at first, an UX designer at heart and web was new and exciting canvas for both.

You can see one thing missing from this retrospective. I was never a Computer Science student.

I did attend and pass some CS classes at Belgrade’s University but that institution was very true to its name – School of Electrical Engineering; meaning that hardware was the main topic. I never actually learned things I would later be using as part of my work (which is why I bailed out halfway through).

I never read things like Code Complete. Nor learned about Inversion of Control and other acronym-ed terms CS people like to name their best practices. I picked them up along the way, often not knowing they’re called that.

My way of working was to first understand the problem in layman terms, think of the best way to resolve it and code it as best I knew at the time. Then iterate each year on that knowledge and re-factor as often as I could. More than once I would go to educate myself by reading about…say Model-View-ViewModel, only to realize I was already doing it for months before.

If you are in the same camp, this series of posts will be for you. I will write short, tightly focused posts that document the way I write iOS code. I’ll strive to answer questions like “what’s the best way to write this particular thing without the big picture hoopla”.

There are many rookie mistakes you can make, some even picked up from Apple’s own sample code, which often have many shortcuts that very same Apple presenter would never write in an actual project. Devs like us see that code and take it to heart. Then we write those same lines of code for years until we read some enlightening blog post that shows us the better way. And then it clicks. Falls into place, becomes part of your thinking.

I am certain I will make mistakes. I am certain I will transgression some holly pattern, The Right Way. There will be plenty of room to nitpick. It happened to me back when I was a web developer. But I learned and moved on. As Ash Furrow said – don’t be afraid to make mistakes and blog whenever you learn.

Each post will be tagged appropriately thus you’ll be able to easily reference the whole series.