The WWDC keynote came and went with nary a mention of a new iPhone, but that didn’t stop people from ruminating about Apple’s newest mobile juggernaut. Apple’s brass spent much of their time on-stage pulling back the curtains on the latest version of iOS, and now some are claiming that a fairly innocuous (albeit useful) new feature for developers means that an iPhone with a larger screen is barreling down the pipeline.
That feature — Auto Layout — appeared briefly in a iOS SDK slide during the keynote, but most of us got too caught up with Siri updates and the swanky new Maps app to pay it much attention. Is it the sort of dead giveaway that iPhone fanatics have been breathlessly waiting for?
First though, a bit of background. Auto Layout allows developers to create a set of constraints that define how UI elements are displayed on-screen. Instead of using the standard “springs and struts” positioning method, Auto Layout allows those elements to shift and move depending on a prioritized list of rules — think “the left side of one button should always be 30 away from the right side of another button.”
It’s also worth noting that Auto Layout isn’t exactly new to the Apple development workflow — it was introduced into OS X with the release of Lion, and became the default positioning method for new Cocoa projects in Xcode earlier this year.
That’s great and all, but what does it mean for the new iPhone?
Developers will be able to streamline their UI design process, but Auto Layout’s uses may extend far beyond that. One developer I spoke with went on to say that in order for Apple to release mobile devices with multiple resolutions, Auto Layout is “certainly something [they] need to have in place before that’s feasible.”
Nelson Gauthier, lead iOS developer for LocalMind, seems to be of a similar mind — he told GigaOm in the weeks leading up to WWDC that the Auto Layout system as seen in OS X could work for iOS developers to more easily “transition between form factors.”
If they’re to be believed, Auto Layout could be a tremendous tool for helping developers prepare their apps for the coming of an iPhone with a different screen resolution. It would seem that with the right constraints in place, updating an app that used Auto Layout to display properly on a larger screen wouldn’t take too much additional time and effort. What’s more, the inclusion of the feature also means that developers who have taken shortcuts and made certain assumptions about the device’s screen size when crafting their apps’ UIs will more easily be able to get their products up to par ahead of an impending iPhone launch.
Still, we’re left without a smoking gun. The benefits of using Auto Layout are plentiful, especially for developers looking to localize their apps for other markets. Apple pointed to China as a prime target during the WWDC keynote, and I’m told that many of the sessions at WWDC the company positioned Auto Layout as a way to simplify app localization. With Auto Layout for instance, developers can more easily tweak the UI for alternate-language versions of their apps by tying those elements to constraints that allow for larger characters and smaller navigation icons as needed.
That’s not all — Auto Layout can also help developers with handling how their apps transition from portrait to landscape mode, or how even they handle having a call indicator bar sitting at the top of the screen. Though it aims to simplify certain parts of UI design, using Auto Layout is also far from an automagic process; to quote one of the developers I spoke to, “I wouldn’t expect to take an iPhone app, add auto layout to its xib file and get it to look fantastically custom on iPad.”
The jury, it seems, is still out on whether or not Auto Layout is a clear indicator of an iPhone with a larger display being prepared for launch. That said, its inclusion into the mix definitely doesn’t hurt — as one last developer put it, Auto Layout “is neither a sufficient or necessary condition for a different device… but if Apple is bringing out a 4-inch iPhone they would be crazy not to provide [it].”