Lately there is no shortage of rumors surrounding a new tablet device supposedly in development at Apple. Besides satisfying our lust for new shiny gadgets from Cupertino, what does an iTablet mean for us iPhone developers?
Operating System
Given the theme at WWDC ’09 of there being one operating system for Macs and iPhones, it seems obvious that an iTablet would run OS X.
The real question is what type of UI would they layer on top of an OS X core? My guess is an extended version of UIKit. Apple has spent a lot of time thinking about how to build user interfaces for non-desktop devices, and unlike other competitors’ offerings, UIKit is very well designed.
On a small screen like the iPhone’s you are by necessity focused on a single task, and therefore it does not make sense to have a windowing system. On a 10” screen the situation is different, and I hope that Apple doesn’t lock us into a single task metaphor. At a coding level I don’t see why an application couldn’t manage multiple UIWindows instead of the single one you’re used to on the iPhone.
Processor
AppleInsider had a great story about the iTablet, going into a lot of detail regarding the choice of the processor: ARM. Besides being good news for battery life, that is also good news for iPhone developers since that presumably means that the iTablet would be able to run iPhone binaries natively.
iPhone Compatibility
Apple acknowledges that a large part of the iPhone’s success is due to the App Store and the >65k applications available just a tap away. So consider the jump start an iTablet would get if it could run all those apps out of the gate.
Imagine that the iTablet had an iPhone simulator similar to what we’re used to in Xcode. If Apple spent some time on polishing the simulator app and integrating it better with the hardware (e.g. accelerometer, full OpenGL graphics support, camera, GPS) there’s no reason why it could not run a majority of the iPhone apps available on the App Store.
Even if the processor was not an ARM processor, running iPhone apps on the iTablet could be possible just like the Xcode iPhone simulator currently runs code compiled for i386. All iPhone app developers would have to do is recompile their iPhone apps into universal binary style bundles.
Going Beyond the iPhone
Apple has done an excellent job of keeping compatibility between the various iPhone/iPod Touch devices. New hardware features are add-ons that an application can take advantage of, while still working on older devices.
The main challenge of a tablet style devices is of course the screen size. UIKit is not locked in to 320 x 480, but there are no features that make resolution independent graphics easy. You could argue that moving between portrait and landscape modes on the iPhone is a taste of what is to come. If your application can adapt its screen layouts between 320 and 480, then going to other resolutions would not be a quantum leap.
Say that by default the iPhone simulator on the iTablet launches into 320 x 480 mode, but you have the familiar OS X red, yellow, green buttons in the top left corner of the window that could change the size of the window. If the iPhone application is capable of rendering on a larger screen then it just shifts into that mode. (Much like the OS X Calculator changes modes when you click the green button.)
Start Planning Now
While a tablet device is likely to be a smaller market than a phone, it doesn’t hurt to have another outlet for your apps. Start thinking about how your current iPhone apps could make best use of a much larger screen, while keeping the UI simplicity of the iPhone.
Disclaimer
I have no insider knowledge of Apple’s plans. If I did, I couldn’t be writing this post. The above speculations are purely my own, and as such they make sense to me. Please let me know what you think in the comments.