views:

27532

answers:

23

I am looking for an introduction into developing for the iPhone. Any recommendation? I do not speak Objective-C either, so tutorials on that would not hurt either.

+15  A: 

Join the Apple Developer Connection. It's free, a great resource and has everything you need to get started.

Mark Harrison
+11  A: 

For Objective C, this online book is really good...
it was recommended when I took my Cocoa class.

http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf

Mark Harrison
+3  A: 

Unfortunately all of the docs will be coming from Apple while the SDK is under an Non-Disclosure Agreement. I'd love to write some articles and tutorials, but unfortunately if I distributed them, I would be in violation of the NDA.

NilObject
+1  A: 

NilObject wrote:

I'd love to write some articles and tutorials, but unfortunately if I distributed them, I would be in violation of the NDA.

Orion Edwards wrote:

The first rule of iphone development, is you do not talk about iphone development

That's amazing. WTF are they thinking? I got an iPhone recently and have been looking forward to learning how to program it. I had no idea it was like this!

Zack Peterson
+9  A: 

A simple tutorial from TheAppleBlog.com

iPhone SDK Tutorial: Build a Simple RSS reader for the iPhone

saniul
+5  A: 

While you do have to agree to an NDA to get the iPhone SDK, you don't have to physically sign an agreement and send it in, or pay money just to download the SDK. You can sign up for a free Apple Developer Connection account, join the free iPhone developer program, and then download the iPhone SDK which includes a ton of documentation and sample code.

One other thing: You wouldn't go wrong by learning Objective-C and Cocoa on Mac OS X first. There is a lot of tutorial material out there including the Cocoa Dev Central tutorials, the free Become an Xcoder online book, Apple's free online developer documentation, and print books like "Cocoa Programming for Mac OS X" and "Xcode 3 Unleashed" (both of which recently came out and cover Mac OS X 10.5 Leopard).

Chris Hanson
+1  A: 

I can definitely recommend learning Objective-C and Cocoa first.

Cocoa Touch (Cocoa for iPhone) is similar to (desktop) Cocoa. It is also simpler. But the base classes are the same.

Basically you are just looking at two different GUI toolkits.

Andrew J. Brehm
+1  A: 

Slight rant: The iPhone SDK non-disclosure thing seems to basically be to stop people publishing books on the SDK while Apple are (probably) planning to change stuff soon. Apple will not start sending you cease-and-desists for writing a tutorial on your blog..

That aside, Become an Xcoder is a good guide to start with - it describes the basics of ObjC and Cocoa (it explains the slightly-strange [myObject myMethod:args] syntax, and Interface Builder actions/outlet things that confused me to no end).. I went from knowing very basic C, to understanding ObjC better than C..

My only problem with Become an Xcoder is that it ends very abruptly.. I was just getting the hang of the syntax, and Interface Builder, and then it ends! I really wish there was a second part, that goes though making a complete (even very simple) Cocoa application. Regardless, the knowledge you'll get from Become an Xcoder will apply to iPhone dev.

I've not found a tutorial that covers writing a complete, simple application (either for the iPhone, or Cocoa) - they all either give you huge blocks of code without explaining how on earth you're supposed to know what any of it does, or explain how to start Interface Builder and add a text field and change the text.

Edit: Responding to widespread criticism, Apple said Wednesday that it has decided to do away with its non-disclosure agreement (NDA) for released iPhone software while it drafts a new agreement covering just non-released software (link).

dbr
+2  A: 

If you are new to Objective-C, an excellent reference for C++ and Java programmers is this document with C++ and Objective-C (and some Java) examples of various common language features, so you can quickly get up to speed on common operations:

http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf

Kendall Helmstetter Gelner
+5  A: 

I've been going down this same path for a couple of weeks now. There are a couple of tutorials out there (e.g. iPhone SDK Tutorial: Build a Simple RSS reader for the iPhone and a couple of others at iCodeBlog) which will get you started. However, I found that neither really explains the rationale for the steps laid out. You'll get an app that works in the end, but without any appreciation for what is actually happening in the code. If someone is already a Cocoa developer, these tutorials would probably be a decent start.

Having no Obj-C (or indeed any OS X) development experience, the reference I've been using is Aaron Hillegaas' Cocoa Programming for Mac OS X. It is outstanding. I've been working with the 2nd Edition and there are some differences in XCode and IB that are updated in the 3rd, so I recommend that one. If you know nothing about Objective-C and Cocoa, this is the book to have. He throws you in the deep end with a functioning app, but then backs up, building and explaining things from the ground-up. It isn't an iPhone programming resource, but will make you much better equipped to understand and learn from the iPhone development tutorials out there.

Another benefit is that developing in XCode for Mac OS X offers a more polished experience than the iPhone tools (which are nice enough, but not as seamless). So if you're just getting started, learning Cocoa from the ground up will smooth the learning curve considerably.

One thing you didn't mention is what current experience you have with other languages. Getting up to speed on C wouldn't be a bad idea either.

tmitchell
+121  A: 

I collected some links I used to start with iPhone development:

