What resources will help me understand how to, and build better iPhone applications?
July 24, 2011 9:03 PM Subscribe
Hello from Mefi's intern Dom. I'm coming in relatively cold to building iPhone applications and am teaching myself how to do it. What are some good resources/ references that would help make the learning process easier on me?
The book that I'm using to learn is Programming iOS 4 by Matt Neuburg and once finished reading through it, I'll be using the iOS Developer site. Are there any other resources that would be good to have on hand that would help me pick it up/understand it better?
The book that I'm using to learn is Programming iOS 4 by Matt Neuburg and once finished reading through it, I'll be using the iOS Developer site. Are there any other resources that would be good to have on hand that would help me pick it up/understand it better?
Learning Objective-C: A Primer
Your First iOS Application (tutorial document)
The Objective-C Programming Language (this is a big document, use it as a language reference)
Cocoa Memory Management Guide (iOS)
Memory Management Guide for Core Foundation
Cocoa Fundamentals Guide (dynamism, introspection, Cocoa design patterns, MVC, delegates, etc
posted by secret about box at 9:52 PM on July 24, 2011 [2 favorites]
Your First iOS Application (tutorial document)
The Objective-C Programming Language (this is a big document, use it as a language reference)
Cocoa Memory Management Guide (iOS)
Memory Management Guide for Core Foundation
Cocoa Fundamentals Guide (dynamism, introspection, Cocoa design patterns, MVC, delegates, etc
posted by secret about box at 9:52 PM on July 24, 2011 [2 favorites]
Crap, sorry, I somehow skipped this:
"I'll be using the iOS Developer site."
Well, consider my answer a "noteworthy tourist destinations" list. :)
posted by secret about box at 9:53 PM on July 24, 2011
"I'll be using the iOS Developer site."
Well, consider my answer a "noteworthy tourist destinations" list. :)
posted by secret about box at 9:53 PM on July 24, 2011
Where are you coming from? What programming experience do you have already?
posted by hattifattener at 10:20 PM on July 24, 2011
posted by hattifattener at 10:20 PM on July 24, 2011
Best answer: Check in on Stack Overflow when you have questions. I hang out there fairly frequently and answer some of the iOS/iPhone ones.
Definitely learn Cocoa design patterns like MVC, delegation and the observer. You'll see these patterns used all over the place in the source code for any given iOS app, whether it uses view controllers, table views, or system notifications. If you have some C++ experience, the Gang of Four's book on the subject is gospel.
Get really comfortable with the concepts in Apple's memory management guide. Even with iOS 5 offering ARC (automatic reference counting — sorta, kinda like garbage collection, but done at compile-time), managing memory correctly from the get-go will help you write cleaner, tighter, relatively bug-free code. It's no fun tracking down EXC_BAD_ACCESS errors as it is. Doing things by hand until you get memory management concepts down will help you if and when you one day do switch over to ARC.
I would advise staying away from third-party frameworks that construct chunks of the app for you through macros, templates or the like. You're better off learning Objective-C and doing things natively, so that you won't have to wait for third-party devs to provide access to features that Apple provides directly. It's just a better way to learn iOS development and write better apps, even with the steeper learning curve.
iOS development is so much fun! I hope you enjoy it, too.
posted by Blazecock Pileon at 12:06 AM on July 25, 2011 [4 favorites]
Definitely learn Cocoa design patterns like MVC, delegation and the observer. You'll see these patterns used all over the place in the source code for any given iOS app, whether it uses view controllers, table views, or system notifications. If you have some C++ experience, the Gang of Four's book on the subject is gospel.
Get really comfortable with the concepts in Apple's memory management guide. Even with iOS 5 offering ARC (automatic reference counting — sorta, kinda like garbage collection, but done at compile-time), managing memory correctly from the get-go will help you write cleaner, tighter, relatively bug-free code. It's no fun tracking down EXC_BAD_ACCESS errors as it is. Doing things by hand until you get memory management concepts down will help you if and when you one day do switch over to ARC.
I would advise staying away from third-party frameworks that construct chunks of the app for you through macros, templates or the like. You're better off learning Objective-C and doing things natively, so that you won't have to wait for third-party devs to provide access to features that Apple provides directly. It's just a better way to learn iOS development and write better apps, even with the steeper learning curve.
iOS development is so much fun! I hope you enjoy it, too.
posted by Blazecock Pileon at 12:06 AM on July 25, 2011 [4 favorites]
Response by poster: Where are you coming from? What programming experience do you have already?
I'm coming from next to nothing. Some very basic html/web page based classes in high school and picking up basic understandings as I go.
posted by Dominic. Allen at 12:05 PM on July 25, 2011
I'm coming from next to nothing. Some very basic html/web page based classes in high school and picking up basic understandings as I go.
posted by Dominic. Allen at 12:05 PM on July 25, 2011
You don't need to start here, but at some point you will realize you're working with a strict superset of C, and will need to understand things about C. I suggest picking up a copy of K&R at some point. In addition to being the best book on C, it's also wonderfully written and is a great example of how to write a programming language book.
"C is a simple language and it is not well-served by a large book."
posted by secret about box at 6:30 PM on July 25, 2011 [1 favorite]
"C is a simple language and it is not well-served by a large book."
posted by secret about box at 6:30 PM on July 25, 2011 [1 favorite]
I would recommend this Stanford course as a starting point and Titanium Appcelerator as an alternative solution, which, depending on your background, may yield a less buggy app more quickly.
This is reportedly a great course, but the prof states in the first class that its prerequisite is object oriented programming. Stanford offers this prerequisite, called "Programming Methodology," and hosts all of the course's content online here, with videos available here.
I'm in the same boat as you, and I started with Programming Methodology last week. The professor seems awesome, but I'm having some trouble with Eclipse, the application you use to complete the course assignments.
If you're interested in sharing learnings or comparing notes about development, MeMail me and perhaps we can set up some type of group.
posted by erikvan at 10:46 AM on July 26, 2011
This is reportedly a great course, but the prof states in the first class that its prerequisite is object oriented programming. Stanford offers this prerequisite, called "Programming Methodology," and hosts all of the course's content online here, with videos available here.
I'm in the same boat as you, and I started with Programming Methodology last week. The professor seems awesome, but I'm having some trouble with Eclipse, the application you use to complete the course assignments.
If you're interested in sharing learnings or comparing notes about development, MeMail me and perhaps we can set up some type of group.
posted by erikvan at 10:46 AM on July 26, 2011
The Hillegass books were the first book people reached for when learning NeXT, OS X, and now iOS devices. They assume knowledge of C at least.
posted by gentilknight at 4:58 PM on July 31, 2011
posted by gentilknight at 4:58 PM on July 31, 2011
« Older Save me from the horrors of overhead lighting! | Failure is an option, but best if avoided... Newer »
This thread is closed to new comments.
posted by Monsieur Caution at 9:33 PM on July 24, 2011 [1 favorite]