Recently, I was talking with a buddy whose employer needed a mobile app designed and built. As he described the idea to me, it quickly became apparent that the hard work was in backend programming, network configuration, and integration with existing systems. The mobile client app itself (i.e., the part that would be installed locally on users phones) was pretty basic. It consisted of some input fields, some text, and a half dozen buttons. Maybe five or ten screens total.
My friend works for a large manufacturer. They have lots of talented web geeks on staff, but no native mobile developers (e.g., iOS, Android, etc…). The app would have to run on iOS, Android, Windows Phone, and Blackberry to support a consumer product that is currently humming along nicely in over a million homes.
Given these factors, I suggested that they build the app with HTML for the following reasons:
- Using HTML would allow them to leverage their existing web talent to design and build the core application and deploy to all four platforms (as well as many other platforms in the future).
- Going pure native would result in development, debugging, and maintenance of four separate code bases.
- Going pure native would make them dependent on external resources for ongoing updates and support.
Much to my chagrin, my friend’s response was:
Yes, we considered HTML for the mobile app, but we ruled it out because we want the app to run offline.
This comment bummed me out for two reasons:
1) Web apps can run offline.
Web apps can, in fact, run offline. With HTML5, the Web’s dependency on a connection to the Internet has been broken. Web apps can now run offline in modern browsers thanks to HTML5 support for client-side storage of relational data, key/value data and static assets.
2) Web apps and HTML apps are not the same thing.
When I recommended to my friend that they build an “HTML app”, what he heard me say was to build a “Web app”. These are not the same thing but his confusion was understandable because the terms “Web app” and “HTML app” are often used interchangeably.
To put it concisely: The Web is a place. HTML is a material.
Happily Ever After?
My friend is an open minded type of guy. Once I pointed out the offline capabilities of HTML and explained the distinction between HTML and the Web, he saw the advantage of the HTML approach and agreed that it was the best approach for the situation.
However, this isn’t how it usually goes. I often see HTML ruled out based on this sort of misinformation. The resulting waste of time, money, and effort drives me nuts. My hope is that this post and others like it will help dispel the confusion about what HTML5 is and what it’s capable of so IT leaders can make an informed decision about the best choice for their projects.
About the Author
Check out Jonathan’s books on Safari Books Online:
You may also view the free webcast:
You might also check out this video by Jonathan Stark and Brian LeRoux.
Cross-Platform Mobile Development with PhoneGap
By Jonathan Stark, Brian LeRoux
Publisher: O’Reilly Media
Released: June 2010
Run time: 1 hour 2 minutes