Intro
We’ve recently been looking in to the various different cross platform options and weighing up their advantages/disadvantages to help decide which development platform is the best.
Firstly like anything you have to define “best”. If “best” is providing your client with the highest quality product then you may go down a different route compared with the idea that “best” is the cheapest option. Or perhaps you write small mobile apps compared to large corporate complex apps in which case, your idea on best changes again.
When you compile them all together the answer becomes some what subjective. But to be clear about where this blog goes, we feel strongly that Xamarin is the choice platform for an overall “best” product.
Cross Platform
Now there’s lot’s of talk over “cross platform development” with the 3 major operating system players all scrambling to find their way in to market share of the mobile consumer. We have Windows, Android and iOS. Although there are others these are the main focus for this blog as they are the primary market holders and the platforms we develop on.
In addition to Xamarin, the platform we use, there are also other “Cross Platform” mobile app development frameworks that allow you to create “native” mobile apps on each of the discussed platforms. To name a few there is Appcelerator, Marmalade, PhoneGap, and NetBiscuit. We’re going to focus on Appcelerator and how it stacks up against Xamarin.
When I first heard of Appcelerator, my first question was; Does this product really create native apps for free. The answer is… If you’re being strict about it. No. What’s that you say? You’re wrong! Well this comes back to how forgiving you are on the term native, but the Appcelerator platform doesn’t go as far as the Xamarin platform does in terms of truly compiling your code in to native Objective-C produced Apps. As a result of this the overall experience of the App suffers and doesn’t stack up sufficiently if you want to create high-end, corporate and enterprise standard mobile apps.
Here’s a quote from the Appcelerator forum that begins to go in to the detail on the subject: “If you’re asking if the JavaScript you write is translated to Objective-C and then compiled, the answer is no – describing Titanium as a cross-compiler is inaccurate in that sense.”
In our opinion if you can’t offer the same in terms of functionality, performance and experience as a native app then you’re only half way towards making a truly native experience. We’ve confirmed this by running a few Apps written using the Appccelerator platform and despite the articles claiming it’s excellence, if the experience doesn’t stack up then its insufficient as a product.
An observation by another company state this: “A Titanium application is the result of an automatic conversion process from web code to native code. Animations are noticeably laggy and apps are not responsive when returned from the background.”
So how about looking at some of the reasons to go with Xamarin.
Well Xamarin is a world-class development environment for cross-platform mobile apps. It has huge support from Microsoft and delivers high performance compiled code with full access to all the native APIs so you can create native apps with device-specific experiences. There is the ability to reuse 60-80% of the code which cuts the development time in half. Xamarin Forms allows you to create one code-base with no additional effort whatsoever and compiles seemlessly in to each of the three platforms.
Xamarin provide a fantastic community hub of support and development resources that include an extensive range of samples and packagaes available from the NuGet package store. The delivery of new SDK’s are available the day Apple release their changes and you have instant access to everything available to a native iOS developer.
Ok, there’s a cost to all this, but seeing as you can build apps on every platform at the standard they offer by only writing once, for bigger organisations writing apps on all platforms this is a small cost for the value added. Plus as Microsoft have announced a global collaboration with Xamarin, the platform is already being supported and funded giving security and resource to it’s users. And there’s exlusive pricing for MSDN Users.
You can also use Visual Studio to create apps that are compiled in to all 3 platforms. So you also have access to all the C# Code you’ve already written saving hours of development time, and makes it easier to use when you already have C# experience.
The practical experience of Xamarin Apps are truly native and lack nothing in terms of performance as everything in the app is exactly how an iOS, or Android App would be if it were compiled using it’s native platform. For this key aspect we favour Xamarin as the way forward for our mobile apps.
Example Success Story
On the Xamarin website you can see a whole host of comapnies using Xamarin to build their apps, one in particular struck us in that it chooses Xamarin over Appcelerator.
“Cinemark is a leading theater chain in North America, with $2.7 billion in revenue and 5,600 screens. Disappointed by the hybrid app development frameworks Appcelerator and Sencha Touch, Cinemark chose a native path with Xamarin. The result is a ticketing and loyalty app worthy of one the nation’s largest movie theater companies.” Source: https://xamarin.com/customers/media
References
- http://www.appcelerator.com/blog/2013/07/but-i-thought-titanium-was-cross-platform/
- http://enricoangelini.com/2012/5-pros-and-cons-of-appcelerators-titanium/
- http://developer.appcelerator.com/question/45001/is-appcelerator-titanium-mobile-really-a-cross-compiler
- http://www.eastbanctech.com/10-reasons-for-choosing-xamarin-cross-platform-mobile-development/
- http://xamarin.com/pr/xamarin-microsoft-partner
- https://xamarin.com/msdn