Update 20160822: This tip is still maintained. I am constantly asked about this. One of the companies that I know went with Xamarin just to find out that it didnβt solve the problems with Android, as they had to learn both languages ββ/ implementations in order to solve most of their problems.
Update 20150513: So far, this is one of the most frequently asked questions I get from startups. How should they go. I inevitably end up pointing them to this post. This is still solid advice.
I designed both. You can pretty much do whatever you want in Xamarin. A couple of difficult areas that you are about to encounter are:
- Search for good working code. Extreme cases are really debris here.
- You will find that you end up learning Java through Xamarin because you have to read a lot of Java code.
Another problem is that while Xamarin is doing well and gaining strength, the community is still pretty small. This creates a problem when releasing the Xamarin application. If you need to get someone else to support him, they need to know .NET, C # and Android. Finding combos is quite difficult, and I found that all the contractors or consultants I needed to update my application were VERY expensive.
This is hidden prey. This will help you get out of your home faster, but supporting and developing new features will cost you if you are NOT the one who makes updates.
Why do I know this? I wrote two applications with Xamarin that I eventually wanted to update. I had to contact the contractor to do this because I simply did not have time. It was quite expensive compared to the Android or iOS developers who were already there. I ended up porting these apps from Xamarin to Native Android and iOS.
Aside. This is an awesome awesome platform. If you plan to always work on this, use it. The ability to use the power of C # is great. After working with C # for many years, I grew up to really despise Java. This is a personal preference, but it is what it is.
All about compromises.
Donn Felker Jan 09 '14 at 15:05 2014-01-09 15:05
source share