Choosing the right cross-platform mobile framework

Choosing the right cross-platform mobile framework

Rate This
  • Comments 3

Last week I had the pleasure of speaking to a few hundred people at  Apps World on a session entitled Cross Platform Panel: Exploring Methodologies & Tools.

This is a fascinating area as today’s modern app developers are now ultimately having to become more agile in their abilities and use the best tools available to develop an app for as many platforms as possible within a shortest period of time to maximise the revenue their app or game can achieve.

However having to develop an application or game for a diverse range of mobile platforms iOS, Android, Windows Phone etc.. has a number of constraints which need to be taken into consideration for example  each have their own ‘native’ development languages, UI/UX, developer tools and environments.

But for the modern developer there is an ever growing list of cross-platform frameworks that allow you to minimise the cost and effort of developing mobile apps, but which to choose?

So what Cross Platform Frameworks are available?

Here is a list of some of the most common cross platform frameworks available for today’s mobile app builders.

AIR

The Adobe Integrated Runtime (AIR) is a cross-platform runtime for iOS and Android. It allows you to develop using ActionScript (a objected-oriented, strongly typed relative of JavaScript) by providing the Flash Player virtual machine to abstract away from the underlying hardware, with an extended API available to access device capabilities such as GPS and camera. Furthermore, this allows developers to use the Apache Flex enterprise application framework which provides its own UI components (and an associated UI framework), data binding, advanced data structures and other essential utilities. Flex also introduces the MXML language for the declarative creation of user interfaces.

Enyo

Enyo is a free and open source (Apache 2.0 license) cross-platform and cross-browser application development framework that enables developers to create HTML5 applications and deploy them to many modern desktop browsers and mobile devices.

Enyo is built around the philosophy of fully-encapsulated components, which allow a developer to reuse component pieces (or even an entire application) in new or existing projects. It is possible to embed full Enyo applications in the DOM elements of existing Web pages.

Enyo does not use templating, instead enyo.Controls (a kind of enyo.Component) render themselves into the DOM based on their owner/parent hierarchy in the application structure. Developers design the application structure/component with JavaScript object literals, adding methods and properties for functionality.

Enyo has a dependency mechanism (package.js) to enable a basic modular approach to building applications. If you look at most Enyo projects, you will see references to a $lib directory in one or more package.js files, usually to include optional modules such as Layout (lists and responsive components) and Onyx (a widget library).

Intel App Framework

Intel App Framework is a framework for building cross-platform mobile application using HTML5 technologies. The framework started life as jqMobi, a mobile optimised version of jQuery, which was created by the team behind appMobi. Intel acquired the jqMobi tools and staff in February 2013.

Intel App Framework is free and open sourced under an MIT licence. Intel also offer XDK, which is a a full suite of tools built around the App Framework. XDK adds an IDE, build tools and an emulator.

Along with its lightweight JavaScript library, Intel App Framework provides a basic MVC framework and many UI components. Rather than mimicking the native look and feel, the framework has opted for providing its own styles which looks the same across all platforms. Styles can be customised using the framework Style Builder

jQTouch

jQTouch is a Zepto/jQuery plugin which provides a framework for developing iOS and Android applications. It is both open source and free to use.

jQTouch provides a structure on which to base the HTML, the majority of the application styling, page transition animations and touch based event handling; however, it’s not a fully featured application development solution.


jQuery Mobile

jQuery Mobile is a HTML5 framework which makes it easy to create websites that mimic the iOS look and feel. This is achieved by providing HTML that is marked up with various jQuery Mobile specific attributes, which is then processed to generate the final markup. Within PropertyCross jQuery Mobile is combined with KnockoutJS, which provides a presentation model (MVVM), RequireJS, for dependency management, and Cordova / PhoneGap, which packages the HTML / JavaScript within a native wrapper for app-store deployment. Cordova also provides a set of APIs for accessing native phone functionalities which are not available via HTML specifications.

The JavaScript Model and ViewModel code is shared across all mobile platforms, whereas the HTML files, which make up the View, are specific for each platform. This allows the UI for each platform to be tailored to the requirements of each platform.

iOS version uses the out-of-the-box jQuery Mobile styles

Windows Phone uses the jquery-metro-theme extensions to support the Windows UI style together with Windows Phone specific features such as the app-bar.

Kendo UI

Kendo provide a suite of web development frameworks, all of which are built on top of the ‘core’ Kendo UI MVVM framework. The Kendo UI Mobile framework adds a set of UI widgets for the creation of mobile interfaces. The mobile framework has a look and feel that mimics the native Apple, Android and Windows Phone themes.

