9:00 AM | March 31 2016 | Microsoft //BUILD developer conference | Moscone West, San Francisco.
The Microsoft acquisition of Xamarin was great news; but everyone was waiting to see what all this actually meant for developers.
Microsoft chose the //BUILD conference to divulge the details. The Xamarin promise is now a reality for every Visual Studio developer and the future holds the opportunity for .NET developers to go cross-platform. This article take a 10K feet view to articulate some Xamarin history, its present and the future. Along the way, we'll talk about some polished UI components so that you don't have to re-invent the wheel for your cross-platform apps.
It's a great time to be a mobile developer on Microsoft stack - let us unpack why.
Xamarin made a promise based upon a modern object-oriented programming language and powerful tools that can take your mobile apps cross-platform. If C# and Visual Studio are your primary ammunition, Xamarin offers the means for you go about building native cross-platform apps.
The seeds behind the success of Xamarin today were sown quite a while back. The wish to take Microsoft's .NET Framework to platforms other than Windows dates back to almost the age of .NET itself. The efforts began around .NET 2.0 - way before the modern platform-agnostic developer mindset was a thing.
Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. With an underlying port of .NET to native platform APIs, Mono could be used to make .NET applications run on variety of other platforms. The Mono project was started in 2001, but the first stable release, 1.0, was issued in 2004. The work was initiated by Ximiana (and based upon the research project ROTOR), which was subsequently bought by Novell. The aim was quite clear - to move the .NET Framework from the one-vendor solution into a wide and portable standard for a number of platforms and operating systems.
With the popularity of mobile devices and apps, two implementations of Mono gained a lot of traction - Mono for Android and MonoTouch for iOS. The goal was to enable .NET developers take their skills to build true native mobile apps on other platforms - cross compiled down from shared C# code. This led directly to what we know and love today - Xamarin!
Xamarin promises .NET developers a way to write mobile apps in their beloved C# and have them compiled down to native, cross-platform apps. The magic happens in the underlying Mono layer, which acts as a VM translating the shared C# to native API code for the respective platforms.
Xamarin apps offer benefits like:
Xamarin has also been enticing to .NET developers because of the polish in the tools available to implement it. You get to use them all or pick and choose based on the app platforms/devices you want to target. Here are the tools available for Xamarin developers:
Let us break down Xamarin tools further to understand all the platforms that can be targets for your cross-platform app:
Xamarin.iOS and Xamarin.Android lead to much of Xamarin's popularity. Developers saw the immediate benefits of abstracting away as much shared business logic as possible in C# code. Plus they can target the two biggest mobile platforms based on marketshare. However, there are some pain points in building a UI layer that is customized to each mobile platform - duplication of efforts and the need for some intimate knowledge of iOS/Andoid UI composition.
Xamarin.Forms fills the void perfectly by offering one UI that renders seamlessly on any platform. Using a XAML-like markup or C#, developers get to describe an abstracted, shared UI layer, with the device-specific UI elements being rendered at runtime. Apps are composed of Pages, which contain various Layouts with child UI elements - all common components that Xamarin.Forms turns around to render native UI elements. You get to write your app once with a single shared codebase.
And what tools can you use to build Xamarin apps? You can choose between two world class IDEs for all your development needs:
Now that we've seen what Xamarin has to offer, what does the Microsoft acquisition of Xamarin mean for developers? One might argue that this was the only logical conclusion - it just makes sense. Microsoft's own Universal Windows Platform (UWP) paradigm is a perfect fit with the Xamarin story - one app and one codebase for all Windows devices. The Xamarin inclusion allows Microsoft to close the loop and extend the promise of true cross-platform compatibility to C# developers.
Here are few of the announcements made during //BUILD aroud Xamarin integrations:
We at Telerik have been pretty bullish about Xamarin from the start. Now with the Microsoft acquisition, the Xamarin offers one of the best ways for C# developers to take their mobile apps cross-platform.
Even the best development platforms, however, thrive on a rich ecosystem. Developers crave productivity and the gaps in the developer's arsenal are best filled by folks who know what they are doing. The last thing you need is developers reinventing the wheel - professional apps call for a polished and performant UI.
Telerik DevCraft is widely considered to be the richest and most complete toolset for .NET developers. No matter what platform you are building apps for - web, desktop or mobile - Telerik DevCraft has you covered with polished UI controls and framework components. However, as much as Telerik DevCraft is aimed at .NET developers, two very distinct products have made their way into DevCraft, namely:
These are UI controls for native iOS and Android apps, meant for the ObjectiveC/Swift and Java development platforms respectively. This inclusion is very intentional, given the modern polyglot developer and the reality of mobile marketshare.
But it makes us fidget a little to think we're asking .NET developers to write native mobile apps in ObjectiveC/Swift or Java. If multiple languages and platform-specific toolsets make you feel at home, more power to you. For the rest of us, there is Telerik UI for Xamarin.
When building professional Xamarin apps, you are bound to feel the need for polished UI that just works out of the box. Modern development demands complex UI controls like charts, gauges, side drawers and dataforms that just work. We do the research work and spend countless engineering hours to build the best UI for Xamarin apps so that you don't have to.
UI for Xamarin is made up of three types of UI controls:
It is easy to see how the Telerik UI control families map to their corresponding Xamarin counterparts - pick the ones needed for your app platform of choice. Remember Telerik UI for iOS and UI for Android? The Telerik Xamarin counterparts render the same performant truely native UI for each respective platform - just from the comforts of C#. And Telerik Xamarin.Forms gives us the same polished UI, abstracted away as C# or XAML markup that is common between all platforms.
Check out a few resources that may help kickstart your Xamarin app development with Telerik UI:
If you are at //BUILD and excited about the Xamarin announcements, drop by the Telerik booth, take a quick survey and win a FREE license to Telerik UI for Xamarin! Someone say hallelujah!
Telerik lauds Microsoft's decision to democratize Xamarin tooling for developers. We are excited about the promise of true cross-platform mobile apps from .NET developers and look forward to providing Xamarin developers with the world class UI they have come to expect from Telerik.
We're pumped about the Xamarin announcements at //BUILD, just like you. And we're proud to present Telerik UI for Xamarin - a complete rich UI toolset for any way you want to leverage Xamarin towards making cross-platform apps. Want to stay tuned? Follow #TelerikAtBUILD. And grab some of the Telerik folks for licenses, swag and access to exclusive parties. Good times ahead!
Note: Some images courtesy of Xamarin.
Sam Basu is a technologist, author, speaker, Microsoft MVP, gadget lover and Developer Advocacy Manager for Developer Tooling products. With a long developer background, he now spends much of his time advocating modern web/mobile/cloud development platforms on Microsoft/Telerik/Kendo UI technology stacks. His spare times call for travel, fast cars, cricket and culinary adventures with the family.