And don't forget all the "Geting Started" articles on Apple's Developer Connection. Here is the "Getting Started with iPhone OS" tutorial.

splattne
iphonedevcentral.org seems very promising!!
bentford
The "How to jump start iphone development" is a broken link
Roee Adler
You've gotta love PeepCode screencasts by Geoffrey Grosenbach, hes recently done a series on iPhone view controllers http://peepcode.com/
Matthew
The first link is down btw
rpetrich
@rpetrich: thanks! Fixed the link.
splattne
first link is down again
hlfcoding
Edited the answer again.
splattne
"How to jump start iphone development" now goes to a domain squatter... :(
geocoin
+1  A: 

Simple iPhone application tutorial

Apple's iPhone Dev Center does provide a tutorial which covers writing a complete, simple application. It uses small blocks of code that are given both inline explanation and supplemented with numerous references to other documentation that give a complete treatment of the subject. It even explains how to start Interface Builder and add a text field and change the text...

If you have access to the SDK, see "Your First iPhone Application".

mmalc
+31  A: 

I am pretty impressed with http://www.appsamuck.com/.

A new iPhone app is written every day, and is listed on the site with source code and screenshots.

CJCraft.com
Looks like a cool site but none of these code samples compile in iOS 4.
Kirk Broadhurst
+3  A: 

I found it impossible to get going on iPhone programming until I got a book. The Pragmatic Programmers have a good iPhone SDK book. I was able to get to a working app from this despite no prior experience of Mac OS programming, XCode, Cocoa or Objective-C, etc. I did have a good knowledge of C/C++ and Java, though.

frankodwyer
+2  A: 

Disclaimer, I run the site.

iPhone Dev SDK: http://www.iphonedevsdk.com/forum/

iPhone Dev SDK - Popular Threads: http://twitter.com/iphonedevsdk

Chris Stewart
+1  A: 

From ActionScript To iPhone development

If you're an ActionScript (ECMA script and JavaScript will also do well) developer this blog is pretty good to get you started.

Andy Jacobs
+7  A: 

I know this is an older post, but I'd definitely go with the Stanford iPhone Application Programming course. It's like actually taking the course without handing in the assignments.

One time when I was watching one of the lectures I had a question about one of the points he made, then someone in the class actually asked the exact question I was thinking of.

One last thing, go and rip the site, I used the Scrapbook plugin for Firefox, because they will be taking down all of the material.

Meroon
But I think you can download this from iTunes as well.
gyurisc
Apologies I thought that there can be more than one answer to a question.
gyurisc
Yea totally, only bonus on the website is they have extra material like source code for demos.
Meroon
+1  A: 

Some of this may repeat previous answers, but it is a collection of links to sample code collections for the iphone. I previously posted this as another question, but I thought it could be helpful here.

Apple Sample Cope: http://developer.apple.com/iphone/library/navigation/SampleCode.html

Apps Amuck 31 days: http://appsamuck.com/

Beginning iPhone Developing: http://www.iphonedevbook.com/

Chris Software: http://chris-software.com/index.php/dev-center/

Dave DeLong's downloads: http://www.davedelong.com/downloads

iPhone Developers Cookbook: http://code.google.com/p/cookbooksamples/downloads/list

iPhone SDK source code: http://sites.google.com/site/iphonesdktutorials/sourcecode

Joe Hewitt three20: http://joehewitt.com/post/the-three20-project/

Stanford iPhone code: http://www.stanford.edu/class/cs193p/cgi-bin/downloads.php

WiredBob (TabBar in Detail view): http://www.wiredbob.com/blog/2009/4/20/iphone-tweetie-style-navigation-framework.html

Jonah
+1  A: 

I am posting some tutorials about iPhone and Mac development on my blog every now and then:

http://blog.proculo.de/categories/19-Tutorials

Alexander Repty
+1  A: 

Try http://www.iphonepundits.com/ It's a directory of iphone programming tutorials and has about 700+ articles/tutorials on iphone coding

pundit
+3  A: 

You may find that a web app can provide all the functionality you need on the iPhone, making it all a lot quicker and simpler to develop. Take a look at iWD: http://www.mgateway.com/iwd.html Check out the videos under the Resources tab.

Rob
+17  A: 

For those looking to go a little beyond the basics in terms of iPhone development, the videos for the Advanced iPhone Development course I taught at the Madison Area Technical College are now available on iTunes U.

I cover the iPhone OS frameworks in detail, from Core Data to OpenGL ES, and my detailed course notes (which you can view here) provide supplementary information and links to the sample applications I used for the course.

Brad Larson
This is superb thanks for posting it!
gyurisc
+13  A: 

I hope below collection would help:

1) Blogs on iPhone development:

http://mycodeteacher.com/

http://iphonedevelopment.blogspot.com/

http://iphoneincubator.com/blog/

http://iphone.zcentric.com/

http://iphoneproghelp.blogspot.com/ (Programming Tutorial)

http://icodeblog.com/ (Programming Tutorial)

2) iPhone Source Codes:

http://www.theiphonedev.com/SourceCode/tabid/143/Default.aspx

3) Community:

