24 May 2016

What’s up with Xamarin?!

microsoftxamarinpartnerXamarin was founded in May 2011 and Microsoft bought it late February 2016. That’s roughly 5 years of constant improvements now finally paying off. We made the choice to follow them about 2 years ago, and like many other developers we put our trust in them, and now we share the results !

Xamarin is the future of mobile

Xamarin as you know it is a complete set of tools that lets us build native apps on multiple platforms by sharing a portion of code.

And I’m not talking about cross-platform tools that use HTML/JavaScript ; I’m actually talking about separate, native, distinguished apps, for each platform, with a common “Core”.

Let me emphasize the difference here : the commonly known “Cross-platform apps” usually have one source code that is exactly the same for all platforms, and displays/works/reacts the same on all platforms. Xamarin does not, it only shares the portion of the code that does not require to be native (business logic, webservice requests, database calls), the UI for example, is still done separately for each platform. This means you keep the look and feel of a classic app, without any down side.xamplatforms

Imagine you need to develop your app for iOS, Android and WindowsPhone. The classic way would involve 3 different projects in 3 different languages, doing all the work, 100%, 3 times. That’s how everyone does it, and more importantly, that’s how everyone charges it. With Xamarin, you still get 3 projects, but they’re all in the same language. This means you have an easier learning curve and could do it with less developers.

It generally requires about 30 to 70% less time to develop Xamarin apps for the second and following platforms. Even if you only plan on building one platform we will suggest Xamarin, for reasons discussed below, and because the opportunity to build the next platform faster & cheaper is there, so why not take it?

I should mention for completeness that Xamarin does not stop at mobile, you can of course build desktop versions of your mobile App (or the other way around) with all the same advantages. You really get to deploy on thousands of different devices. It’s all faster, cheaper, and as a developer I cannot stress this enough, easier and cleaner. It’s simple to maintain : when you happen to find a bug, you’ll only need to fix it once. There’s really no downside, none.

People used to believe that Xamarin was slower than native ; this belief comes from other (and very different) technologies that are slower. If you look at the following charts by Harry Cheung, you’ll quickly notice Xamarin is actually faster than the native compiled code.

The only (slightly) faster languages are C++, which is more complicated because it’s a lower level, and Swift, which is the newest release of Apple in terms of development tools, actually meant to replace Objective-C.

All that being said, milliseconds of difference is unnoticeable, which makes Xamarin either the same or faster than any other available technology.

androidPerformance

Comparatively, any HTML based technology is drastically slower (and we’re talking in seconds here), and is very noticeable by the user. This is why we prefer Xamarin over such technologies.

In terms of raw calculation you have the chart to help you, but when it comes to animations and overall graphic rendering, it has to be felt. You can find many Xamarin apps on the app store already, and they are amazing. Where web based must mimic the native UI, Xamarin will simply use native components at its disposal. It’s not a “good copy” of the visual capabilities of your OS, it’s really the original, using the native SDK to render UI objects on screen.

Mobile apps should never be just a cool version of a website

 More than a development tool, it’s a complete suite !

Making an app is not only about developing it from your garage. Currently, to release quality apps fast enough, one must opt for quality tools. That’s where Xamarin shines, offering a lot of means that guarantee that kind of quality. It’s about all the elements that gravitate around your app, of which you need to take care of either before or even after the release. Here are some of the awesome Xamarin tools that will help you.analytics

HockeyApp merged with Xamarin !

You now have a built-in tool to manage :

  • Analytics : what, when, where and how people use your app, in a complete dashboard.
  • Crash reports : what exact line of code causes trouble, what happened before. All available to the developer and invisible to the user.
  • Deployment : The development team can deploy alpha, beta or production versions privately to specific group of people (beta testers, client, etc.) or publicly for wider beta testing. A single button press and you get an email with the latest version in the works, ready to install on your phone. Cool, right?

 

TestCloud

Xamarin is also now OpenSource, which means anyone on the planet can contribute to improve the technology. History has shown that open source projects evolve at insane speeds simply because instead of having a regular team (Microsoft + Xamarin, by itself it’s already huge), you potentially get the whole world ! You can’t beat a team of that size.

Once you go sharp, you never go back.

All of that makes us really happy we chose Xamarin two years ago, we’re glad we saw its potential just like we saw potential in all your apps. We’re happy we made the right decision to chose tools like HockeyApp and that they’re now included in our favourite technology. Microsoft sees that it’s all promising, just like we did, and, again, we’re so happy to walk that path with all of you. Thank you all.

Gil Sand
Published by Gil Sand

“Programming is the art of writing essays in crystal clear prose and making them executable.” ― Brinch Hansen