What is our primary use case?
Let’s take an example of a simple restaurant App which needs to be developed for each platform (iOS, Android, Mac, and Windows). Xamarin gives you the power to produce a quick proof of concept where you can use Xamarin.Forms and have your app ready within some days for each platform, using only one Xamarin developer. Otherwise, you need different native developers to have your app developed for each Platform.
How has it helped my organization?
I have been using Xamarin Platform for four years and learning new things each day. Being just an Asp.NET C# developer, I feel more confident because, for me, developing apps for iOS and Android is a dream came true, without migrating to Objective-C or Java.
Also, it’s cost-effective when you don’t require more native developers for each platform. You can train one C# developer for Xamarin using free resources or even provide paid training, and he or she alone can deliver your apps for each platform.
What is most valuable?
Test Cloud, Calabash, SpecFlow, and Xamarin.UITest are the features which can’t be ignored because just writing code doesn’t mean your app will run flawlessly. You need to test your app on each possible device and configuration, which you can do easily.
And how can I forget plugins like MvvmCross, which make a developer’s life easy.
What needs improvement?
I would say that every technology has room for improvement, Xamarin Platform is no exception. All Xamarin library issues which need to be taken care of should be top priority. Sometimes it becomes clumsy when there are a lot of things going on in your project or solution and you need to take care of business logic in parallel. On top of everything, providing only wrapper classes does not make a developer’s life easy.
So yes, there are improvements going on and they will need to continue to improve in the future as well.
For how long have I used the solution?
Three to five years.
What do I think about the stability of the solution?
As far as my experience with Xamarin, I’ve found no issues with the stability, if you have the right people working with you. It’s always easy to criticize a technology and it amazes me to see people out there criticizing some technology just because they couldn’t use it properly.
Over time it has created a revolutionary change in the technology and market. In our case, we were able to deliver projects on time and that’s what matters in the end. Maybe we have faced some issues but it would not be nice to say that Xamarin is not a stable technology. As a matter of fact, it is very stable, and they're working on making it more and more stable each day.
What do I think about the scalability of the solution?
People are flying radio-controlled drones and aircraft as a hobby with the help of apps which were developed using Xamarin technology. Yes, there is room for increasing the scale a little bit further with the designer in the Visual Studio, more specifically, Xamarin.Android Designer in Visual Studio.
How is customer service and technical support?
I would rate technical support at eight out of 10. There are communities like Xamarin Forums and Stack Overflow that will possibly give you answers. If you are a developer you know exactly what I am talking about.
How was the initial setup?
In the very beginning, it was a bit complex because I was using Visual Studio 2015 which doesn’t come with a Xamarin module like Visual Studio 2017; you need to add it manually.
What's my experience with pricing, setup cost, and licensing?
If you plan smartly enough I think you will save some bucks for sure. You don’t need different native developers for each platform as Xamarin comes with cross-platform development so that’s an advantage.
What other advice do I have?
I would rate Xamarin Platform an eight out of 10 because, while developing applications using Xamarin Platform you will come across some library issues which need to be taken care of first. But I would strongly recommend Xamarin Platform because it’s a reliable technology compared with what is out there in the market and a plus-point is support for C# language.
My only advice is that you please do a proof of concept before diving straight into development. It is always good to see beyond what you want and the requirements of your project. First, do some benchmarking of the requirements and then go for implementation of your solution.