XD blog

blog page

phonegaps


2014-01-18 Framework for Mobile Application

What framework to choose if you want to build a mobile application which will save you some time while deploying on multiple phones? (Android, Black Berry, iPhone, Windows Phone). I'm not sure there is a perfect answer and it will probably change in a couple of months. However, this what I found. I was looking for answers. Which phones does it support today? Where can you develop your application? Which language? How to build? How to deploy? Cost? I limited my study to the following frameworks (according to a friend, the others are not as mature):

Apache Cordova Sencha Touch Titanium Mobile Xamarin kivy
Which phones does it support today? Android, Blackberry, iOS, Windows Phone Android, Blackberry, iOS, Windows Phone Android, Blackberry, iOS, Windows Phone in 2014 Android, Blackberry, iOS, Windows Phone Android, iOS
Where can you develop your application? All platforms. Integration with Visual Studio. All platforms. All platforms. All platforms but Windows is the preferred environnement. All platforms.
Which language? Javascript / HTML Javascript / HTML Javascript / HTML + native language of each phone if required C# Python
How to build? (= means Linux for Android, Mac for iOS, Windows for Windows, don't know for Blackberry) = and Adobeî PhoneGap™ Build for others platforms. Any platform, it is a web application. = = and Windows =
How to deploy? You need an account for each application platform. which means Linux for Android, Mac for iOS, Windows for Windows, still don't know for Blackberry). Virtual machines will probably not work.
Cost? free, you can pay to facilite the deployment of private applications: easy deployment web framework is free, Sencha Touch Store free to start, then pricing Xamarin pricing + Visual Studio with MSDN free
API Cordova API Sencha Touch Documentation Titanium API Xamarin documentation Kivy documentation
Example (Hello World) "Hello World" Windows Phone Application Using PhoneGap or Cordova Sencha Touch Quick Start Hello World Creating a Cross-Platform App for Windows Phone 8 and Windows Store (PCL, MvvmCross), Talks, Case Study free

We can see Sencha Touch as an extension of Apache Cordova which can shape a web application into a phone application. Both Xamarin and Titanium Mobile access the native API which gives more freedom. kivy does not allow to get the exact same code for all phones and is not available on Windows. It seems easier to write an application (it is python) but the deployment could hide some surprises (see Kivy apps using sqlite3 do not run on iOS).

To begin with, I was looking for a framework easy to use for a student project. kivy seems a good choice for that purpose, hoping it will migrate to Python 3 and it will propose support for Windows Phone (iPhone market share shrinks as Android, Windows Phone grow). Xamarin is appealing: you access the native API, C# is not a complicated language. But it is not free. So my second choise would be Apache Cordova. I'll probably try Titanium Mobile when it supports Windows Phone.

There is one last option: catrobat. It is a framework inspired by Scratch which allows visual programming. It was made was kids. catrobat should make it easy to build a game on a mobile phone. It can be downloaded here. You will find the documentation at Pocket Code.

Some articles about frameworks:

Some articles about catrobat: Some articles about kivy:


Xavier Dupré