Multi-platform app development is still a hot topic, and often times as mobile app developers we get asked by clients how we can develop their app across multiple platforms more quickly, and cost-effectively. A lot of times we get asked if we can use a cross-platform development tool or something of the sort.

So this brings up the question – why would you develop an app natively on each platform when you could potentially use HTML5 and develop it on all platforms? This is a great question, and I will try my best to answer it here.

What is HTML5?

First, you might be wondering what HTML5 actually is. When you hear people talking about HTML5, it’s not just about HTML5 itself. It is really a combination of three things – HTML5, CSS3, and Javascript. When anyone is talking about using features in HTML5 they are usually taking advantage of all three of these technologies. It is not yet a standard, but WC3 (an industry group trying to establish programming and design standards for all elements) is targeting that to happen at the end of 2014.

Basically, HTML5 sort of started in 2004 depending on how you trace lineage. So you can see the problem with these standards is they take a long time (in this case a decade, depending on how you look at it).

What is the Big Deal?

HTML5 is kind of a big deal, mostly because it integrates all this cool stuff for multimedia and graphic content. It will eventually be a web standard, which is important for web app and mobile app development going forward. The problem with HTML5 – figuring out which browsers support which features for HTML5 and CSS3. The nice thing is it at least provides ways to figure it out and detecting whether a feature is supported, but the fact that you have to do that in the first place means you are spending a lot of time developing thinking “if this feature is supported, we can develop it this way. If this feature is not supported, we have to develop it another way.” People are getting around this problem by writing HTML5 libraries that automate the process depending on how the browsers work.

Is HTML5 Ever a Realistic Solution for Mobile App Development?

HTML5

When I evaluate whether or not to use HTML5 for app development, the process I would go through is to look at features I was trying to use, look at the combinations of phones and browsers I would want it to work on and start there. If there was a particular feature that was device specific, I may decide that HTML5 is not the way to go.

In all honesty, many of the cross platform app frameworks are just HTML5 frameworks; for example PhoneGap andTitanium. One of the issues when using these is that not everything is supported in every browser, such as all video formats like MPEG4. Another issue is how much of the local device functionality do I need to use and does the combo of HTML5 and Javascript support that local device. Location services are one of those things that are HTML5 supported, but depending on what you want to do it may not work on that particular phone or operating system.

In a lot of cases, app developers may decide to develop an app partially in HTML5, and partially on each native platform. Games are an example that can be developed in partially in HTML5. You can develop the device specific functions natively and partially use HTML5 that is loaded into a window. Say for example, you had a feature on your app that was interactive and displaying video where the user just scrolls through while playing a game. And then another feature was using the native SMS service or location services. You could develop the first feature, the video scroll, in HTML5 and the second part natively. It is possible to save some time and money because you are not developing the whole thing over again for each platform.

When Should You Use Caution with HTML5?

HTML5 and other cross-platform frameworks can be deceptively attractive.  A lot of times there are issues where you will have to find workarounds and develop certain features two or three times anyway, and may end up having to sacrifice some features.

When your app uses tight integration with the phone, it is a good idea to just develop for each native platform. Also, if there is a lot of data manipulation and data interaction, HTML5 is not well suited for these activities.. Another consideration is thinking if you want the iPhone app to look like an iPhone app, and the Android app to look like an Android app. These platforms have different user paradigms, and if it’s important that your app has platform-specific styling, then using HTML5 will not give you the result you want.

One more tip, there is a site called CanIuse.com. They show all the compatibility for support of HTML5, CSS3 and others in desktop and mobile browsers. This is a good tool to use when evaluating whether or not your app can use the HTML5 framework, or you can contact us for help.