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.
Join the Apple Developer Connection. It's free, a great resource and has everything you need to get started.
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
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 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!
A simple tutorial from TheAppleBlog.com
iPhone SDK Tutorial: Build a Simple RSS reader for the iPhone
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).
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.
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).
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:
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.
I collected some links I used to start with iPhone development:
- Apps Amuck: Welcome to 31 Days of iPhone Apps. Good tutorials - "The key here is simple: "Taking baby steps is better than taking no steps at all"
- Blog Post about "Where to start"
- iPhone programming category tutorials on iCodeBlog
- Objective-C Beginner's Guide
- The Objective-C 2.0 Programming Language: Introduction to The Objective-C 2.0 Programming Language (Apple)
- Blog Post: How to jump start iphone development
- Stanford University has a free online course ("iPhone Application Programming"
- Video tutorials (commercial, but some are free).
And don't forget all the "Geting Started" articles on Apple's Developer Connection. Here is the "Getting Started with iPhone OS" tutorial.
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".
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.
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.
Disclaimer, I run the site.
iPhone Dev SDK: http://www.iphonedevsdk.com/forum/
iPhone Dev SDK - Popular Threads: http://twitter.com/iphonedevsdk
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.
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.
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
I am posting some tutorials about iPhone and Mac development on my blog every now and then:
Try http://www.iphonepundits.com/ It's a directory of iphone programming tutorials and has about 700+ articles/tutorials on iphone coding
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.
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.
I hope below collection would help:
1) Blogs on iPhone development:
http://iphonedevelopment.blogspot.com/
http://iphoneincubator.com/blog/
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:
4) News:
5) Jail breaking/Hacking:
6) Open source libraries & Applications:
http://www.codingventures.com/2008/12/useful-open-source-libraries-for-iphone-development/#more-43
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/200850/are-there-any-open-source-iphone-applications-around
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://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
14) SQLITE:
http://code.google.com/p/sqlitepersistentobjects/
http://www.slideshare.net/360conferences/using-sqlite
15) Video:
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