Of my entire career, nothing has been more dramatic and transformational than when Steve Jobs returned to Apple in 1997 and shelved NeXTStep. All my dreams, all I had worked for, for 10 years, were shelved as well. By then, companies like GM, Hughes, Samsung, NTT, Siemens, EADS (Aéropsatiale back then), Essilor, lots of research labs in Europe, ... were using my software doing great things with it and somehow, this was shattered in one instant. Believe me, when people complained they could not upgrade their Lumia 900 to Windows 8, they are not even 100 miles close to the pain you get when you see a full decade's worth of work go away as your technology platform vanishes before your eyes. To a certain degree I think we have all lived this kind of event, not as instant and comprehensive as the NeXTStep one. Even Flash gave a 5 year warning to its developers.
With that in mind, I was amused to see this Mobile Development Platforms Gartner Quadrant this morning. A friend of mine asked me what did I think of it? What is a sensible no-bs lasting mobile strategy in 2012? I didn't see the Web Platform Magic Quadrant CIRCA 1995, but I bet it was not much different. Tiny (NeXTStep-based) WebObjects was the leader then... how many iterations have we been through? who could have predicted the rise of PHP? where are we now? All we know is hype always got it wrong, despite all the might of a Gartner or an IBM or Microsoft, completely wrong. "What works" wins. Always. So here is my answer:
1. Create your picture of the device market
We are at the last stop before this market is completely locked in by Apple and Google. I wrote that piece a couple months ago explaining that unless Microsoft somehow associates itself strongly with Facebook, Nokia and HP and adopts a vertical strategy, there will be no Microsoft in the mobile space moving forward. Today we know for sure the device market will be at most a three platform game and, after watching Google I/O's Keynote, my bet is that it will be just two platforms. Anyone who is trying to convince you otherwise simply doesn't understand that a device that runs an app can no longer exist without a platform behind it. If Sony, RIM or even Amazon do not have a sustainable platform behind their devices, nobody will buy them. It's funny how people can't grasp the "form factor" of software: they see a device, they think this little thing is autonomous, doesn't rely on something other than a voice and data connection, they don't see the extend of the software component behind. If they somehow could visualize some of their systems with a physical representation, I bet our industry would look much different. For instance this is a picture of the Nokia Lumis 900 after Microsoft's annoucement last week and here is a "Kindle" for instance (albeit not as pretty, I mean the Kindle is not as pretty as this public bench):
2. Understand that writing software for mobile devices is unlike like writing software for desktop
I would recommend a couple of presentations:
I would also recommend you understand where you fit and how you plan to use the mobile ecosystem. Here is a map that can help you:
3. Native vs Web?
Except for the people that make a living off Web technologies or the ones that are emotionally attached to the Web as a platform, everybody will tell you that HTML5 is not there yet and most likely will take at least a couple of years before it can catch up with native technologies, if ever. Just ask yourself how many Web apps do you actually use on your own smartphone? zero? Why don't you also ask, of all the native apps that you use, which one would be better as a "Web app"? zero? Users choose the best UX, period, technology is the least important factor in their choice. I mean come on, after nearly 20 years of evolution who can tell me that even on the desktop there is a Web app they would still use if they had a native choice? Everything that the Web was not, Apple baked it in its platform and won. Maybe the industry could stop for a second and ask why? If you still don't believe me, please watch this presentation. Even Facebook finally gave up ...
Not only Mobile Web frameworks don't work well in all the devices browser (contrary what the vendors say...), but you'll still have to deal with pixel level precision across multiple device form factors, they don't do that, not even close. Do yourself a favor, try building a small sample app (3-5 views with an API call) in iOS, Android and jQuery mobile, and try to run it on 5 common devices and let's talk again. Just for fun, just embed a call to a mobile Web page within one of your WebView and compare the user experience with the corresponding native view. Yes, as Google pointed out in its keynote the human eye can detect up to 10 ms delays. Even a ping can't be done in 10 ms.
If you want to take advantage of all the latest device capabilities do you think native or Web technologies will give you the best access? If you want to save bandwidth, power and deliver the best user experience, which app will do that? Native or Web?
Do you have an Android device? What do you think of the Google Weather App? yes, when you ask for the forecast and you are redirected to a "mobile-optimized" web page that displays the weather forecast in your city. Do you think you want your users to go throught the same kind of experience? Yeah, I guess you get my point.
Don't be fooled by Web developers who see the train coming (or going) and they are either going to be steamrolled by it, (or simply stay on the Web platform, so to speak).
So, with 2 platforms to support, it is actually fairly easy to build a mobile team that will be proficient in both. Beware of people scaring you with the wrong problems to buy their tools. The only problem you have, the only question you should answer is how do I deliver the best user experience in the context in which the app is used for the devices that my end users have. Everything else is a waste of time, because we are now in an End-User driven market, geeks no longer have the luxury to chose what is convenient to them. They hate it, this is the first time in history they lost control of their technology choices, but they are going to have to learn to live with it if they want to tap the 1+ billion user smartphone market. That's actually very refreshing. End-users expect certain patterns and behaviors, these patterns and behaviors are all native. One of them is actually quite interesting: End-Users expect to spend money to buy native apps...
You would think by now that most companies will have developped some kind of allergy to proprietary/closed middleware platforms (or at least an immunisation mechanism). It is already bad enough to be locked in Apple and Google, imagine being locked in a much smaller vendor who can disappear, change direction or be acquired any minute. Yep, that's the value proposition of companies like Rhomobile (now SAP) or Antenna: support all the platforms you don't need while you get locked in ours. Even IBM would have never thought of this ... wait actually they did. They bought WorkLight for 70 M.
Why don't you ask them how fast they are going to be following evolutions of Apple and Android SDKs and how low the common denominator in supporting every platform is going to be?
5. Keep it Simple
In the light of this context:
If Instagram can teach us something (other than printing money) is that Content is now produced, delivered and consumed in a completely different way: in context. The browser is dead, long live HTTP. Everything is on the table to be reinvented.
My recommendation is keep your strategy as simple as possible: write your apps for iOS and Android. This is not the end of the world, it is relatively easy to hire a small team of polyglot developers. You don't need no middleware for that. Before you know it you would have spent millions of dollars for capturing just a few % of the device market or supposedly empower your developers to write apps in ... two platforms. Who in their right mind would spend that kind of money? Where is the business case? Just buy an iPhone or an Android phone for your employees who use any other device. That will be much cheaper than any middleware or developing for additional platforms.
Gartner will always be Gartner, they make lots of money selling these Magic Quadrants to both ... the vendors and their "customers". So you have to decide whether you want to be scared by that picture or leap-frog it with a Simple (but far from simplistic) Mobile Strategy. Your call ...
Post Scriptum: Mobile Web Sites
Yes, mobile Web sites are not going away. And HTML5 is a good fit for them. But you have to think in terms of form factors: understand that "search" has become an "app", a family of apps. You search in context, Yelp, UrbanSpoon, Fandango... on a mobile device, you rarely search out of the blue or research some information for your homework or paper. You search for a purpose and there is a search app for every purpose you can think of. Search might even be considered just a feature, not even a family of apps. So think of your mobile Web site as being a way to publish information to a small search app that people use now and then and that app is called Google. Again, think in terms of form factors. The Web form factor in a mobile world is this tiny island of HTML rounded up by a -plain vanilla- contexless search app. So all you really need is a couple of "Web" pages so people can find you if they care to look. Make sure you provide a link to your native apps on these pages. That's all your users care about. The Web is emphatically tethered. Make no mistake about ot.