Building an HTML5 Web App

I have an Android App called Concert Tipper but as yet I have not been able to get the same cross platform App approved by Apple for inclusion into the Apple App Store. I am also building an HTML5 Web App version which will run on any HTML5 compliant smartphone. The Web app will be totally under my control and not subject to any review process just to get it to run on your device.

Users don’t really care about any of the problems associated with getting approvals into App Stores. They just want to run the App on their device no matter what smartphone they use. This is the promise that HTML5 holds. We shall see to what extent that promise is delivered.

I’ve been developing software systems of all kinds since 1979. I’ve been building web sites and Internet services from around 1998. I am no stranger to desktop applications, server applications, web applications and embedded systems to name a few. Picking up the basics of HTML5 and Web Apps recently was a challenge but no more so than mastering any new technology. In fact I have to say that I have worked on far more complicated things in the past.

Before I started to convert my Adobe AIR App to HTML5 I looked around at the many Javascript frameworks that are currently available. This was a chore in itself and it took me some time to decide to use the JQuery Mobile framework to provide a user experience similar to what you might find on a mobile App and also similar to the interface that I developed for the AIR app. I also looked at some templating and data management frameworks but decided not to use them as they all looked a little bloated and overkill for my purposes. Instead I opted to code any requirements in Javascript on the client and PHP on the server.

The server side back end database and scripting already existed of course. I had developed this for the AIR apps. This meant that I could concentrate on the HTML5 and user interface which I have to say is coming along nicely as I speak.

Problems? Yes there are some, of course there are. Most of the time consuming ones tend to be caused by incompatibilities between mobile browsers. Some HTML5 compliant browsers are more compliant than others and getting the App to work satisfactorily on all devices is the latest challenge. Safari on the iPhone appears to be one of the better browsers in this respect.

Speed of operation and user responsiveness is also a challenge with a Web App. With the native AIR App I was able to cache a lot of data and provide the user with a fast UI even on the slowest devices. The Web App requires more time downloading data from the server and Javascript tends to be a little slow on older devices. The trick here is to code an acceptable compromise between download/processing time and user responsiveness.

I’m sure that I will come across more challenges before this HTML5 App is completed so I better get back to work.