PropertyCross

PropertyCross

Helping you select a cross-platform mobile framework

Download (v1.6) View on GitHub Blog

Introduction

Developers are now finding themselves having to author applications for a diverse range of mobile platforms (iOS, Android, Windows Phone, …), each of which have their own ‘native’ development languages, tools and environment.

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?

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. Our aim is to provide developers with a practical insight into the strengths and weaknesses of each framework.

This project is part of TasteJS, which also includes TodoMVC - a project that helps developers compare JavaScript frameworks.


New in v1.6 - July 22nd, 2014

  • Famous implementation added.
  • Intel App Framework implementations updated to improve UI.
  • Native implementation updated to take advantage of features in Xcode 5.

New in v1.5 - May 7th, 2014

New in v1.4 - March 24th, 2014

New in v1.3 - January 23rd, 2014

New in v1.2 - June 6th, 2013

  • Enyo implementation added.
  • PropertyCross has moved into the TasteJS organization!

New in v1.1 - May 22nd, 2013

  • PhoneJS implementation added.
  • Lungo implementation added.
  • Kendo UI now uses a ‘slide’ transition.

New in v1.0 - May 3rd, 2013


Frameworks

AIR AIR Android iOS n/a
Delphi Delphi Android iOS n/a
Emy Emy * Android iOS Windows Phone
Enyo Enyo * Android iOS Windows Phone
Famo.us Famo.us * Android iOS Windows Phone
Intel App Framework Intel App Framework * Android iOS Windows Phone
Ionic Ionic * Android iOS n/a
jQTouch jQTouch * Android iOS n/a
jQuery Mobile jQuery Mobile * Android iOS Windows Phone
Kendo UI Kendo UI * Android iOS Windows Phone
lavaca lavaca * Android iOS n/a
Lungo Lungo * Android iOS n/a
mgwt mgwt * Android iOS n/a
Native Native Android iOS Windows Phone
NeoMAD NeoMAD Android iOS Windows Phone
PhoneJS PhoneJS * Android iOS Windows Phone
RhoMobile RhoMobile Android iOS Windows Phone
Sencha Touch 2 Sencha Touch 2 * Android iOS Windows Phone
Titanium Titanium Android iOS n/a
Xamarin Xamarin Android iOS Windows Phone
Xamarin MvvmCross Xamarin MvvmCross Android iOS Windows Phone
* - PropertyCross implementation uses PhoneGap / Cordova for packaging.

Selecting a Framework

The APK and XAP files for the Android and Windows Phone versions of each framework are available within the project download. For iPhone you will have to build and sign the projects yourself in order to deploy them onto your own device.

Some of the frameworks deliver a native user interface, whereas others construct a native-like interface using HTML5 technologies. When selecting a framework it is important to test the end-user experience that the framework delivers and ensure you are happy with any compromises.

The code-sharing which can be realistically achieved with each framework varies considerably. To aid in this comparison there is a build script which produces code metrics for guidance. Although, as developers I am sure you are aware that lines-of-code metrics are flawed.

It is also worth investing quite a bit of time familiarising yourself with tools provided by each framework. The cost and quality of these varies considerably.

The Application

The app, which is implemented by each framework for each mobile platform, is a tool for searching UK property listings. This application was selected because it is non-trivial, multi-screen and makes use of a number of device capabilities including page navigation, geolocation, storage and web services.

Get Involved

It would be great to see the app implemented in more cross-platform frameworks. If you’re interested in contributing, a good place to start would be the list of implementation requests, or maybe you’d be interested in adding implementations of the currently supported frameworks for other platforms? It’s all on GitHub at the link above, so fork away! For more detailed implementation notes see the PropertyCross specifications.