Xamarin Q&A: Cross-Platform Is the New Platform

Once again, Mr. Xamarin comes to Visual Studio Live! to discuss cross-platform development.

Xamarin has created a whirlwind in the development world, driving cross-platform application development like nothing before. In advance of his sessions at upcoming Visual Studio Live! and Live! 360 conferences, we caught up with James Montemagno, Mr. Xamarin, to hear some of his thoughts on the new Visual Studio IDE integrated with Xamarin, and how that will help drive cross-platform app development.

Visual Studio 2017, integrated with Xamarin, launched in March about a year after Microsoft announced its acquisition of the company. How has the new integration been received by Visual Studio developers?
The release of Visual Studio 2017, paired with Xamarin going completely open source and included in the price of Visual Studio or for free with community edition, has created an amazing surge in developers building their first iOS and Android apps in C# with Xamarin. With a single checkbox in the installer, developers have everything they need to get started. Downloading side-by-side previews couldn't be easier. This has been by far the best release of Visual Studio and only getting better with each new version.

If you're already a C# jockey, how long does it typically take to get comfortable writing cross-platform mobile apps with Xamarin?
That's exactly where I was in 2011 when I joined a small startup as their mobile developer. I knew C#, .NET and of course Visual Studio. I was completely new to iOS, Android and the concept of cross-platform mobile development. I already knew how to structure my application, use these world class tools, and was super productive using C# and the libraries I had been using for years.

The first step here is to pick a platform and learn how they work, do it again on the next, and tie them all together. I always recommend heading to the Xamarin developer site and do the quick starts for each platform to get down the basics and then head to the Xamarin University Self-Guided learning to take it to the next step. A lot of developers often get up and running with a prototype in a few days and within a few weeks they can start to master some of the platforms. We have a plethora of great documentation and amazing samples to quickly get developers up and running.

"A lot of developers often get up and running with a prototype in a few days and within a few weeks they can start to master some of the platforms."

James Montemagno, principal program manager, Xamarin

The announcement of Visual Studio for Mac, based partly on Xamarin Studio, generated a lot of buzz in the Visual Studio community. What has been the developer response after some hands-on use of the preview to do the previously unthinkable -- using Visual Studio to create iOS apps?
Visual Studio for Mac has been an exciting release. Developers love being able to develop end-to-end mobile to server solutions -- in a single IDE -- using a single language that supports the same project system as Visual Studio on Windows. Besides the platforms you would expect to target with Visual Studio for Mac such as .NET Core, Xamarin, and ASP.NET Core, developers can now build full-blown Mac desktop applications in C# and share code with their existing Windows desktop applications.

As these platforms evolve, so does the IDE -- adding new features the same day as Visual Studio 2017. We saw this with the recent release of .NET Core 2 with great support for all the new features on the same day in both IDEs. There is even more coming with support for Azure Functions, Docker, and an already great collaboration with the Unity Tools for Visual Studio team, which recently released integration with Visual Studio for Mac.

In your VS Live! and other presentations, what are audience members most interested in learning about using Xamarin in Visual Studio?
This is my favorite session and it is always evolving. The main take-away of course will be just how fast, easy, and fun it is to build native iOS, Android, Mac, and Windows apps in C# with Xamarin and Visual Studio and sharing code between all of them. I will go through exactly how Xamarin works, how it has evolved, and show how anything developers can do in Objective-C, Swift, or Java can be done in C# and Xamarin and all of it is native. While that is the start, I always get to show amazing new features we are developing to help developers get started faster and make their day-to-day development even more enjoyable. So developers will get to see brand-new tools and integrations that they can get their hands on today to be super productive.

If developers choose to use Xamarin.Forms to create enterprise apps of mid-level complexity targeting Android, iOS and Windows, how much of a shared codebase can they reasonably expect to achieve?
When developing apps with Xamarin, you have a few decisions when crafting native apps. On average, developers share 70 percent of all of their logic between all applications. This has been the standard when crafting separate user interfaces for each and leveraging a large shared business logic code base. The Xamarin.Forms library abstracts all common UI into a single sharable XAML codebase that can drive that shared code nearly all the way up to 95 percent, depending on the app. Also, developers are expressing a lot of interesting in the new Xamarin.Forms embedding feature to start with crafting native UI and leveraging Xamarin.Forms where it fits. That drives that initial 70 percent even higher. It is all based on your application and structure, but the code sharing is amazing especially when you think of the huge NuGet and Plugin ecosystem to which developers have access.

About the Author

Lafe Low is the editorial liaison for ECG Events.

comments powered by Disqus


  • Color Shards

    Sharing Data and Splitting Components in Blazor

    ASP.NET Core Version 3.1 has at least two major changes that you'll want to take advantage of. Well, Peter thinks you will. Depending on your background, your response to one of them may be a resounding “meh.”

  • How to Create a Machine Learning Decision Tree Classifier Using C#

    After earlier explaining how to compute disorder and split data in his exploration of machine learning decision tree classifiers, resident data scientist Dr. James McCaffrey of Microsoft Research now shows how to use the splitting and disorder code to create a working decision tree classifier.

  • Microsoft: Move from Traditional ASP.NET to 'Core' Requires 'Heavy Lifting'

    There are plenty of reasons to move traditional ASP.NET web apps -- part of the old .NET Framework -- to the new cross-platform direction, ASP.NET Core, but beware it will require some "heavy lifting," Microsoft says.

  • Purple Blue Nebula Graphic

    How to Compute Disorder for Machine Learning Decision Trees Using C#

    Using a decision tree classifier from a machine learning library is often awkward because it usually must be customized and library decision trees have many complex supporting functions, says resident data scientist Dr. James McCaffrey, so when he needs a decision tree classifier, he always creates one from scratch. Here's how.

  • Blazor's Future: gRPC Is Key

    Blazor guru Steve Sanderson detailed what Microsoft is thinking about the future of the revolutionary project that enables .NET-based web development using C# instead of JavaScript, explaining how gRPC is key, along with a new way of testing and a scheme for installable desktop apps.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events