EVOLVE 2016 Xamarin's Evolve conference is under way in Orlando, Florida, where around 1,600 attendees are coming to terms with Microsoft's acquisition of the company, completed less than one month ago.
Xamarin's main product is a set of tools and compilers that enable cross-platform mobile development using Microsoft's C# language.
It's so far, so good, with the Xamarin team operating much as before, and attendees reporting greatly increased interest in Xamarin development following the acquisition.
The key factors are first, that Xamarin's tools and compilers for iOS, Android and Mac are now free, and second, that Microsoft's enterprise presence plays well with large businesses - or so I am being told by some of the developers here. There is also some anxiety about whether Xamarin's marriage to a larger and more bureaucratic company will damage its culture or make obtaining support more cumbersome.
At today's keynote, the company announced that the Xamarin SDK is now available under the permissive MIT open source license, under the oversight of the .NET Foundation where other .NET and C# technologies such as .NET Core and ASP.NET also find their home. The Xamarin SDK is available at open.xamarin.com
Although it is early days for the Microsoft acquisition, some changes have already taken place as a result. One is the scrapping of RoboVM, a cross-platform mobile toolkit based on Java rather than C#. Another is that Xamarin Studio, an IDE which runs on the Mono cross-platform runtime, is now a Mac-only product, whereas previously it was also available for Windows.
The company is also making an effort to improve Visual Studio, even for those doing iOS development, which requires a Mac as part of the build process. At Microsoft's Build conference a few weeks ago, there was a preview of ability to see and interact with the iOS Simulator from Visual Studio via remoting. Today Xamarin has also announced USB remoting, meaning that you can attach an iOS device to a PC and use it to test and debug your app - apparently via a round trip to a Mac.
Both the simulator and a USB-attached device support Test Recorder in Visual Studio, so you can record and replay user interactions.
In Xamarin Studio, there is now a dark theme, integration with Microsoft's "Roslyn" compiler to enable full C# 6.0 compatibility, and support for Portable Class Libaries coded in F#, .NET's functional programming language. A Portable Class Library allows code to be used safely on multiple .NET platforms.
The look and feel of Xamarin Studio has also been updated, with new icons and a more polished appearance. Project interoperability with Visual Studio is better, a 64-bit version is available, NuGet package management is improved, and NUnit 3 testing is now supported.
Xamarin Forms, a framework which lets you build a cross-platform GUI (graphical user interface) using a version of XAML, has been enhanced. The Xamarin Forms Previewer now offers an instant preview of XAML code in the IDE; it is not a visual designer, but a step in that direction (this feature drew a cheer from Evolve attendees).
Xamarin Forms also has some new features, including theme support for applying common styles to multiple applications, and Data Pages which provide a quick way to hook up a user interface to a data source. Another feature is simplifed deep linking, so that an URL can point to an internal location within an application. There is also a native embedding feature, which makes it easier to include a native code component within a Xamarin Forms GUI.
In the testing and analytics area, Xamarin announced the ability to get full remote access to mobile devices running in its Test Cloud, a service for testing applications on multiple physical devices without having to acquire them. There is also new integration between Microsoft's HockeyApp and Xamarin Insights, tools for analysing application usage and crash reports.
A "Developer DNA" wall chart, created by attendees using pieces of string, gives some insight into the habits of Xamarin developers. We learn that a majority use iOS devices and develop on a Mac using Xamarin Studio, though Visual Studio is not far behind.
Despite these advances, Xamarin and Microsoft have some tricky issues to solve. One is the incompatibility of Xamarin Forms and Microsoft's other XAML flavours, such as that used by the Universal Windows Platofrm (UWP). Another is that Apple is moving towards a policy of requiring applications to be submitted to its Store in bitcode, an intermediate format used by the LLVM compiler chain. Xamarin also uses LLVM, but does not yet support bitcode output.
There will always be challenges in creating tools for platforms owned by others, but Microsoft has to make this work if it is to fulfil its ambition to enable its developer community to support iOS and Android without leaving the comfort of C# and Visual Studio.®