We use Xamarin for all of our mobile app development. Like working in C# and in Visual Studio.
Using Xamarin with Visual Studio allows us to create mobile apps without learning a new IDE or tool. It does make publishing a little more complex than I think it should be, but that's just my opinion.
Pros
Writing in C#
Uses Visual Studio
Shared code base (99%)
Cons
I wish it would deploy and debug faster
The Apple connection is a bit tenuous occasionaly
The Xamarin forms updates can get really painful
Likelihood to Recommend
Xamarin is well suited for mobile app development. It's nice to share almost all of our code between Apple and Android as well as between phones and tablets. We have our own PC tool, I don't use it for PC or Mac development but would like to go there with some shared code at some point.
Xamarin is used in my organization to create mobile and web applications that can share the same common logic. This is great for building cross-platform applications for any organization that needs it.
Xamarin is mainly used in the development team as it does require technical knowledge of building software. You can use it to solve many different business problems through applications built on the Xamarin platform.
Pros
Layouts that can be bind to
Great community that can provide plenty of code samples and exchanges of ideas
Provide the ability to share code between various platform such as mobile - Android, iOS, Windows, and web
Cons
Similarly to Silverlight or WinForms, if Xamarin had the ability to drag and drop in the Designer, it would be great.
The ability to auto translate some of the common native calls from different platform would also be amazing to see.
Also more help syntax auto resolving abilities is needed. I had to spend a lot of time resolving errors when importing an open source project to try out.
Likelihood to Recommend
If you are required to develop applications that are cross-platformed, Xamarin is a great tool to use. It will help save time and effort from your development team to be able to build applications seamlessly for android, IOS, Windows, and web on a single platform instead of requiring multiple tools to get the job done.
<p></p><p>Xamarin is used by our product development team to create Android and iOS mobile applications. With Xamarin we can create cross platform mobile applications fast and easy without leaving the Visual Studio environment. It’s convenient because it allows us code applications using C# programming while taking advantage of Visual Studio debugging tools. We are pleased with Xamarin so far.</p><p></p>
Pros
Allows development of cross-platform mobile applications in C# language without the need to learning new languages.
Access to Visual studio debugging tools
It's free and has a growing community
Allows use of Visual studio IDE
Cons
Occasional crashing of the application
Online community still growing. Less documentation online
Experienced problems with Code signing and deployment with IOS
Likelihood to Recommend
Xamarin comes in handy when you want to write cross-platform (for Android and iOS) applications without the need to code twice. It shortens development time and that's an advantage. Xamarin also helps developers building on .NET transition to mobile development without the need to learn additional programming languages- saves money and training time. Most of the time Xamarin is all good a part from a few times when you want to keep up with new features and Xamarin takes time to implement them.
Currently Xamarin is being used by our main corporate office for a number of applications. We are using it for quality assurance and sales. This allows us to have the same look and feel and functionality across multiple environments. Our sales and QA staff are located all over and have different mobile platforms.
Pros
Write once - use multiple places
Robust 3rd party add-ons for most functioanlity
Prompt support and assistance when needed
Cons
My only issues really stem from the IOS side, but those are not necessarily Xamarin's issues
Needing to connect to IOS machine
Code signing and deployment with IOS is very cumbersome
Likelihood to Recommend
Xamarin is perfect if you have senior .Net developers and do not want to have write code twice. Once for Android and once for IOS. This also allows you to have one code base platform that make changes much simpler and keeping both versions in sync. It would be nice if you could have some common settings files across the 2 that would inject into the pList file for example.
Xamarin is used to develop small mobile business apps for special customers. For example, we developed an app, where the user can download the data of customers including last service results and fill in a new service form; let the customer sign the form and send the form back to the office where it is approved and archived.
Pros
We save development time with Xamarin, because we use Xamarin Forms an so we can share most of the code over 3 platforms.
We can use our C# knowledge to develop iOS and Android Apps.
Xamarin's integration into Visual Studio is very good and became even better during the last releases of Visual Studio.
Cons
You still need a MacOS running on a Mac to debug and test and deploy the apps to Apple.
Likelihood to Recommend
Xamarin is perfect for business apps. Developing games is probably better in native code. (But I have never developed games with xamarin.)
Xamarin was used in a couple of projects by my organization. When it comes to faster development one should go for it. Yes, there are challenges but compared to developing two separate applications for the same purpose in different platforms this is the best choice. This application is better in performance compared to hybrid applications.
Pros
Native application
Code based to some extent. It is the same except specialized UI for different OS
Faster development compared to native application development.
Cons
teaching a Microsoft developers who has no experience in mobile application development is a challenge
Should be simpler for deployment to devices.
Likelihood to Recommend
Business application its the best bet. For game-like applications, it may not be the best bet.
The product development team was building a cross-platform endpoint security product in C# .NET and all used MacBook Pros, so Xamarin was the IDE of choice. It addressed the problem of being able to develop the Linux and Mac versions of the product without having to have a Linux VM for Linux development and also made it possible to develop the cross-platform portions of the software natively on their Macs, rather than using a Windows VM. Only Windows-specific development and testing needed to be done within a VM. As a product development startup, all but one employee used Xamarin.
Pros
Good interactive debugger.
Built on Atom, many of the same useful functionality as the more generic editor.
Many good plugins for various other programming languages and other functionality.
Cons
Atom's multi-cursor plugin would be a welcome plugin to this IDE as well.
The online support could be further developed.
The application would occasionally crash.
Likelihood to Recommend
Xamarin is definitely the best product to use for C# .NET programming on MacOS; for other uses it may not be the best IDE: different languages, different platforms, etc.
I've been using Xamarin for 100% of my mobile work since 2012. In my current organization, we have a Xamarin mobile app for nearly all of our projects.
Pros
Sharing code with other parts of an application, including backend and web
Not having to re-write the same application multiple times
Not having to maintain multiple versions of the same application in parallel (features, bugfixes, etc.)
Getting to use C# and all of its wonderful features for mobile development
Cons
Xamarin could provide more recognition and support to those of us who have been with them since the beginning
Likelihood to Recommend
I've introduced Xamarin to multiple organizations. Unless you have engineers who insist on not knowing C#, there are rarely any instances where it's not the best choice.
As an independent consultant, I use Xamarin with many small companies. Often, they bring me on in the early stages to evaluate and recommend improvements to their mobile strategy. Xamarin addresses the business problem of speed and resources. With Xamarin, you can develop mobile apps faster as well as utilizing existing resources. Some companies may have existing .NET developers in which case Xamarin fits well and the learning curve of mobile is less because of the familiarity with .NET.
Pros
Xamarin allows you to write cross platform code. This allows companies to build apps more quickly by writing less code. Having code abstracted and reused across multiple platforms allows for more testing and less issues overall.
The ability to use Visual Studio is a huge plus. Visual Studio is one of the best IDE's available and being able to write cross platforms apps while in a great IDE makes everything less painful.
Xamarin is now free with a large company backing. This means that bugs on the platform get fixed more quickly and there is a large community of developers.
Cons
Having also done a lot of native mobile development, some of the IDE's features need to emulator their native counterparts. For example, trying to extract a string resource on Android in Xamarin Studio is painful. There are many useful tools in Android Studio that Xamarin should implement.
Xamarin will always be behind on native platform features. They must catch up when Apple and Google release new platform versions.
The biggest pain point is the random issues Xamarin continues to have. Having a large code base on top of a native platform makes it very difficult to debug issues. Every developer must decide if its an issue with Xamarin or the native platform. Bugs don't get fixed very quickly. Hopefully that will change with the Microsoft acquisition.
Likelihood to Recommend
Xamarin is well suited for several reasons. The first, it allows companies to share code across platforms. If the app has a lot of business logic and a fairly simple UI, Xamarin is great for this use case. Xamarin also works well if the developers who will work on the app are already fluent in .NET.
Xamarin is less appropriate if the company has a lot of developers. If there are plenty of resources to develop apps natively then the headache of dealing with Xamarin's issues are not worth the effort. If the UI is very complex and has difficult animations it's difficult to debug visual/performance issues in Xamarin.
VU
Verified User
Engineer in Research & Development (1001-5000 employees)