To read all comments associated with this story, please click here.
Resolution independence is a solved problem. Where issues start to arise are on displays with different aspect ratios. The app will scale, but things will look different.
Windows 8 solves this by having a developer choose between letter boxing and showing more content.
Works well for apps (which likely will want to show more content) and games (which sometimes will prefer to letterbox).
Unless you are talking about the technique of pixel doubling a display (or another multiplier that results in integers, not floats) I strongly disagree. When I resize vectors (typically in Photoshop) to a by a non-even multiplier such as 1.33 (used by Nexus 7) i often have to re-arrange and redraw a lot of my graphics. With 2X (Retina Apple stuff, some Android devices) I just resize and all of it looks sharp (I might still do some adjustment, but I need to do way less than with non-even numbers.)
Even if you export everything to vectors you still have to think about where on the pixel grid those vectors actually fall (this will affect how sharp things look).
Bjango have a excellent blog post on this subject if you want to know more: http://bjango.com/articles/everythingisagrid/
Yes, it's not because iOS cannot handle different resolutions at the low level (e.g. display drivers). It's because its UI toolkit does not come with a proper layout manager as standard. This makes many applications hard-code layouts for specific resolutions, making change of the resolution on new devices a pain. So it doesn't matter much that iOS could run with a different resolution. It's still not going to happen: otherwise all apps will look ugly at launch.
Android apps handle different resolutions fairly well. Of course, there's no magic that will automatically optimize your layout for different screen sizes, but similar sizes with different resolutions work fine.
iPad mini will have the size problem too -- even though the resolution matches previous 10" iPad many apps might want to use a different layout on the smaller 7" screen.
UIKit does actually come with a proper layout manager, it had it from day one,
As many other things in cocoa touch it was inherited from mac UI frameworks (years back I believe from NEXT), If a developer use standard UIKit widgets (and many does) he can define layout attributes very easily from the interface builder, no need to write single line of code.
using standard view controllers doesn't even requires to define anything.
for standard UI apps all a developer has to do to support the iphone5 resolution for example may very well be just updating the splash screen image.
The reason it doesn't happen automatically is because apple wants to force developers to test the apps on the new resolutions.
The reason apple got to this unfortunate state in the first place comes from the fact that unlike android, all the iOS devices that were running iOS at the time apple opened it for third party development had the same screen and same resolution, Lots of developers were lazy and just statically positioned elements, it worked perfectly on every iOS device back then.
The situation is very different from android where from the very beginning it was obvious that android devices will come at different shapes, sizes and resolutions.
On the other hand though, the fact that developers has to test and create updated build to support new resolutions is also one of the main reasons that encourage app developers to create a proper suitable layout for the iPad form factor.
As you say, Android apps handle different resolutions fairly well, so it's good enough reason for lots of developers to leave it as it is.
iOS and Mac recently gained a new API for auto-layout called ... Auto Layout:
http://developer.apple.com/library/ios/#documentation/UserExperienc...
This should go a decent way towards assisting developers create flexible UIs. Admittedly it's a few years too late and IMHO still not as intuitive as most XML(/other UI-domain specific language)-based frameworks, but it's the best thing Apple's come up with yet.
Edited 2012-10-24 14:03 UTC
You are exactly right, but it was an opportunity for Thom to get in a dig at Apple in the article, pure and simple. The same thing applies to Android and the dozens of screen resolutions of all the various phones and tablets that exist. That's great for choice, but horrible for developers, who have to try and support all those resolutions. Sadly it doesn't happen, and some apps work on some phones and tablets and others don't. Combine that with the fact that most of the Android devices out there are running an OS that is 4-5 versions back from the latest one, and you have a true mess. Apple is avoiding this mess by making the iPad mini's screen resolution a complete non-issue for developers. Existing apps all WORK.
It's still a trade-off. Apple's choices have made it more difficult to let iOS and its applications support multiple resolutions - but they did so to make it easier on developer. However, the downside is that resolution has become a constraining factor in designing iOS hardware.
Android made a different choice, with different tradeoffs. Pointing that out is not a dig at Apple - it's a simple and cold fact.





Member since:
2006-01-01
I don't think the issue is that the OS does not support multiple resolutions. It supports them fine.
The main issue is that, traditionally, most developers hard code positions and sizes into their apps making it difficult for apps to adapt to different resolutions automatically.
Both Microsoft and Google strive for resolution independence but as you can see from the apps themselves that process is just not very successful. This is mainly because it's easy to just let some fields stretch but it much more difficult to reorganize a UI dynamically for a larger screen.
]{