Alright guys, I have just signed up for the sake of replying to this hot topic.
First off, let me start by saying that both sides have valid points. However, essentially Android guys do not seem to consider the whole picture. I do say this from a biased perspective as I personally favour iOS devices both for use, as well as for development by far.
So here we go:
Most commenters above are right in saying that resolution in itself does not matter as much. This one is true both for apps, as well as for games.
Game engines, especially 3D ones are extraordinarily good in scaling independently of resolution. This does not cause any major headaches during development. It gets a bit more important for app development but even there resolutions don't vary as much due to increased pixel density on higher resolution screens. Essentially the resolution might be higher but the pixel density makes up for it. Hence, in both worlds it is extremely convenient to work with density independent pixels. Essentially positioning something at position let's say 30x, 30y will look the same on a Retina and non-Retina device. The same goes for Android.
Optimising for various pixel densities might be annoying but at the end of the day mostly comes down to exporting graphics in different resolutions and that's about it.
This is essentially different from resolutions as we saw them evolve in the PC market over the past, where most displays had 72 dots per inch and difference in resolution equaled the amount of space you'd have on the screen.
The real problem with Android when it comes to game development comes down to various different chips being on the market, some supporting all OpenGL ES features, some only a subset, some older versions, etc and you end up tweaking shaders for ages. This is especially a problem with budget phones.
It is also correct that Android / Google's APIs and UI components scale very well and technically can support any resolution without causing headaches. And yes, there are nice things such as fragments, which make it easier to show content on varying screen sizes.
However, there is something intrinsically important and that is consistency and aspect ratio. You know exactly where you stand with iOS. Retina or non-Retina doesn't matter. You have essentially two screen sizes with two aspect ratios on phones and you got exactly one on tablets. That's the huge deal, I'll get to exactly why a bit below. This is a huge convenience when creating really detailed user experiences and shouldn't be underestimated. Especially consider, that the iPhone 5 is essentially only different in height while maintaining width. You don't get that on Android. Not at all. You got a crapload of various screen sizes and "slightly" varying pixel densities also affect the amount of content rendered on the screen.
Thus, while creating apps using only standard components provided by Google or making a huge effort writing your own, extremely scalable ones, makes the app adapt without headaches, it also makes it look up to extremely different over various devices. Nowadays there are also many folks out there that expect an app to be creative and to look different than all others, which requires developers to come up with different UI ideas than tinting the action bar or putting some gradient in it.
Also consider that many of the really great apps are designed extremely carefully. Every button, every icon, every element you see on the screen is carefully positioned. There are sometimes hour long debates on moving an element even just a single pixel (or density independent pixel). The same goes for content that is not scrollable and therefore of foreseeable size, carefully designed. So what happens on iOS? Absolutely nothing, you have one factor to consider if you develop for phones and that's the extended height of the iPhone 5. Nothing more. You would either work on the spacing, on background elements or you'd display some additional information on only this one device. That's it.
Android on the other hand is a bigger problem. You just can't foresee what kind of device your customers are going to use. There are three inch devices and there are Galaxy notes and everything possible and impossible in between. This causes the app to get stretched, both vertically as well as horizontally. Technically this is not a problem, since the app simply stretches and that's it. However it might look funny, it might look ugly, it might look somewhere in between or it might in extreme cases make your user interface seem sluggish and not well thought through since you didn't optimise the UX for every possible case. This is a huge and major pain in the ass, don't be mistaken. We're not talking about developers being unable to work without hard coded pixel values. We're simply talking about an initially beautifully designed product looking weird on certain devices.
Then obviously there is the choice on language and its VM, which in my opinion was a stupid decision, which is also why I believe not even another 10 projects butter will get rid of all UI lag, especially as resolutions increase. You gotta fight with limited heap sizes, gotta write a lot of lines for certain essential things, which makes you feel as if you're reading bytes off a raw socket rather than using an API and you gotta fight with exceptions, even though all you intended to do is test something which either works or crashes, which you expected.
The developer tools in itself are a major headache. They're by far not as polished as Apple's. They're not comfortable and they're ugly. Additionally you are being forced to swap devices through multiple cables because testing something on the simulator which takes roughly two minutes to boot up and then offers horrid 0.3 FPS is just a huge pain in the ass. And don't even try telling me about enabling host GPU support, which is experimental and doesn't work with all features. Oh, and especially not with remembering emulator state. Fantastic.
In general there are just a lot of ifs and buts and this and thats. This becomes apparent just reading the documentation, where you'll always find attention this, attention that, warning this doesn't work with xyz, attention in cases such and such, support library here, but then again not fully and so on.
The bottom line is: Developing for Android and supporting Android from a customer support perspective takes longer, more effort and is more expensive than it is for iOS. It is also (subjectively) less fun and less rewarding. The whole experience down to developer tools is just not as good and not as polished. You gotta fight with old OS and API versions, certain incompatibilities due to support libraries, you gotta fight or compromise in how interactive your app can be due to old phones without notable hardware, which again makes for a sluggish experience and so on.
Will this stop developers from making Android apps? Not if it is worth it for them. Reality is, in many cases it is not and in other cases it is just not worth the effort over just developing the next thing for iOS. Still, there are great apps coming to Android, often however later than their iOS counterpart, except for idealist developers who develop for Android first or only.
The thing is, seeing the differences in market share, I am asking myself whether this will ever change and whether the broader development community would make more off Android if it had 100% market share, considering most make significantly less there despite >80% worldwide market share. Another factor to consider naturally is the general experience and smoothness of development for iOS, which makes it the prime platform for your flagship product. You got exclusively capable devices, you got a predictable target platform and you can count on the fact that almost everyone is on the latest OS and has a credit card with one click purchasing registered.
So much for my take on the topic. However, please stop this discussion about junior developers not knowing how to code resolution independently. That's not the issue. ;-)
Edited by cynic - 3/6/13 at 12:21pm