1 Introduction
The number of smartphone users is growing rapidly because of the availability of various mobile applications (Apps) that serve them in their daily life. Therefore, there is a demand to produce more Apps in different fields such as education [1], [2], [3], tourism [4], [5], environment [6], governmental services, and entertainment. There are several mobile platforms such as Android, Windows Phone (WP), iOS, and BlackBerry. Each platform vendor provides different programming languages, APIs, and development tools for the developers. Therefore, the developer has to develop the same App several times using different programming languages and libraries in order to produce one App that runs on different mobile platforms. This causes the waste of a lot of time and efforts. Consequently, mobile development companies start to use the cross-platform mobile applications development solutions. The main concept of the cross-platform solutions is to develop the App once and run it everywhere. There are many cross-platform mobile applications development solutions that are used commercially like: Titanium [7], Xamarin [8], and PhoneGap [9]. On the other hand, several tools are still under research and development like: XMLVM [10], J2ObjC [11] , MD2 [12], [13], and others.