How Nokia runs Windows Phone apps on Android
Ever since Nokia jumped off its burning platform and into the arms of Microsoft it has focused its software development on Windows Phone. But since the company announced its three new Android handsets it has become clear that Nokia has also been working to get its apps and services on Android. The problem for any company that works across multiple operating systems is that porting software can be expensive and time consuming.
Android, Windows Phone and iOS all use different programming languages and design philosophies and although the Software Development Kits (SDKs) are freely available, a program written for Android won’t run on Windows Phone and vice versa, not without some serious changes. Android uses Java as its main development language (although it does have a native development kit so code written in languages like C can be compiled for Android). Windows Phone uses Microsoft’s .NET Framework together with Visual Basic or C#. Apple’s iOS uses Objective-C much like Mac OS X.
One interesting aspect of the Nokia X announcement is that Nokia has managed to get its apps and services like Nokia MixRadio on to Android. The question is how? Did Nokia re-write the app in Java? Did it employ a new team of developers to start from scratch and create new a MixRadio app? Actually neither. What Nokia did was to use a special bit of software from a company called Xamarin that basically lets Windows Phone app run on Android.
OK, it isn’t quite that simple, but the Nokia MixRadio app started its life as a Windows Phone app and by using Xamarin’s platform the app was ported over to Android without a massive re-write. Xamarin are a company that specialize in bringing Microsoft’s .NET Framework to other platforms besides Windows. In fact its aim is to allow developers to write apps entirely in C# and share the same code on iOS, Android, Windows and Mac. And if the MixRadio app is a good measure it looks like they are succeeding.
One example of this is the Nokia MixRadio app, which started its life as a Windows Phone and Windows Store application and using the power of the Xamarin platform, is shipping as a pre-installed app on Nokia X devices -- Chris Hardy.
According to a blog post by Chris Hardy of Xamarin, Nokia used Microsoft’s Portable class libraries (PCLs) and the popular third party MVVM library MVVMCross to enable the .NET version of the MixRadio app to run on Android, while still taking advantage of the Nokia X platform’s nuances and user interface. Microsoft originally envisioned the PCL project as a way for .NET developers to write code that would run without modification on Windows 7, Windows 8, Silverlight, Windows Phone, and Xbox 360. Xarmin then brought the PCL to Android and iOS, making it easier for C# developers to share code across devices.
Now that the MixRadio app is running on Android, Nokia wants to remove all the legacy code from the Windows Phone and Windows 8 versions of MixRadio and move them over to the PCL. This will mean that the Android and Windows Phone versions will be built from the same shared codebase.
Could Microsoft infiltrate the Android eco-system even more?
Now that Nokia has shown its ability to port .NET apps to Android, will Nokia and/or Microsoft use the technique for other apps and services? If Nokia continues to develop its Nokia X platform then it is likely that some of those enhancements will come in the form of apps taken directly from Windows Phone or at least from Nokia’s repository of Windows Phone apps.
It is technically possible for Nokia to release Nokia HERE maps and MixRadio for other Android devices and it would be possible for Microsoft to push its way further into the Android eco-system by continuing to offer its apps and services on any Android phone, not just the Nokia X.
Microsoft has already done this to some extent in that OneDrive, My Xbox Live, OneNote and Bing are available for Android. However one of the value propositions of Nokia’s handsets (both Windows Phone and Android) are that they have unique apps and services that you can’t get on other devices. So while it is technically possible to bring all these apps and services to the general Android marketplace, it might not make good business sense.