9:00 AM | March 30 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 !
The Xamarin Arsenal
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:
- Native UI – Apps render standard UI components for each platform. This feels natural to users.
- Complete API access – Full access to the API of each underlying platform using C# to invoke the APIs.
- Native Performance – Pre-compiled packages for performant apps that leverage hardware acceleration.
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:
- Xamarin Platform – The actual development platform to build iOS, Android and Windows apps with C#.
- Xamarin Test Cloud – A modern cloud-powered way to test your mobile apps on hundreds of devices.
- Xamarin Insights – Real time analytics to monitor your mobile apps.
Let us break down Xamarin tools further to understand all the platforms that can be targets for your cross-platform app:
- Xamarin.iOS – Build iOS and Watchkit apps that can access any iOS APIs and can be bundled as native app package.
- Xamarin.Android – Build Android and Android Wear apps that can access the entire API set and support all devices.
- Xamarin.Mac – Target OSX and use XCode’s Interface Builder to build AppKit UI.
- Xamarin.Forms – Use abstracted an UI layer that offers a cross-platform UI via shared markup.
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:
- Visual Studio: Your familiar playgroud with all the Xamarin bells and whistles;
- Xamarin Studio: The stand-alone cross-platform IDE.
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:
- Xamarin Platform is now a part of the Visual Studio family. This means complete access to the entire Xamarin stack for all Visual Studio developers.
- Xamarin is free for Visual Studio Professional, Enterprise, MSDN Subscribers and even the free Visual Studio Community Edition.
- Xamarin Studio for Mac is now available free for Visual Studio Professional or Enterprise subscriptions.
- A new lightweight Xamarin Studio Community Edition is available for free on Mac.
- The Xamarin Core Runtime is now open source with some proprietary, mobile-specific improvements to the Mono runtime.
- Xamarin Insights is joining with HockeyApp to bring app insights/debugging issues to a wider audience and enable better DevOps workflows.
Telerik UI for Xamarin
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:
- Telerik Xamarin.iOS
- Telerik Xamarin.Android
- Telerik Xamarin.Forms
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:
- Telerik Xamarin.Forms UI docs
- Telerik UI for iOS Wrapper docs
- Telerik UI for Android Wrapper docs
- Recording or Live Webinar on Polished UI for Xamarin apps
- Enhancing Xamarin Forms aps with Telerik Charts
- Persisting Xamarin.Forms data in Cloud Backends
- Cheat sheet for Xamarin Studio
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.