I don’t know about you, but I am getting asked more and more to deliver some type of application that has a mobile front end. Of course mobile is one of the big trends nowadays, and there are good reasons for it. In a recent Forrester survey, 75% of decision makers claim that deploying mobile apps has increased their workforce productivity.
The question I seem to get asked often is, how should you implement mobile?
To keep it simple, I have found that there are three implementation strategies you can choose from to build your mobile app:
- Native Applications
- Mobile Web Applications
These are apps built for a particular device and operating system. They’re cool because you can build extremely rich and interactive apps that take advantage of all of the phone’s features. The problem is they’re hard to build, and you need to have different code (and sometimes different dev teams) for each different device – a maintenance nightmare…
These are applications that run on the device’s browser. Using standards like HTML5 and CSS3, they provide a very good level of interactivity that is getting closer and closer to what you get from native. They run on a web server, instead of running on the device, which gives the possibility to deploy the same app for multiple devices and greatly simplifies application maintenance. The Financial Times is an example of a major player that has decided to move from native to Mobile Web.
These are a mix of Native and Mobile Web. A thin native shell is built around a browser, where the bulk of the application runs. The thin shell allows the application to access phone features that are not available in HTML5 (yet!). It also meets the requirements of being native in order to distribute the application on the appstore. On the maintenance front, well you guessed it a bit of a mix between the native and mobile web. Major players such as Facebook have chosen this route by building their own “wrapper” and then executing all the site content as a web app in that shell.
- Use what you know: Reuse all the knowledge you have from web development. There are still new things to learn, but it beats learning a whole new system.
- No approval process: Skip all the steps necessary to have your app on the appstore. Just publish to your servers and you’re done.
- Auto-upgrade: All your users will be using the latest version of your app. No need to manually upgrade the app on their devices.
- Ready for a lot of devices: Using standard technologies like HTML5, your app will be ready to run in a lot of devices in one go.
- Be Agile! By skipping the appstore approval process and by being able to release for multiple devices at once, you can have truly short iterations and release new features early to your users.