Hacker News new | past | comments | ask | show | jobs | submit login
OS X/iOS Programming
37 points by minischneides on June 26, 2010 | hide | past | favorite | 25 comments
As a high school student I've been taught in class the fundamental principles of Visual Basic, and C++. I'm looking to extend my skills into a more satisfying project, seeking to do so either through writing a Mac OS X application, or an iOS application.

With this said, I'm fairly new to the whole "real world" programming thing, with most of my experience limited to writing command line projects. I'm currently working through Stephen Kochan's "Programming In Objective-C 2.0" and it seems so far to be pretty good.

Ultimately what I'm looking for from HN is a push in the right direction of what other resources are good for learning Objective-C, good places to learn about OS X programming and the iPhone/iPad SDK, and even some hints about what I might read to become better at the interface design aspect of my application.




The bible is certainly Aaron Hillegass' Cocoa Programming for Mac OS X - http://www.bignerdranch.com/book/cocoa®_programming_for_mac®...

The Apple documentation is outstanding. http://developer.apple.com/resources/

Check out ObjC and iOS podcasts.

My favorite Cocoa website it http://theocacao.com/

Delicious might also help you: http://delicious.com/tag/cocoa


Regarding interface design and user experience I'd like to highlight the Apple Human Interface Guidelines [1].

They are to the point, which makes them easy to read and great for everyone interested in UI design and UX.

[1] http://developer.apple.com/mac/library/documentation/UserExp...


Having looked at both in some detail, Daniel Steinberg's Cocoa Programming book http://pragprog.com/titles/dscpq/cocoa-programming might be preferable to Hillegass's book.


why?


Hillegass spent time and text comparing Cocoa constructs to other programming languages. On distractions.

Steinberg's approach had better technical progression, tighter focus and superior editing.


Much thanks, I'll be sure to check out some of those sources. I've always found the Apple docs a little bit daunting, but I'll give them another shot.


First go through this[1] for a quick intro to Objective-C:

Then again, just checkout hw1[2] in Stanford - HelloWorld to iPhone SDK. This is the best hand-holding intro to Obj-c. If that doesn't suffice checkout the earlier class videos.

[1]http://courses.csail.mit.edu/iphonedev/ [2]http://www.stanford.edu/class/cs193p/cgi-bin/drupal/


Is there anything specific that you want to do? In some cases, there might be better books for you to be reading (like OpenGL books, if you want to make some types of games). And targeting Mac vs iOS is rather different in some ways (UIKit and AppKit have lots of little corners in which they differ).

Hillegass is basically bible for Cocoa (Mac) programming. But, its not the best way to learn Cocoa Touch (iOS) for iOS. For that, I'll second Skroob's recommendation of Craig Hockenberry's book. Also, Jeff LaMarche and David Mark's Beginning iPhone Development is rather good and I personally have a nice copy of Bill Dudney and Chris Adamson's iPhone SDK Development that I'll skim on occasion.

But, you don't need to read all three of them; they basically cover the same material in different (but equally good) ways. After you've worked your way through one of them, maybe pick up Erica Sadun's The iPhone Developer Cookbook or iPhone Cool Projects by Wolfgang Ante, Mike Ash and a bunch of other really smart people.

And at some point, move away from the path documented and write your own app!


My first resource to get to grips with Cocoa programming was the Hillegass book pointed out elsewhere. But when starting the iPhone focus, the Stanford iPhone Programming Lectures on iTunes U really were a great help for me, even though they didn't cover the latest version of the OS (They were doing it on 2.x when I did it, I suspect the latest one was for 3.x) they really explained a lot about philosophy and methodology, not to mention giving assignments and generally acting like a class.

In fact, I am intent on revisit the latest version of the course, but all the dev videos kind of ambushed me, so I haven't gotten around to them yet. Speaking of which, I really get a lot out of, but I think a lot of the reason for that is taking the iTunes U course first.


If you feel comfortable with C++ to some degree, this transitional document might be helpful: http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf

I've found it does a good job of explaining how Objective-C works, for someone with C++ background.

As far as interface design, I feel that Cocoa is something you just have to tinker with in order to learn. Apple has lots of sample code (register a developer login on developer.apple.com if you haven't). While there's plenty to read, I feel that to really understand things like connections and controllers in Interface Builder, you have to try to build things or inspect the interfaces in sample projects.


Objective-C is fairly simple, while Cocoa is vast and complex. The distinct is important.

It might take you awhile to get familiar with Cocoa and all its patterns built on top of NSObject.

"Cocoa Design Patterns, by Buck and Yacktman" is a very good book to get the big picture right, but might be slightly overwhelming at the beginning (as there are many patterns/ways to solve the same problem in Cocoa).

Read Apple's documents: I still find it the best way to learn the details of Cocoa. The writing is dry and quite dense, so you might need to read it multiple times.

Another thing to remember is that Cocoa is a framework: it demands to be followed and not be fought against. 


I will keep that in mind, thank you.


The pragmatic bookshelf books are all pretty good. Just buy one and get started. Once you get oriented, you'll find apple's documentation to be pretty good, especially if you're used to typical open source documentation.


If you're going to want to run your iOS apps on actual devices (not just the built-in simulator), you'll need a $99/year iPhone Developer membership from Apple. Said membership comes with access to videos from this year's Worldwide Developer Conference, many of which will be helpful to you.

EDIT: They're available to free dev accounts as well! Thanks for the corrections.


You don’t need to pay the money to get access to the videos. A free developer account will do. That free program a really hard to find, though, here’s the link: http://developer.apple.com/programs/register/


The videos are also available with a free developer account. I don't have a link offhand but it's at the bottom of the signup page.


>"If you're going to want to run your iOS apps on actual devices (not just the built-in simulator), you'll need a $99/year iPhone Developer membership from Apple..."

Which is a good reason to get acclimated to Objective-C/Cocoa by writing desktop Mac OS X software _first_. You'd need a Mac in both cases, and there are no barriers to deployment.


Craig Hockenberry's Missing Manual book on iPhone development is excellent, and I recommend it to everyone who's interested in learning iOS development. http://oreilly.com/catalog/9780596809775


Kochan's book is good, but it is far from the "real world" when it comes to Cocoa programming. You don't really need most of what's in there. Just jump in with Hillegass' book and you'll be programming in cocoa much more quickly (I've used both books).


Start by doing. I'm 15 and learned iOS programming just by /doing/ it, reading other people's code and working until my code worked as well. My code wasn't too pretty to start with, but it really helped me understand the SDK...


I'm curious, do you have any applications in the store right now?


Is this some new trend where nobody prefixes self posts with "Ask HN"?


It's somewhat redundant, since the domain part is missing from the title, but that being said, I really prefer the prefix as well.


It should be possible for the software to prefix "Ask HN" automatically. (if none exists..) But yeah, it just requires little effort from those posting the story. :)


Sorry, I wasn't aware that was a "requirement". I'll keep it in mind for future posts.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: