

Ask HN: Becoming an iPhone app Dev. - Pabss

I'm studying CS, second year, and I really enjoy programming. I'm very interested in developing iPhone apps and if even possible gain some profit out if it. I know some general stuff from C++, not much though. My question is, where should I start? What should I know and where should I begin to study about iPhone apps? I'm really lost and would appreciate some some sort of direction. lol
======
xackpot
I think the best place to start learning is going through the Stanford
lectures notes at [http://www.stanford.edu/class/cs193p/cgi-
bin/drupal/download...](http://www.stanford.edu/class/cs193p/cgi-
bin/drupal/downloads-2011-fall) and watching the videos at
[http://itunes.apple.com/itunes-u/ipad-iphone-application-
dev...](http://itunes.apple.com/itunes-u/ipad-iphone-application-
development/id473757255). The strategy should be to finish one lecture in a
day or two without rushing to the next lecture. Finish up the assignments and
if you get stuck somewhere, search, learn, repeat. This way you would have
learned quite a bit on specific topic and would be comfortable on the next
topic. By lecture 10 you would be itching to write your own app, but don't
succumb to the temptation and keep on finishing up the lectures. May be after
lecture 18 you can explore things on your own. HTH

------
benigeri
[http://itunes.apple.com/us/itunes-u/ipad-iphone-
application-...](http://itunes.apple.com/us/itunes-u/ipad-iphone-application-
development/id473757255)

Your best bet is to find a complete course, and as a Stanford student who has
taken the iOS programming course, I can tell you that I learnt a ton. Videos
are good, but you won't get enough practice. The same goes for book, there are
a lot of examples but the learning by example is very limited.

By taking a complete online course, you will have lectures, videos, examples,
sample code, and most importantly, you will get homework's. As a CS major, the
most effective way that I have found to learn to code is to practice by
example, and the homework's assigned in university courses are designed to
make you learn and apply the specific skills that you have learnt in past
lectures.

------
bevan
I explored iPhone dev at about the same time as you. I also had a hard time
finding good resources. There's so much to learn that it was intimidating
sitting down and just reading about it.

What worked for me was porting simple programs I'd written (in Java) to the
iPhone. Java is actually pretty similar to Objective C, and some of it was
literally just cut and paste. I imagine C++ is very similar too. At first the
programs weren't even visual- they were essentially just command-line
programs. That way I could focus on learning the basics of the language before
learning all the high-level libraries.

Once you get "hello world" working it shouldn't be too hard to build simple
programs off of that. Porting an existing program might provide useful
structure to your learning if that's your style. Good luck!

------
hussa
It would be easier to pickup ObjC while you are at C++ than to switch back
from a web development background. Once ObjC is under your belt try to get
some basic understanding of iOS development in general.

Then you can watch a few of the videos that kind of gives you a hands-on
feeling since some of the drag/drop, ctrl-drag are something to see rather
than to read and keep in mind. Rory Lewis and AzamSharp videos helped me a lot
while Ray Wenderlich book gave some nice step-by-step instructions.

Armed with these you basically should start a real project of yours so you can
learn things on the fly and those would last in your memory longer than any
tutorials. Good luck! Believe me....it's hard but not crazy.

------
bobbypage
The Stanford videos are great. Another good resource for screencasts is
<http://nsscreencast.com/>

