So you’ve decided that iOS development is for you, or maybe you haven’t and you need some convincing. You have heard or read success stories on small ideas generating tons of money in the Apple Store, and your keen to get on board, but your afraid of the overwhelmingly large iOS documentation, or worse, having your app rejected by Apple! Don’t fear, I was, and still am of that opinion.
My name is Nick Reffitt and I have been designing and developing websites for 5 years, I am also studying Computer Science at the University of Kent, so my underlying understanding of programming is “work in progress” – practically all the modules lean towards Java in one way or another, so my knowledge of C/C++/C#/Objective-C is practically zero. This is a story of my first steps into learning iOS development. Please bare in mind that this might not be for you, and you may find a different approach better suited to you, all I am able to offer is my own experience.
The First Steps: Hunting for a “Good” Tutorial
I started off reading articles almost anywhere I could online on what is the best way to learn how to create an iPhone app, I wasn’t expecting to develop something amazing, but just something basic. Almost every article I read pointed me to the Apple’s iOS Dev Center, so I had a peak.
There’s no clear ‘this is how you get from A to B’ guide on there, but after a little digging you can find helpful guides for when you are starting out. As you read more on iOS you will quickly realise that you need a fairly good understanding of the language Objective-C. It’s a ‘superset’ language of C, which basically means it is a new bunch of syntax, stitched onto the old C language.
The guide on Objective-C in the iOS Dev Center bored the heck out of me, I just couldn’t face it, and it didn’t sink in. Many others would say I am wrong to think that, but I felt a crash course would serve me better.
Finding a Crash Course
So I hunted around on MobileTuts+ to see if there was anything juicy, but the coverage on iOS is a bit flaky, so I turned to Lynda.com, they have a fantastic course called Objective-C Essential Training. They assume some knowledge of programming, but you don’t need to be an expert, or even be comfortable in object-oriented programming. Don’t assume that you will learn everything you need to know about Objective-C, but I found that this gave me a good understanding of the core syntax, and hopefully I will pick up bits and pieces of knowledge on the language along the way.
…But I’m new to programming!
I had a dig around on StackOverflow before I came across Lynda’s tutorials and I found Programming in Objective-C by Stephen G. Kochan to be the most highly recommended book for absolute beginners. Even if you are comfortable in programming, you should still buy this book, its a great reference and very well written for all skill sets.
The book I have fallen in love with
When I want to learn a new language, I always want to learn from the book that offers practical code examples, and that is written for an easy read. I cannot stress how brilliant the book Learning iPhone Programming Development by Alasdair Allan is.
The book, from beginning to end, is written in a style which forces you into Xcode and making you write out all the examples, each code example is easy to follow, and after a bit of ‘spoonfeeding’, Alasdair gets you to navigate yourself through an exercise. The chapters are short, concise, and keeps you interested. I even read chapters on my journey to and from Bruges the other weekend. To really grasp any language, you need to write out it’s code examples, and that’s what I did as soon as I got home.
I personally can’t take in knowledge from a programming book without sitting at a computer and typing out the example code, even if it’s small snippets, in fact I often go back, read a chapter again, and test myself to see if I can code out the same snippet without reading it the next day. Learning the theories and concepts behind a language is easy, but writing it out can often be much more challenging.
I’m looking forward to finishing off the book, and if this ‘brain dump’ of my experience in iOS has been of any help to you, please let me know, and I will carry on writing 🙂