Lungo

Lungo is a framework for developing cross-platform applications in HTML5. Lungo applications are run in the browser, similar to other HTML-based frameworks such as jQuery Mobile. Lungo provides 2 main workflows:

Lungo provides a rich set of classes to help decorate basic HTML5 markup. The markup is then given behaviour and interaction based on the structure by Lungo, without any developer code being required. Lungo’s philosophy is that you should be able to create a prototype of your application to show basic interaction and page flow without having to write any JS yourself.

Lungo also provides a JS API to interact and enhance the prototype. The Lungo API is similar to the common functionality you’d see in other mobile frameworks, such as DOM manipulation (through Quo.js), page routing and navigation, storage etc.

mgwt

Google Web Toolkit (GWT) is an open source set of tools that allows developers to create web apps in Java. GWT compiles Java into an optimised JavaScript application. GWT is most often used for large-scale web applications, with the strongly typed nature of Java making it easier to maintain a large codebase.

mgwt is an open source mobile widget framework build using GWT. mgwt provides a number of UI widgets, CSS styles and a PhoneGap API which make it easier to develop native-like applications using GWT.

PhoneJS

PhoneJS is a commercial HTML5 framework for cross platform mobile application development from DevExpress. PhoneJS is free for non-commercial use.

PhoneJS uses the Knockout MVVM framework for structuring the application, with the PhoneJS CSS providing a native-styled UI for the various phone platforms. PhoneJS applications use PhoneGap for packaging.

DevExpress also offers a more integrated solution based on PhoneJS, called DXTREME Mobile, which adds Visual Studio tooling.

RhoMobile

RhoMobile Suite is an integrated set of tools, created by Motorola Solutions, for building cross-platform mobile application using HTML5, JavaScript and Ruby. RhoMobile is made available under an MIT licence. Applications are developed using RhoStudio which is an Eclipse-based IDE. During development, applications can be tested using the built-in RhoSimulator, which is a Webkit-based browser, or a platform specific simulator. Building RhoMobile applications for Windows Phone, iOS or Android relies on the presence of the native SDKs.

RhoMobile applications follow the MVC pattern, with the application UI defined in HTML (with jQuery Mobile being used to style the output). Application logic can be programmed in either JavaScript or Ruby.

Sencha Touch 2

Sencha Touch is a framework for building cross-platform mobile application using HTML5 technologies. Similar to ExtJS, Sencha Touch provides a fully functional JavaScript API and a structured MVC approach for building mobile applications. Coding is done (almost!) exclusively in JavaScript - with the majority of the HTML and CSS being abstracted away behind the concept of “components”, which are configured and generated by the JavaScript code.

Titanium  

Appcelerator Titanium is a JavaScript-based development platform for iOS and Android development. The JavaScript code runs on the device within an interpreter, and the UI for a Titanium application is entirely native. Titanium development uses the Titanium Studio IDE, and depending on your OS, the Android SDKs and Xcode are also required.

The

Titanium APIs provide an abstraction layer for the Android and iOS UI elements, allowing you to write your view code against the Titanium abstraction. Although, there are some view concepts which have not been abstracted, meaning that developers have to write platform specific view code

Xamarin

Xamarin have two commercial products, Xamarin.iOS for iOS development and Xamarin.Android. The Xamarin frameworks allow you to write applications using C# and the .NET framework. For each platform Xamarin provide bindings to the native platform APIs. As a result Xamarin applications make use of the native UI for each mobile platform. Xamarin do not provide a Windows Phone product because the C# and .NET code used for Android and iOS development is directly portable to Windows Phone.

What resources are available to help evaluate which is the best solution?


PropertyCross http://www.propertycross.com

To help solve this problem PropertyCross presents a non-trivial application, for searching UK property listings, developed using a range of cross-platform technologies and frameworks. Property Cross has a simple aim is to provide developers with a practical insight into the strengths and weaknesses of each framework so this is a definite resource you should check out if your interested in cross platform development.

Conclusion

I would love to hear your experiences of developing apps and games for cross platform support and which tool you find the most useful?

Leave a Comment
  • Please add 6 and 6 and type the answer here:
  • Post
  • App Framework has had Native style themes since June of this year.

  • Adding to above, Sigma Mobility (http://sigmamobility.com) which provides a cloud based platform for building mobile apps based on jQuery mobile.

  • Choosing the right cross platform mobile framework is a quite difficult for developers. According to me phoneGap is the right platform to cross platform framework that can help you to save lot of time and money.Use latest web technologies in PhoneGap makes more easy to development mobile apps even for web developers.

Page 1 of 1 (3 items)