Also if you're looking for a good book about iOS
[http://www.amazon.com/gp/aw/d/1430236051/ref=redir_mdp_mobil...](http://www.amazon.com/gp/aw/d/1430236051/ref=redir_mdp_mobile)

For learning the ins and out of objective c I've heard this is a good book:
<http://www.amazon.com/gp/aw/d/0321706285>

Good luck!

------
ja27
You need a "pet project" that you want to build. Then build it. I wouldn't
worry about making money from it. Just build something you want to have on
your iPhone.

For resources, I've found that once you get through either the first few
Stanford classes or a good book or two, Google and Stackoverflow are the only
references I need. For getting started though, the tutorials (and forums) at
Ray Wenderlich's site are also a great resource:
<http://www.raywenderlich.com/tutorials>

------
hackrocket
You can learn iOS development online at: <http://www.hackrocket.com>.
Hackrocket will soon launch an immersive three-month program to teach absolute
beginners how to build iPhone and iPad apps (I am the co-founder)
<http://teamtreehouse.com/> [http://www.lynda.com/iOS-tutorials/iOS-SDK-
Essential-Trainin...](http://www.lynda.com/iOS-tutorials/iOS-SDK-Essential-
Training/92179-2C.html)

------
callmeed
Personally, I had to take a different route than online videos/tutorials.
Between doing web development full-time and having a family at home, I
couldn't find the time to focus on becoming competent at iOS development.

So I took a week off and went to Chicago for one of the Pragmatic Studios
courses (<http://pragmaticstudio.com>). Being able to focus on that was
exactly what I needed.

YMMV of course, but I thought I'd throw in an alternate option.

~~~
hallOfFameCity
Hi, I really like the idea of doing a course similar to the Pragmatic Studios
course - but that's a pretty steep price for a junior in college like myself.
Are there any other similar courses conventions similar to that that I could
attend?

~~~
callmeed
I haven't seen any that are under $1k ...

------
GoofyGewber
Learn Objective C:
[http://www.youtube.com/playlist?list=PL640F44F1C97BA581&...](http://www.youtube.com/playlist?list=PL640F44F1C97BA581&feature=plcp)

Learn iPhone Development:
[http://www.youtube.com/playlist?list=PL53038489615793F7&...](http://www.youtube.com/playlist?list=PL53038489615793F7&feature=plcp)

~~~
Pabss
Seems.. easy enough. Are these videos good enough?

~~~
Pabss
Yeah I agree, Heh. This is good info, thanks.

------
_pius
I would highly recommend Stanford's iOS programming course:
[http://itunes.apple.com/us/itunes-u/ipad-iphone-
application-...](http://itunes.apple.com/us/itunes-u/ipad-iphone-application-
development/id473757255)

The professor is very good, the lectures are current as of iOS 5, and they've
made the slides and code available as well.

------
inDesperateZone
Is it possible to develop an iPhone app without owning one? I have a copy of
Mac OSX running virtualized but I never had the courage to learn all this
stuff while jumping trough so many hoops and creating something I can't even
test myself.

------
gspyrou
Not a native iOS dev , but I have had a good experience by building apps using
PhoneGap <http://phonegap.com/> .

------
Pabss
Everyone here has given me very helpful information and given me some of the
best tools for me to start this journey. Thanks everyone, highly appreciated.

------
nirvana
All you really need is Apple's developer tools and tutorials. They have a
wealth of example apps and free books to download. You can also get WWDC
videos from recent years, also free, if you have a free ADC account. This is
how I learned.

I also bought a bunch of iOS development books but never ended up needing any
of them. Between Apple's tutorials (and the skeleton apps built into xcode-
check those out they are correctly designed) you can learn a lot and do
anything you want. Every feature has a tutorial or example program (and you
can search the example code by API call to find the relevant ones.)

Also, these days with Storyboards its a whole lot easier to develop the UI for
your apps.

It really isn't that hard-- in fact, it is, by far, the easiest to develop for
UI I've ever seen. (easier than Mac OS and a whole lot easier than Windows or
Swing.)

All the other resources listed in this thread are good too-- just pick what
works best for you. The stanford course, for me, for instance, was too slow, I
am always wanting to learn a specific thing at any given point in time and
don't have the patience to work thru the course--- but if you want to work
thru the course by watching a video each day without firing up Xcode because
you spend your days writing code elsewhere, that might be the best way.

Any competency in C++ will mean you shouldn't have too much of a problem--
hardest part is going to be using C++ again after the glory that is
Objective-C!

