Came across a cross-platform development tool called Xamarin. If you are familiar with C#, you will be able to develop mobile application using Xamarin. Your target platform can be iOS, Android and Windows, which make it easier for you to develop core business logic once, and just customise the UI for the different platformS. You can also tweak the UI for each platform to optimise the usage workflow. Some of its strengths include:
It leverages native UI and runs at native performance
You can create fully native apps with device-specific experiences that most of us would mobile users expect (even demand!). Xamarin is able to provide high performance because of its compiled code, with full access to all the native APIs of each of the device platform mentioned above.
One non UI code for all target platforms
As a developer, you get to re-use all the non-UI code across iOS, Android and Windows Phone apps. This significantly reduces the pain of building and maintaining multi-platform apps, and allow you to reach users of all platforms, not forgetting a wider user base and more income if you sell those apps! Potentially, you can re-use up to 90% of the code, while 10% would be platform specific UI stuff you might wish to tweak for a better user experience.
One language to rule them all
Think about it: iOS uses objective C, and Android uses Java. C# is a language pretty similar to Java (which is the native language of Android OS). With Xamarin, the mobile apps are written entirely in C#. Garbage-collected code means that you don’t have to manage the GC in objective C, and features like Language Integrated Query (LINQ) & Delegates and Events can be implemented. If you have existing libraries written in C#, C/C++, Java or Objective-C, these can be imported. How cool is that? Saves you the effort of porting and testing your ported existing codes, translating to more time in the cafe with your friends!
Integrated Development Environment available
Xamarin comes with the tools to help you design, develop, debug and deploy apps. UI can be created using the typical point and click method. You can also explore native iOS and Android APIs when you type – yes – it comes with code autocompletion! 🙂 You can also debug apps running on emulator or device, and when you are done, you can also distribute apps to app stores or internally. You have a choice of using Visual Studio as the IDE or use the cross-platform IDE, MonoDevelop to develop your applications.
Bastion for iPad
So if you are thinking of developing something for multiple platforms, why not consider the Xamarin? I think it would save you a great deal of efforts of re-coding for different target platforms, and reduce your business costs of hiring staff with different expertise in objective C, Java, and C#. By the way, Bastion for iPad was developed using Xamarin, so it is a testimony of what Xamarin can achieve! Have a fun time Xamarining!