The first class, which we call Web-based
frameworks, allows developers to build mobile apps using
languages popularly used to build Web applications, such as
HTML5, JavaScript, and CSS. Examples of such frameworks
include Adobe PhoneGap/Cordova [1], Sencha [7] and IBM
MobileFirst [3]. Developers specify the app’s logic and user
interface using one or more of the Web-development languages.
However, these languages do not contain primitives to
allow apps to access resources on the phone, e.g., peripherals
such as the camera and microphone, the address book, and
phone settings. Thus, Web-based frameworks provide supporting
runtime libraries that end-users must download and
execute on their mobile devices. Mobile apps interface with
these libraries to access resources on the mobile devices—
such mobile apps are also popularly called hybrid mobile apps.
Web-based frameworks allow developers to rapidly prototype
mobile apps. However, these frameworks are ill-suited for
high-performance apps, such as games or those that use
animation. The expressiveness of the resulting mobile apps is
also limited to the interface exported by the runtime libraries
offered by the frameworks.