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.