I wasn’t blessed with a programming background. And that just means I have to be more patient with myself, because I’m not just learning Cocoa here, I’m learning EVERYTHING.
If you’re like me, and you want to learn how to make iPhone apps (the right way), but you don’t have a programming background, then consider this fair warning. You have a lot of work ahead of you.
- First, you need to understand more about your computer than you may have ever cared to know. What it really is, how it really works.
- Then you’ll need to learn a new language. It’s similar to the foreign language class you took in high school. Rote memory has never been my specialty, so language learning takes time.
- Did I say language? Ooops. What I really meant to say was languages. Yah, make it more than one language. Because while Objective-C is the main language at play in Cocoa programming, it’s derived from C, and you’ll be scratching your head like I was until you can at least recognize the difference between the two.
- While there are LOTS of languages out there, they all seem to have a few things in common. Things like variables, operators, loops, etc. You’ll have to get your head around these concepts.
- OK, so far so good? Now we need to take the language, and the programming concepts, and we need to learn Apple’s special way of doing things. Keywords: “Cocoa Design Patterns”.
- Frameworks. Frameworks. Frameworks. Say “hello” to framework documentation. At a minimum you’ll need to be familiar with the Foundation and UIKit frameworks. To do more specialized things you can get into CoreAudio, CoreVideo, CoreData, AV Foundation, GameKit, MapKit, iAd, OpenGLES, etc.
- Of course all of this wonderful stuff is coded, compiled, tested and deployed through Apple’s free set of developer tools. As amazing as these tools are, it still takes a while to get used to each one. The main tools are Xcode, Interface Builder, the Simulator and Instruments. These are professional grade tools, like Photoshop, and Illustrator. They take time to master.
Wheew. I don’t mean to discourage anyone out there, but it’s important to have realistic expectations going into this kind of thing. I’ve always been a pretty quick learner, but I underestimated this stuff and have had to continually reset the bar to a reasonable height.
If you’re coming into it with programming experience, then you really only need to start off at number 5 and work your way down the list. It’s a much shorter road for you : )