is4mobi is a multiplatform OS framework to bridge the gap between mobile web and native mobile applications. I started the project as a thesis idea when I was an intern at Ooros. After few months they hired me to continue the project in cooperation with other companies (Telecom Italia Lab and Aton) and the Polytechnic of Turin.
The project, started in 2009, is composed by three main parts:

  • A bridge between the native application and the browser that allows a developer to build mobile applications built on HTML5, CSS3 and JavaScript
  • A set of graphic tools and javascript libraries optimized for mobile that help a developer build coherent and rich UI based on standard Web technologies
  • A communication API and the users’ presence management based on Ajax and XMPP

The native-browser bridge

is4mobi allows a developer to build a web based application that can have the same privileges of a native one exposing a set of API. In this way a developer can build a mobile application based on HTML, CSS and JavaScript as it was (almost) a native application and run it on multiple platforms (iOS, Android, BlackBerry). The bridge between the operative system and the web-based application consists of a native application. The application consists of a browser that exposes some native API to JavaScript running inside the browser. In this way a web based routine can access every native API exposed by the framework. Because of the similarity with PhoneGap, is4mobi was finally modified in order to be compatible with the more successful framework.

Graphic Tools and JS Libraries for UI

The UI tools are quite similar to the recent project jQuery mobile, a touch-optimized web framework.
When the development of is4mobi started, the best UI tool for mobile was jQTouch. Unfortunately at that time jQTouch wasn’t using most of the HTML 5 and CSS 3 functionalities, it wasn’t full compatible with some Android devices and sometimes it was too heavy. For this reason the is4mobi developers decided to create their own framework based on jQuery and, more recently, iScroll.

Communication and user’s presence

is4mobi integrates a communication tool based on XMPP. This allows a developer to easily manage the user’s presence and the communication client-server and client-client. This means that is4mobi allows to integrate a messenger inside the application with few lines of code, to receive push notifications or to develop a real time game. The first XMPP communication was implemented using the web based library strophe.js. Today some parts are native.