I personally don't recommend HTML5 for native mobile or desktop app product solution. HTML5 is web standarad, which is quite capable to replace Flash Player in web browsers, but it cannot replace AIR, it's not suitable for native app development.
For mobile native app development (not game), I recommend Apache Flex 4.10 SDK + AIR 3.8 SDK (or newer versions), cuz since AIR 3.8 if you set renderMode to direct, Flex app will perform very well on mobile devices.
Here is the post I wrote earlier about it:
Although Flex 4.10 still has bugs over some mobile components, the core spark architecture is mature and efficient. And these bugs are being fixed by Apache Flex Community.
Components that I don't recommend use for mobile app are: Spark List and everything extends it.
Reason: when used in mobile, scrolling contents performs bad, cuz it frequently recycles unseen itemRenderer instances, and frequently renders new itemRenderer instances, which is bad for old single core mobile ARM CPUs like iPhone 4.
To solve this problem, I've written my own List and ItemRenderer, built it from the ground up, and they performs very smooth!
Components that you need to use with cautions: ViewNavigator and View.
Reason: ViewNavigator by default creates new instance of every view it pushes, and re-renders every View instance, which results in bad performance. Although View MXML has a property named "destructionPolicy", which can be set to "never" to prevent from destroying the view instance, it still has a bug, it only works on ViewNavigator.popView() not works on ViewNavigator.pushView().
Components I recommend use for mobile app are:
SkinnableComponent, Scroller, DataGroup, Group, Skin, Button, FXG etc...
It's best that you write your own custom components, which extend SkinnableComponent, declare your skinparts, skinstates, and design your own MXML skin for it.
It's very safe and efficient to use MXML for skinning, it performs very well on mobile devices now. You don't have to write your skin using pure ActionScript (which is very painful and low efficiency).
The data binding, advanced skin state and transitions can all be done in MXML, which is pretty awesome.
I think Flex is rising again, for I've already use it for crossplatform app development solution for my products, I've test it on the iPhone, iPad, Retina MacBook Pro, Android phones, it performs very well.
If I understand correctly, HTML5 app cannot be upload on iOS App Store unless the app used the "hybrid approach (native + HTML5)".
People just keep saying how good HTML5 is, but in fact it is still like a baby when compared with functoinarity of Flex. Most of them saying that becoz they know nothing but Steve said it is good.
There is a time that some ppl claims Youtube will stop using Flash and video will be played with HTML5. But today, it is still rely on Flash. Time always tell the truth.