http://www.iphonekicks.com/

https://devforums.apple.com/

http://iphonedevsdk.com/

4) News:

http://mobileorchard.com/

http://theappleblog.com/

5) Jail breaking/Hacking:

http://theiphoneproject.org/

6) Open source libraries & Applications:

http://www.codingventures.com/2008/12/useful-open-source-libraries-for-iphone-development/#more-43

http://www.sourcemac.com/

http://www.codeplex.com/

Face Detection: http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en

Bar Code: http://stackoverflow.com/questions/838724/barcode-framework-for-the-iphone

Rating: http://github.com/eisernWolf/TouchCustoms

http://github.com/erica/iphone-3.0-cookbook-

http://stackoverflow.com/questions/843167/is-there-a-gallery-of-reusable-iphone-components-on-the-web

http://mattgemmell.com/source

http://stackoverflow.com/questions/200850/are-there-any-open-source-iphone-applications-around

http://stackoverflow.com/questions/640805/open-source-iphone-components-reusable-views-controllers-buttons-table-cells

http://open.iphonedev.com/

http://www.opensourceresources.org/

http://www.raywenderlich.com/tag/sample-code

Three 20: http://github.com/facebook/three20

Tapku Library: http://github.com/devinross/tapkulibrary

7) Topic-wise:

App Store: https://developer.apple.com/appstore/resources/approval/guidelines.html

GIF Support: http://stackoverflow.com/questions/1379818/how-can-i-make-an-animated-gif-with-the-iphone-sdk

In App Purchase: http://www.sixtemia.com/journal/2009/08/12/using-store-kit-framework/

IP Address: http://www.iphonedevsdk.com/forum/iphone-sdk-development/5293-get-current-ip-address.html

Page Curl Animation: http://stackoverflow.com/questions/2646714/what-iphone-os-apis-could-i-use-to-implement-a-transition-animation-similar-to-th

TTF Font http://github.com/zynga/FontLabel

Rotate Label: http://iphonedevelopment.blogspot.com/2009/12/better-two-finger-rotate-gesture.html

Speech Recognition: http://cmusphinx.sourceforge.net/

Operation & Thread: http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/

Web service: http://icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/

Code Analyzer: http://clang.llvm.org/StaticAnalysis.html

8) Game Development with Cocos2D:

http://code.google.com/p/cocos2d-iphone/

http://blog.sapusmedia.com/search/label/cocos2d

http://iphonesdkdev.blogspot.com/2009/01/xcode-template-for-cocos2d.html

http://monoclestudios.com/cocos2d_whitepaper.ht

http://lethain.com/entry/2008/oct/03/notes-on-cocos2d-iphone-development/

http://lethain.com/entry/2008/oct/20/touch-detection-in-cocos2d-iphone/

Open GL: http://web.me.com/smaurice/AppleCoder/iPhone_OpenGL/Archive.html

9) Drawing Chart & Graph

http://code.google.com/p/core-plot/

http://code.google.com/p/s7graphview/

http://github.com/duivesteyn-enterprises/deSimpleChart

http://www.rgraph.net/ (Will work on UIWebView only)

http://sebkade.wordpress.com/2010/05/06/basic-graph-class-for-iphone/ (a blog where demo is given to create a graph)

10) Map Kit

http://github.com/kishikawakatsumi/MapKit-Route-Directions

http://www.iphonedevsdk.com/forum/iphone-sdk-development/8100-opening-maps-app-given-route-direction.html

http://spitzkoff.com/craig/?p=65

11) Audio Streaming

http://code.google.com/p/indie1031/

http://cocoawithlove.com/2010/03/streaming-mp3aac-audio-again.html

http://code.google.com/p/audiostreamer-meta/

http://github.com/DigitalDJ/AudioStreamer

http://lists.apple.com/archives/coreaudio-api/2009/Jan//msg00143.html

12) Twitter

http://code.google.com/p/tweetphoto-api-objective-c/

http://tweetphoto-api-objective-c.googlecode.com/files/TweetPhoto.zip

13) Scroll View

http://github.com/andreyvit/ScrollingMadness

http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/Introduction/Introduction.html

http://stackoverflow.com/questions/975708/uiscrollview-image-photo-viewer-with-paging-enabled-and-zooming

14) SQLITE:

http://code.google.com/p/sqlitepersistentobjects/

http://www.slideshare.net/360conferences/using-sqlite

15) Video:

http://stackoverflow.com/questions/1617723/how-to-play-youtube-movie-on-an-iphone-application-when-tapped-on-uitableviewcell

http://www.iphonedevsdk.com/forum/iphone-sdk-development/41322-convert-image-sequences-video.html

16) SCM:

http://iphonedevelopment.blogspot.com/2009/03/version-control-is-your-friend.html

http://developer.apple.com/tools/subversionxcode.html

http://stackoverflow.com/questions/431881/scm-for-xcode

http://www.covertapps.com/development/6-setting-up-your-xcode-scm-repositories

Sagar
Awesome answer, just getting into developing now so I will refer to these
barfoon
Answer deserves a vote up...
piemesons