Confronted by an implacable, all-powerful alien, Captain Kirk turned certain defeat into victory by playing a different game from his opponent. Chess became poker, and The Corbomite Maneuver was his bluff that won the hand.recently announced X series of devices, which build on ASOP with an Asha-derived UI and a mix of Nokia and Microsoft services.devices and services business, where the devices are all devices, and the services are all services.growing relationship with Xamarin, and with its .NET developer tools. Xamarin's support for Microsoft's C# language, and the Mono open source C# compiler, has allowed it to build tools that integrate with Microsoft's Visual Studio developer tools, while being able to deliver code that runs on Android, on iOS, and on MacOS. Neatly side-stepping the lowest common denominator problem, Xamarin encourages developers to use modern design patterns to separate user interface from application code, so they can use their existing C# skills to build native experiences for each platform, while minimizing the amount of device specific code that needs to be written.Nokia's discussion of how it built its MixRadio app for its new X series devices is an example of how this might work. By using many of the design philosophies Microsoft is championing -- the MVVM design pattern and portable class libraries -- Nokia has been able to build one app with multiple user experiences, and then deliver it to different platforms. Windows and Windows Phone apps were built in Visual Studio, while the Android version was built using Xamarin. Nokia now only needs to maintain one codebase for MixRadio, fine tuning user experience separately from the core code that manages playlists, and handles connections to Nokia's music services.
In the mobile world Microsoft remains a distant third player, a long way behind the twin colossi of Android and iOS. Its app ecosystem, while growing, is still small compared to the older app stores, and it's hard to see how Microsoft can catch up. It's a problem that seems intractable: developers will go where the money is, and paying them to build on your platform, while giving you a numbers boost, doesn't result in quality apps that get regular updates.
So, the theory goes, Microsoft needs to drop Windows Phone, and develop its own Android variant, building on the open source Android Open Source Project (AOSP) phone framework with its own store and services. That way Android developers would be able to quickly recompile existing apps for Microsoft's store -- especially if Microsoft made its service APIs compatible with Google's Play Store APIs. That's the approach Nokia has taken with its
But what if Microsoft is playing a different game?
Much of the analysis of Windows Phone has been focusing on it as a platform. But that's the old Microsoft. The new Microsoft is a
While Windows Phone is important to Microsoft, it's just one device, and one endpoint for a wide array of services. Those services can also target iOS and Android, whether Google's branch or the various AOSP forks. What developers need is one way of building the apps that work with those services, no matter what platform they're targeting.
So if Microsoft is to change the game, it needs to find a way of delivering on the old write-once, run-many promise of Java. There's only one problem: Building to a lowest common denominator never works.
Luckily there's an answer, in the shape of Microsoft's
This then is The Xamarin Maneuver: Using Microsoft's existing developer tools and relationships to deliver services like Nokia's music to not just one class of devices, but as many as possible. Nokia could easily have built MacOS, iOS (both phone and tablet), and mainstream Android versions of its app using that same set of portable class libraries; all its developers would have needed to do would have been to use Xamarin's tools to build user interfaces for those devices.
Developers using Visual Studio and Xamarin don't need to learn new skills (and if they do, the recently launched Xamarin University can help them learn while they code), and they can even work with familiar APIs for the services they're already using. Some, like Salesforce and SAP have Xamarin-specific toolkits, while developers can also use existing .NET and RESTful APIs in their apps.
The benefit for Microsoft is clear: It doesn't need to keep its mobile eggs in one basket. By cultivating its relationship with Xamarin, Microsoft can leverage Xamarin's cross platform skills while concentrating on encouraging developers to use its tools to build mobile apps not just for Windows Phone and Windows 8, but for all platforms. Similarly, by providing Xamarin-specific toolkits for its Azure cloud platform, Microsoft can simplify delivering services to all those platforms (along with competitors and partners doing the same).
Using The Xamarin Maneuver means that Microsoft doesn't need to play the game that's expected of it, a game it can only lose. Instead, it's able to play another game, one with different rules. It might not win, but it's certainly got a fighting chance.