I think all-in-all a good hedging strategy is to build around MVVM or a pattern like it but getting devs who are coming out of the VB6 dark ages to get their heads around it is a whole other issue. I also work with web devs who still build gigantic web "pages" that contain a ton of views along with the spaghetti JS code to play hide/show games on the client. Sure they can get the pat on the head from the customer quicker but in the end those pages are a train wreck to maintain and are very brittle. With the Android app I inherited last year the previous developer clearly didn't understand the concept of separation of concerns nor dependency injection. He thought the app (which he inherited from a more capable dev) was too brittle because it had all of these layers. His solution? To move much of the code into a single class. He said it was easier to test that way too. Am I just unlucky to work with so many incapable devs or do you guys run into these types too?

So in the end being able to take a noble concept like MVVM and get traction on it isn't always an easy thing unless you can get the boss to fire the team and tell the customer it will take longer but will be better in the long run. This is why picking a target platform is so important (and more difficult) these days.

And what is this intangible quality of a native app that despite HTML5's super interactivity that it provides still has users preferring it over web apps? As I user I fall into this category of thinking. HTML5 advocates better figure out what that is if they are going to get more eyes on their apps (beyond the traditional web site that they can now trick-out with HTML5).