Don’t Sweat the Small Stuff (because mobility doesn’t have to be hard)

I often hear companies complain that transitioning to mobile is overwhelming. The mobile space is new and constantly changing; there are many opinions but few best practices.

“Which MDM vendor should I choose?”

“How do I enforce a Bring You Own Device policy?”

“Do I develop using native or web technologies?”

“Which tablet is the best for our business?”

Almost every week, a new mobile device is launched. Several new mobile OS’s are announced each year, each hoping to take a piece of the lucrative pie. If you are trying to make heads or tails out of this situation, it can quickly become frustrating. More than anything else, you want solutions that can respond to the changing marketplace effortlessly; something that doesn’t bind you to a single platform; something that can help you to “future-proof” your business.

Well, you’re in luck. Web technologies have solved these problems before and have evolved to deliver powerful, flexible, modern apps on all platforms. HTML, CSS and JavaScript have been used to bridge the gap between different browsers and platforms since their inception.

Today, standards are being written at breakneck speed to provide native features in the browser. Performance, multimedia support, and a vibrant development community rival those of each of the native platforms. HTML5 is today’s best technology for future-proofing your apps, creating a seamless cross-platform experience without locking into a vendor.

Reasons to Use One Platform

The sheer number of device form factors and platforms available means there is no way to use native technologies to provide access to more than a very small subset. Even if there were a clear market leader today (which as of the time of this writing there isn’t), that may change dramatically in 6 months. Your employees and customers may soon be demanding access on watches or devices not yet conceived, and you need to be ready.

There are obviously still many compelling reasons to use native platforms and each comes with a unique set of features to take advantage of. However, often times when choosing technologies, companies suffer from ‘eyes bigger than stomach’ syndrome and they look at what the platform can do instead of what they actually need from it. We’ve seen countless businesses turn around and build web apps after spending vast amounts of resources building native first.

To illustrate the benefits of a single platform, consider the following analogy: When you rent a car for a trip to the mountains, you know there will be some gravel, a few bumps and ruts, but you’ll spend most of your time on pavement. You can tell the rental company that you’ll get a Ferrari for the pavement and then stop in at another rental location to swap to a Hummer for the off-road parts. But this is insane. While the cars are perfectly valid options for their respective requirements, they aren’t pragmatic choices. Native platforms are great if you have a very stringent set of requirements. They can quickly become a straightjacket if you need something more flexible.

In reality, your plans may change at a moment’s notice. Having rented four different cars at four different rental locations means you can’t make a spontaneous scenic drive at the drop of a hat. Unless your company is an aberration, it is almost guaranteed that your business will have different requirements as soon as the next quarter. As a result, the technology you choose should provide you with near limitless flexibility, industry-leading usability, attainable tools and developers, and adaptability for future platforms.

Microsoft’s Big Bet

You may be under the impression that using web technologies is a compromise, however, this is not the case for most consumer and enterprise apps: web technologies are often indistinguishable from their native equivalents.

Microsoft has dramatically embraced web technologies; using them to build Windows 8 apps is their recommended approach. In a Build 2013 talk, they state, “we have taken a big bet on HTML” by creating a third development paradigm to DirectX and XAML. On Windows 8, they migrated their most popular app, Mail, to HTML5. But it doesn’t stop there: Microsoft has chosen to build Calendar, People, Store, Skype, Xbox Music, Xbox Video, Xbox Games, Travel, Weather, Sports, News, and Finance apps the same way.

Microsoft wouldn’t make this seismic shift without some confidence in the staying power of the technology and it isn’t the only company making the jump to HTML5 either. BlackBerry encourages using their WebWorks platform which works very much in the same way. Newer, experimental operating systems like Chrome OS and Firefox OS have made the web the only way of building apps.

Need for Speed

Browsers are becoming faster and faster. Rendering and JavaScript engines are built to take full advantage of powerful, modern hardware, but we haven’t reached the limit yet.

Mozilla is pushing a project forward called ASM which defines a subset of JavaScript that can be run in a heavily optimized way. According to some benchmarks, it can reach speeds that are very near (~2x) the best-case scenario using native code. Chrome’s rendering engine, V8, is working to achieve the same thing without restricting the subset of JavaScript that can be used.

Brendan Eich (Mozilla’s CEO and inventor of the JavaScript language) has famously claimed “always Bet on JS.”

Jeff Atwood asserted 6 years ago that “any application that can be written in JavaScript, will eventually be written in JavaScript.”

The W3C head of the Core Mobile Platform Community Group, Jo Rabin, claims that “the web quite clearly has the very significant advantage in that it has a totally cross-platform reach. The web is really the only viable platform on which you can say ‘I will write this thing responsively and it will work, broadly speaking, on any device.’ That can’t be said of native platforms and that seems to me a clear advantage of the web platform, and one that will be emphasized over and over again.”

Clearly, web technologies have some pretty big fans. Some lists rank JavaScript as the most popular language in the world right now. As you probably expect, this means that people and tools are available to support the web technologies in the long-term.

Tools

It’s important to mention the thriving ecosystem that allows mobile developers to integrate web technologies into native apps. No doubt you’ve heard mention of the likes of PhoneGap, Appcelerator Titanium, AppGyver, and Trigger.IO. New platforms or even home-brewed versions emerge all the time. They offer the promise of “write once, run anywhere”. While this isn’t true in a strict sense since each platform still requires some custom work to package the app for their devices, they get you most of the way there. In addition, PhoneGap has the track record and community to help you build anything you can conceive.

JavaScript frameworks reduce the boilerplate work common on native platforms. The important consequence of this is that developers can build and test ideas in HTML extremely quickly. The power of rapid development is that stakeholders can be consulted quickly, resulting in improved solutions. Developers can quickly whip up a proof-of-concept and defer native platform decisions until the last possible moment. If performance or aesthetic cannot be implemented in HTML for technical reasons, it is relatively easy to make the jump to the native platform with little cost after you have elicited clear requirements.

I, For One, Welcome Our New Web Overlords

Success in the mobility space requires long-term strategy. While the future is hard to predict, we have technologies that set a precedent for adaptation and multi-platform support. As a result, we have a future-proof solution to the extent possible in today’s complex mobile world. As native platforms adopt new and more appealing technologies, browsers are quick to catch up. Instead of falling behind, the web is becoming better and better at quickly evolving to match native experience across the board.