This morning, Apple finally announced details about the long-awaited iPhone SDK. The SDK is available for download starting today, and it sounds pretty intriguing!
It comes with a full application stack that includes a custom version of Cocoa (Cocoa Touch), and APIs to access all the iPhone specific features, including hardware-accelerated 3D graphics, the accelerometer, camera, contacts, as well as location-awareness. This sounds a lot more complete that I expected.
The tools side is covered very well, also: The SDK includes a custom version of the Xcode IDE, Interface Builder, Instruments (a profiler), and an iPhone Simulator, so you should be able to develop iPhone apps using essentially the same toolset as for regular OSX applications.
As expected, Apple will control the distribution for all iPhone applications through their App Store. Applications can be purchased and downloaded right from the phone, or via iTunes. Developers get complete control over the pricing, and Apple offers a 70/30 revenue split (70% for the developer), which seems pretty reasonable. Developers will also be able to make their applications available for free, in which case Apple takes no cut. It sounds like Apple will generally allow any application to be published, but there are some (mostly obvious) limitations (such as pornography, VOIP over cellular connections, or anything illegal).
The SDK itself is available for free on Apple’s developer website, although you have to have to register as an iPhone developer. However, in order to be able to submit applications to the App Store, developers need to join the $99 iPhone Developer Program. Apparently the developer program will initially be available on a limited basis, but I assume that most developers will be accepted in to the program later. Since the App Store is not scheduled to launch until June, this does not seem like a major issue, and in the mean time the iPhone Simulator that is included in the SDK looks to be a pretty exact copy of the actual iPhone, so this will have to do.
Users will need a firmware upgrade in order to run custom applications. I assume that this will be released around the same time as the App Store (although hopefully a bit sooner, for testing purposes). iPhone users will be able to upgrade for free, but iPod Touch users (like myself) will be charged a nominal fee (the exact amount has not been announced), supposedly due to differences in the way Apple accounts for the iPod Touch, since it does not come with a subscription plan.
The SDK download proved to be a major pain, since Apple’s website was hopelessly overloaded and it was impossible to even get the download to begin. I eventually got lucky and found the SDK on BitTorrent. Apple really should have made the 2GB download available on BitTorrent in the first place…
Anyway, I’m planning to play with the SDK a bit over the next few weeks or so. One thing I was hoping for is that the SDK might include support for RubyCocoa, since I’m not all that thrilled about the prospect of using Objective-C (or any C-derived language for that matter…), but based on my initial research things aren’t looking promising. Ruby is supported on jailbroken iPhones, so it seems like it should be feasible to support RubyCocoa as well. This will be the first thing
Oh, there were a few cool game demos as well, including an iPhone version of Spore! I am most interested in building my own iPhone apps, but I am also excited to see what kind of applications and games will be released by third parties. I am currently using several useful applications on my jailbroken iPhone Touch (such as an ebook reader and an unit converter), and it seems like it should be reasonably straightforward to port these to the official SDK, so I bet that most of these applications will be available soon, either for free or for a moderate price.
For more details, check out the following links:
Hi Mirko,
I built the RubyCocoa Resources web site (http://www.rubycocoa.com) and wrote a Ruby to Objective-C bridge from scratch (http://www.rubyobjc.com) but eventually decided that mixing Ruby and Objective-C required too many hacks and that what was needed was a language specifically designed to work with Objective-C.
So as an alternative to RubyCocoa, you might be interested in Nu, the high-level glue language that I wrote as a result of this (http://programming.nu). Yesterday I got it running on the iPhone simulator (http://blog.neontology.com/posts/2008/03/06/NuHelloWorldClassic).
I am @timburks on Twitter.
Hi Tim,
Thanks for letting me know about Nu, and congrats to getting it running on the iPhone simulator!
I’ll definitely have to check it out. The syntax does look a lot like Lisp (which I’ve never used myself — SML is as close as I got to functional programming, and that was a long time ago…), but on your website you claim that Nu is semantically closer to Ruby, so I’m curious.
Oh, and thanks for the RubyCocoa Resources website as well. I have looked at it a few times while searching for RubyCocoa resources. I haven’t had much of a chance to actually play with RubyCocoa yet, though, mainly because I’ve realized that regardless of whether I use Objective-C or Ruby, I would probably first have to invest some time in learning Cocoa itself…
Do you have any recommendations on Cocoa books or other resources that might be most applicable for learning Cocoa for the purpose of programming in Nu or RubyCocoa, without an in-depth study of Objective-C first?
Here’s a link to my favorite resources for Objective-C programming: http://programming.nu/objective-c
My two favorite Cocoa books are Aaron Hilegass’ “Cocoa Programming for Mac OS X” (watch for an upcoming 3rd edition) and Anguish/Buck/Yacktman’s “Cocoa Programming”. I reviewed the both on my RubyCocoa site: http://www.rubycocoa.com/book_reviews.
Thanks for the pointers. The Hillegass book sounds perfect, but I think I’ll wait for the third edition (which is supposed to be only two months away).
awesome cheers
You have a great blog here and it is Nice to read some well written posts that have some relevancy…keep up the good work