Xamarin's Evolve conference is underway in Atlanta, and on Wednesday the company announced new tools for cross-platform mobile development, along with a new partnership with IBM.
Three-year-old Xamarin was formed to enable developers to code for Android, iOS, and OS X using Microsoft's C# language and .Net Framework. The company's technology is based on Mono, an open source implementation of .Net initiated by Miguel de Icaza, now Xamarin's CTO.
With it, developers can write non-visual code that runs on multiple device types, and then create user interfaces using either the native tools for each platform or a cross-platform interface definition tool called Xamarin.Forms, which is based on Microsoft's XAML language. The IDE is either Microsoft's Visual Studio or Xamarin Studio, the company's dedicated tool that runs on both Windows and OS X.
On Wednesday, Xamarin announced four new tools.
Miguel de Icaza speaking at Xamarin Evolve 2014
The first, Sketches, is an interactive C# (and soon F#) shell. You type in a line of code and it executes instantly – so you can experiment with user interface code to try out different colours or borders, for example, and see instant results. It also shows an analysis of the code, such as how many times a loop executes, and will visualise data with charts. The current preview works with iOS, Android and OS X code in Xamarin Studio running on OS X, with support for Android, iOS, and Windows code in Visual Studio to follow.
Another new tool released as a public preview is Xamarin Profiler, which collects performance and memory allocation data and creates reports that you can view in your IDE. A stack trace shows the chain of code that is responsible for a problem.
Xamarin Insights is a debugging and analysis tool for deployed applications. If your app is instrumented with Insights, it will send analytics and crash reports to Xamarin's cloud service. The developer has fine-grained control over what data to collect, and all the data is encrypted, Xamarin CEO Nat Friedman assured The Reg.
Xamarin Android Player runs rings around Google's emulator
Finally, Xamarin showed off a zippy new Android emulator that runs on Windows and OS X. Google's official Android emulator is horribly slow, especially on startup, and it's limited when it comes to applications that use accelerated graphics. Xamarin Android Player, now in preview, uses the open source Virtual Box tech as the basis for a new, faster emulator. The UI is built using native components for OS X and Windows respectively, avoiding the generic Java look and feel of Google's tools, and it uses OpenGL for fast graphics. You can also debug an APK (Android Package) by dragging and dropping it onto the emulator.
Xamarin also demonstrated its recently launched Test Cloud at Evolve, which is a set of over 1,000 Android and iOS devices on which developers can deploy and test code over the internet. A scripting language lets you simulate user actions or device changes, such as rotating from portrait to landscape, and you can later play them back to see how your application behaved.
In all, the new tools are worthy additions for Xamarin, which certainly turned up at the right moment. C# is a popular language, but Microsoft platform developers need a way to build clients for mobile devices, most of which run iOS or Android. Microsoft itself was initially wary of Mono, but now needs Xamarin in order to achieve the "any device" strategy championed by CEO Satya Nadella.
The outcome is fast growth and a company with which lots of other firms are looking to partner. Microsoft heads the list, but Amazon, Google, IBM, and Salesforce are all sponsors and supporters, along with cloud companies like Dropbox and Twilio, component vendors like Infragistics and DevExpress, and a bunch of others. In addition, while Xamarin claimed 288,000 developers this time last year, it says it has 755,000 today.
Among Wednesday's partner announcements was that IBM has teamed with Xamarin to offer libraries and IDE extensions to support Worklight, its mobile middleware that integrates with enterprise application servers.
With Microsoft struggling to establish its own mobile client platform, whether Windows Phone or Windows tablets, Xamarin is attractive to C# developers who need to build mobile apps. One snag, however, is that the tools are subscription-only and relatively expensive for independent developers or small companies. Xamarin's progress is impressive, though, and if the tools perform as advertised, it will continue to grow. ®