I studied iOS development for a few months, read a 600 page book on it, and tinkered around with it for a while and found myself begging for CSS. Native custom app interfaces seem backwards to me - the difficult of writing core graphics methods for every bevel, rounded corner, gradient etc has a lot of developers just using cut images for everything. Disclaimer, I'm way way more experienced with css than i am with core graphics - just my impressions.
CSS is fine until you want to build something specific. The amount of hacks required for even the simplest thing is amazing.
Want that UL to have it's LIs in a grid? Use float. Float was supposed to make text wrap around images, but we use it for the side effect of making block elements behave like inline. It also messes up the height of the UL, since it doesn't really contain any text to be wrapped around. You can fix it most of the time, but it's a hassle, and prone to break.
Want a UL to be on one line and centered? There's a hack for that! And it's completely unintuitive black magic.
Even the simple things like lining up elements with a fixed margin between each other and to the containing element was a great hassle up until just recently when we could finally begin relying on CSS 3 features.
It's a big stupid mess with missing features and features misused.
The basic idea was OK, with the selectors and rules. The execution as was 10 years ago, and to a large degree still is, was horrible.
> the difficult of writing core graphics methods for every bevel, rounded corner, gradient etc has a lot of developers just using cut images for everything.
On iOS, the QuartzCore framework provides declarative methods for those common style choices (rounded corners, gradients, etc.).
Not only that but it's usable today. Both webkit and gecko have very close implementations with only minor edge cases, none of which are insurmountable.
Not sure about iOS support for the new layout modes.
Browsers, in fact, already use the shadow DOM to render many of their custom forms. It's just not available programmatically yet.
Layouts aren't completely horrifying if you use a good, responsive grid, although within that grid framework itself there are likely some hacks. But as mentioned -- new CSS layout types are coming!