Xcode is an IDE used to develop, test, and distribute apps across all Apple platforms, featuring Swift and SwiftUI with a multiplatform app experience, enhanced editor features to help users code faster.
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.
This is almost not a case of Xcode being the 300-pound gorilla in the space, but of it being essentially the ONLY viable gorilla in the space. There are other text editors, of course, that can be used for coding; and in some cases other IDE's might make sense for a cross-platform development scenario, but since this is Apple's in-house tool, fighting against that flow is just going to be an exercise in frustration. And, if you need help from Developer Support, they are going to be most familiar with Xcode.
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.
Xamarin has been great for developing different projects efficiently and effectively. It's nice to reuse the core business logic across different platforms so that there are less to maintain and little replications are needed. The biggest benefit is that C# programmers do not have to learn a different language to do mobile development.
If you are required to develop applications that are cross-platformed, Xamarin is a great tool to use. It will help save time and efforts 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
Xcode occasionally exhibits some behaviors that are hard to explain, but are generally cleared by restarting the program. In an application this large and complex, I suppose this is somewhat expected. The sheer vastness of the frameworks collection has to be a huge management issue all by itself. However, those breaks in the flow can have impact on developer productivity.
Since we don't use the cloud based features of Xcode, it is basically available 24/7 for us. We don't need the extended compilation features that are offered in the cloud as our projects to this point have not been that large or complex. We have never seen a wholesale breakdown of Xcode availability at any point in our use of the product.
Every developer wants faster compiles, but that can be achieved by either going to the cloud or by provisioning the local station to a higher powered configuration. My only minor complaint is the amount of local mass storage that Xcode as a system consumes. This makes it interesting to set up a development environment on a midrange laptop, however it is easily managed with external storage at a reasonable price.
I never had to contact support for any help. Most of the problems we ran into, we were able to identify and use peer support through blogs and other internet sources to resolve the problems. There are plenty of sources online which provide tutorials, discuss problems, etc. Example: StackOverflow
Just with any programming tasks, have a plan first. Design out the system, spend time to build it correctly the first time and have plenty of testing and user acceptance opportunities. Xamarin was easy to implement for a C# programmer. However, you need to do tutorials to realize the platform's capabilities.
Xamarin runs natively on MacOS, and the debugger and other integration and auto-complete tools are far better than Eclipse for C# .NET. It also carries much of the plugin/add-on capabilities that are so desirable on Atom. Eclipse is a better for generalized software development, provided a developer is comfortable switching between the IDE the command line for certain parts of their workflow, like building, package management, or debugging. But for C# .NET development on MacOS specifically, Xamarin is the best product I've used for the job.
Xcode is a much easier to use and full featured IDE than many of the competitors. It also is a way better experience to use. Much better looking in general
Xcode only loses points due to the occasional situation where it manages to somehow tie itself into a knot and starts to exhibit odd symptoms. This is almost always solved by simply saving progress and restarting the environment. Fortunately, that doesn't happen too frequently and is easily repaired while taking a short break to walk around and stretch.