

OS X/iOS Programming - minischneides

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.<p>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.<p>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.
======
joubert
The bible is certainly Aaron Hillegass' Cocoa Programming for Mac OS X -
[http://www.bignerdranch.com/book/cocoa®_programming_for_mac®...](http://www.bignerdranch.com/book/cocoa®_programming_for_mac®_os_x_3rd_edition)

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>

~~~
Hoff
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.

~~~
thefunk
why?

~~~
Hoff
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.

------
samratjp
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/>

------
Zev
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!

------
MWinther
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.

------
makecheck
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.

------
ivanzhao
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.

~~~
minischneides
I will keep that in mind, thank you.

------
damoncali
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.

------
glhaynes
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.

~~~
ugh
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/>

------
Skroob
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>

------
wanderingmango
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).

------
bobjohn
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...

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

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

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

