After years of "will they, won't they" speculation, Microsoft has finally announced it will purchase Xamarin, the company that brought native Android and iOS development into Visual Studio. The acquisition makes perfect sense, but why now? Although the move should have been made a year ago, it's not too late for Microsoft's wider development ambitions.
By building on .Net and C#, Xamarin has provided Windows developers with an easy route to building applications outside the Windows ecosystem, without alienating users. Microsoft has struggled to deliver cross-platform development tooling on its own, relying on hybrid HTML5 applications for Android and iOS, making it hard to deliver the user experiences that Android and iOS users demand. Xamarin fills this gap.
Bringing the two organizations together adds cross-platform UI tooling to Microsoft's developer platform, along with the compilers needed to deliver native code to mobile devices. By incorporating Xamarin into the official .Net toolchain, Microsoft could make Windows 10's Universal Windows Platform truly universal.
Microsoft's original Windows 10 bridge strategy was about bringing non-Windows applications to Windows, an approach that left many Windows developers feeling abandoned. Adding Xamarin's tools to its developer platform gives Microsoft the missing piece in its cross-platform story, helping Windows developers build cross-platform apps that deliver native user experiences on Mac OS X, iOS, and Android, as well as various versions of Windows 10. These apps might even extend to Google's and Apple's smartwatch platforms.
Xamarin recently retooled to take advantage of the latest .Net compiler technologies, and it's currently working on a new version of its development tools. According to CTO Miguel de Icaza, the new tools will include scratchpad features similar to Xcode's Swift Playgrounds -- replacing much of what was delivered using Mono with Microsoft's Roslyn. Bringing features like this to Visual Studio should help Microsoft bring non-Windows developers to the Windows platform. It should also speed up the process of delivering Universal Windows Platform apps to other OSes. Developers will need only a single code base, with separate UI modules for each device class they want to target.
Recent Xamarin developments have also included Xamarin Forms, a single set of UI controls that map to native functionality. Using Xamarin Forms, a developer can quickly lay out an application GUI and have it render appropriately on target devices, using iOS features on iPhone and iPad and Android features on Android phones and tablets.
While developer tools are a key component of Xamarin, Microsoft is likely to have found the company's Test Cloud an attractive part of the deal. Automating cross-device testing, Test Cloud fills another gap in Microsoft's devops strategy, giving it more of the tools needed for an automated cross-platform build chain. Other devops tooling from Xamarin should help add user acceptance testing and cross-platform application analytics to Microsoft's tool chest.
Sign up for CIO Asia eNewsletters.