It's the apps. The iPhone and Android conquered the world because of the apps. More specifically, what keeps Android and iOS dominant is the utter lack of those apps on competing platforms. But today, the mobile landscape is significantly different than it was a year or two ago (let alone five). Today, apps aren't really necessary. In fact, it's easy to envision an excellent, software-rich mobile device that uses the Web instead of apps.
There's currently a litany of problems with apps. There is the platform lock-in and the space the apps take up on the device. Updating apps is a pain that users often ignore, leaving broken or vulnerable versions in use long after they've been allegedly patched. Apps are also a lot of work for developers— it's not easy to write native apps to run on both Android and iOS, nevermind considering Windows Phone and BlackBerry.
What's the alternative?Well, perhaps the best answer is to go back to the future and do what we do on desktop computers: use the Web and the Web browser. Updates to HTML apps happen entirely on the server, so users get them immediately. There's no window of vulnerability between the release of a security fix and the user applying the update. So with a capable, HTML-based platform and a well-designed program that makes good use of CSS, one site could support phones, tablets, PCs, and any just about anything else with one site.