iOS Development for Humans
Jan. 7th, 2011 03:24 pm
Until last week, I used to tell people that "if you know one language, you have a fairly decent grounding in them all". I am now forced to revise that to say "a fairly decent grounding in them all except Objective-C". Everything that I've seen done in it seems to take about three times as long as doing it in anything else, using unnecessarily awkward method names like application:didFinishLaunchingWithOptions and very little reasoning as to why you have to declare things in three separate places, synthesize variables (whatever this does) or why Interface Builder is quite so unhelpful. A particular favourite of mine so far is the way that you log a formatted string, which begins NSLog(@"@%",.
So I took a step back, both in terms of what I was doing and back before the Internet, and have got iPhone Application Development for Dummies out of the library. Previously, I had thought I could just learn anything online, but as I seem to be learning to program from scratch again, the piecemeal tutorials offered by the Internet are just too numerous and chaotic to be helpful. I know that in the back of my mind, even though declaring an array seems so unnecessarily roundabout now, people do get past its seemingly wilful obtuseness and successfully use this - I mean, I've been looking at tutorials on Youtube by someone who sounds like he's 13, and even he seems to just naturally accept what an IBOutlet is and why you have to drag connections from your UIPageViewController elements to your File's Owner.
So far, the book has advised me that "You don't use frameworks so much as they use you" and "it lets the programmer know where he or she is essential", which both sound pretty much like my experience with the Xcode environment so far. I'm fairly confident that by being explained things from the start rather than trying to adapt my existing knowledge to suit the language as I've done with everything else before, I can get on and do something useful with it.
Can I also just take a moment to reiterate that by Christ, Americans are loud? This is the least silent library that I've ever been in. People walk past the desks chatting like they're on opposite sides of the street from each other, some toddler set off the fire alarm a minute ago, and there's someone at the desk down the corridor bellowing his way through an anecdote about window blinds.
(And to those wondering about Boxplode, below - that was done using a framework that sits on top of this language, which abstracts away everything and is significantly less mad than doing it all with Apple's tools.)