The frontend of the app is built with HTML5, CSS and JQuery, JQuery Mobile and AJAX. HTML5 apps are getting more and more popular but it is still fairly uncommon to come across them in an app market place such as Google Play or the Apple App Store. The majority of the apps found in these app stores are created using native code. There are a number of pros and cons to each. One of the main limiting factors of creating a HTML5 app was accessing native like features. For example, a HTML5 app is unable to access the systems share system or even hardware features such as the camera and microphone. In order to get past some of these limitations, PhoneGap/Cordova was used.
PhoneGap is an open source framework that allows the creation of mobile apps using various standardized APIs. Once the frontend of the app was completed, the PhoneGap app was compiled using an IDE called Eclipse. Once the app was signed, it was then ready to be uploaded the to various app stores.
One of the downsides to creating an app using HTML5, is unfortunately speed. At this moment in time, the speed of native applications cannot be matched by an HTML5 application. On some devices, some things such as page transitions can appear a bit choppy. Another problem that we came across was the ability to use a devices built-in notification system. Currently, there doesn’t appear to be a clear way to be able to send a notification to a user’s device, or show the notification count on the application icon.
On the server side of things, a PHP framework called CodeIgniter was used, which claims to have a small footprint, and be ideal for powering the next generation of web applications. Storing all the users data, is a MySQL database. In order to communicate the frontend of the app to the backend, a lot of AJAX is used.
One of the main challenges faced during this project was the initial steep learning curve. This was particularly the case when using JQuery Mobile and PhoneGap. It took a while to get used to JQuery Mobile’s architecture, as the way it was structured was quite different to anything that had been used before. On the PhoneGap side of things, the most difficult part was the initial set up. A lot of software had to be downloaded such as Node.js and the Android SDK, and a number of environment variables had to be configured.