A key thing that clients sometimes ask us is whether or not they should be developing mobile apps. It's a good question. In a world that's becoming more and more mobile centric the app stores certainly have blossomed. Having a mobile app in these stores can increase your company’s brand awareness and can also be a step up on your competitors. However, traditionally the costs involved in getting those mobile apps out to the market places are potentially very expensive. You need to basically have multiple development budgets for each platform due to the fact that every platform has it's own entirely different operating system / code base, (the proliferation of phones and operating systems is sometimes referred to as fragmentation. A high fragmentation means a lot of separate versions of an app to build and maintain and hence a lot more cash from the business!). Throw tablet versions of your apps into this equation and you really do see the 'evil' potential of fragmentation.
What I want to do in this article is to introduce a much more efficient option and then outline a simple mobile development strategy to sum up.
Write Once Run Anywhere
As a software developer at heart I love the idea of developing an application just once, properly and that's it. The thoughts of having to develop the same application for web, then mobile device by device isn't actually a very palatable proposition, either for me from a developer perspective or from a client perspective who has to shell out significant cash to cover all device bases.
Wouldn't it be ideal if the software industry could just get it's act together and come up with a way to write an app once and have it run everywhere?
Enter HTML 5
This is where HTML 5 comes into play. HTML 5 is the latest version of the HTML standard which is what all websites are basically built upon.
A key goal of HTML 5 is to offer developers a functionally rich take on HTML that would allow them to write a site once and have it run everywhere.
In theory this means you can write your website using responsive HTML 5, (i.e the site 'responds' to whatever device is viewing it and adapts its front end to best fit the viewing screen) once and it SHOULD run perfectly on all devices.
In theory this works quite well, and in practice a large percentage of the apps that you'll find in the Google and Apple app stores are HTML 5 based apps.
Indeed the Firefox phone which launched in 2012 was built entirely around the HTML5 standard and ONLY runs HTML 5 based apps.
So we're good! We've reached the write once run anywhere nirvana!
Not quite unfortunately. It's still relatively early days for HTML 5 and there's still some distance to go before it truly becomes what it has set out to be.
The key thing to bear in mind about HTML 5 based apps is that they're fundamentally websites, they need the internet. When you run a HTML 5 app, what's actually happening is your website is running in a browser shell program.
Natively written apps on the other hand run stand alone on the device and can operate without access to the internet. This is a key difference that you need to bear in mind.
Also some devices won't support the full feature list of HTML 5, and you won't be able to get access to some of the key hardware components of a device without using that devices native API's (native code libraries), which in turn will require you to get down and dirty again with specific device Operating Systems. Also HTML5 based apps won't perform as well as a natively written app for the device in question, (but in most cases this is negligible). If your app needs the latest 3D graphic engine then forget HTML 5 also. HTML 5 will allow for some impressive 2D graphic animation but really going into anything deeper will require a native app.
This all said, focusing on just producing a HTML 5 based app has got definite benefits, especially if you can live with the restrictions outlined above, (which for the most part I reckon the majority of company's can).
So, If you do need apps that don't require an internet connection or need to have deeper access to the devices hardware then you'll have to build your apps using the native code environments of the various platforms and your costs will become significant.
We are living more and more in a mobile first world. It won't be long till the no.1 way that people access the net is over a mobile phone/device. This basically means that as a business you really need to put mobile access very high on your list when it comes to defining and planning your web presence. Does not having a mobile app damage your business? Right now, no, but in the future you may find this quickly changes, just as there was a time when not having a website wouldn't harm your business, but now if you don't have a website you're dead in the water.
I'd like to sum up by just giving my twopence worth on a general mobile development strategy for a business that's confused about it's mobile development plan.
Make sure that your company website is a fully responsive HTML 5 based site. This should be your very first port of call. It's not an expensive process relatively speaking and will speak volumes about your organisation when a visitor hits the site from their phones. This should be top of every businesses web agenda right now. By writing a fully responsive HTML 5 based website you then have the option with minimum effort to arrange to have it 'packaged up' and deployed as an app in the App stores if you need it to be. Straight away you have your new website and mobile app ready to roll with minimum cost.
A more medium term objective would be to explore the question “Do I need a native mobile app?”. My advice here is to ONLY build a mobile app if you have a genuine reason to do so.
By that I mean if you need to provide offline functionality/data and/or actually offer functionality to the user that you can't deliver via your website then go for it. A good example of this might be a mobile app that gives information pertinent to your current physical location (e.g. Halo and ordering a nearby taxi), or maybe an app that allows you to take photos and directly upload them to your server for additional processing whatever that may be. Do your market research and don't fall into the "If you build it, they will come" trap. This is going to be an expensive outlay for your business.
I think this is actually a sensible strategy for two reasons.
First it addresses the most immediate concern of making sure your website is mobile aware and 'friendly' which will say a lot about your company to your site visitors. It also gives you a presence on the app stores very cheaply if you need it.
Second it manages putting off making a costly decision until you absolutely have to. By doing the latter you're also increasing your chance of finding yourself in a situation where web technology standards HAVE evolved to the point where you CAN just write once and have your site be all things to all people!
As fragmentation becomes more and more of an industry issue the desire and need for a 'write once run anywhere' solution is going to insure that HTML keeps evolving in this direction.