An increasing number of websites are pushing for responsiveness, which enables a much wider audience to use a website across multiple devices and platforms.
While packaged web apps are essential, a responsive website is encapsulated to look like a normal native application that runs outside the web browser. Packaged web apps will usually have more freedom to access device application programme interfaces not normally available to websites.
The technology being made available to packaged web apps currently depends entirely on the manufacturer of the platform and operating system on which the packaged web app runs.
Most of the technology APIs being made available to developers are first created by leading web browser companies such as Mozilla, Google or Microsoft. In some cases these will work together to push new technology APIs forward. After ensuring that new APIs are stable enough, a draft document it presented to the World Wide Web Consortium to become a standardised API. This is done so that websites and packaged web apps using any technology API can be fully cross-platform compatible, which makes it easier for developers to make their websites and packaged web apps available to a much larger audience. Such technology APIs include geo-location, push notifications and raw TCP sockets.
There are a number of operating systems and devices that support packaged web apps as one of the ways for third party developers to create apps. One of these operating systems is Firefox OS, which is currently being pushed by Mozilla to phones, tablets and televisions. Other operating systems that are pushing for the packaged web app standard are Chrome OS, Tizen and Alibaba’s Yun.
For other operating systems that do not directly support packaged web apps out of the box such as Android and iOS, developers can use a web app wrapper, which is basically a minimalistic web browser with additional exposed proprietary APIs. These allow access to device hardware such as GPS and vibrate functions. In most cases these wrappers do not follow World Wide Web Consortium standards and will require developers to learn and switch any existing code to work with the custom wrapper APIs provided by the wrapper’s creator. Mozilla is also allowing Firefox desktop users to run packaged web apps directly as native Windows or Mac applications.
A large number of high profile development companies are already using packaged web apps as a way to bring their content to multiple devices
One of the most popular open source web app wrappers is called Apache Cordova which was formerly known as PhoneGap. This should not be confused with Adobe PhoneGap which is a cloud service which uses Apache Cordova in the backend. Adobe PhoneGap allows developers to create packaged web apps without purchasing the hardware required, such as requiring a Mac for developing on iPhone as the builds for the iPhone are done entirely in the cloud.
There are various benefits for developers using both offline and online service-based packaged web apps for their main front-end. One of the main benefits is quicker time to market as it is almost identical to website development, using the same technologies such as HTML5, JavaScript, CSS3 and even webGL for those who are developing games and other graphical apps.
A large number of high profile development companies are already using packaged web apps as a way to bring their content to multiple devices. One of these companies is the Russian-based ZeptoLab which produced the Cut the Rope game.
Although using packaged web apps can be a good solution, there are a few shortcomings which all developers should take into consideration.
The first is performance. In most cases, fast and optimised executions are not a critical factor for smaller or simplistic apps – however, performance is mandatory for graphical and memory intensive apps. Although packaged web apps do come close to the performance of other lower level languages such as C, using AsmJS which allows the use of lower level programming structures to be used, it will require a developer to use partially complex programming methods which they may not be aware of or used to.
Another issue of using packaged web apps is security, in terms of how relatively easy it is to reverse engineer back the source code from an obfuscated code compared to other programming languages. The best way to mitigate this issue is to put any sensitive logic on a back-end server away from any prying eyes.
• Matthew Anthony Pace is a software developer and electronics designer by day and a security researcher and blogger by night. He blogs at https://lookuga.com .