Why 'Xamarin' is the future of mobile for Microsoft

That could be the answer to Microsoft's infamous "app gap" problem. To say that Microsoft has had a hard time convincing developers to develop for Windows phone and the Universal Windows Platform (UWP) would be an understatement.

The Windows Store has always lagged significantly behind the App Store and Google Play. Sadly, even after the introduction of Windows 10 and OneCore (and the anticipated boost they could have provided), the Windows Store still boasts less than half the apps Apple's and Google's platforms offer.

Developers don't love Windows. Can Microsoft mend the relationship?

The app gap trap

Data proves most people spend most of their time with just six core apps, rarely search app stores, and many of the millions of apps in the top app stores are never downloaded. Despite these facts the warehouse of apps model still dominates. As such, developers are compelled to get their apps into the App Store and Google Play, due to the hundreds of millions of mobile users to whom those stores cater.

Sadly, Microsoft has very little smartphone audience to speak of. Thus, even with over 400 million Windows users, primarily on PCs, Microsoft has not been able to make a compelling argument to mobile-motivated developers to develop for the UWP. Moreover, Microsoft's Windows on phone strategy is currently in a state of transition.

An enduring lack of new first-party devices invokes further doubts in developers' minds about the future of Windows on mobile. The past failings and the current state of Windows phone seem to solidify the notion that there are only two distinct platforms in the mobile space worth targeting: iOS and Android.

What Android and iPhone users need to know about Windows phone

Despite the challenges that Microsoft has faced in the smartphone space, I believe its leadership is convinced that it has a strategy for mobile. As a provider of a range of development tools, Microsoft is positioned to elevate Windows to the same priority level as iOS and Android in the minds of developers. With Xamarin, Microsoft can create a single mobile target and "universal" app development platform. (Xamarin is a company founded by CEO Miguel de Icaza and CTO Nat Friedman in 2012, and it gives developers the tools to use C# to share code across various mobile platforms such as Windows, iOS and Android.)

Before it does, however, it must reassure developers that Windows still has a position in mobile.

Still in the mobile game

Given the news of Microsoft's move out of producing phone hardware, the quarterly "Windows phone is dead" articles have made their ritualistic appearances. Despite what you may have read, Microsoft's Windows on phone strategy continues unhindered.

No Windows phone isn't dead and it may never die

First, Microsoft is still developing the platform that runs on mobile hardware. Thus, OEM partners such as HP, Alcatel and any other OEM who wishes to, can continue to use Windows to power mobile hardware. Second, I have persistently argued that the next phase of Microsoft's Windows on mobile vision would not be a phone, but an ultramobile PC with telephony.

Microsoft's Surface phone should be much more than a phone

This category defining, Continuum-powered device will, in my estimation, be running full Windows on ARM with Cshell. Microsoft no longer making "phone" hardware makes perfect sense from this perspective. Third, I've argued that full-Windows, always-connected cellular PCs, which are expected later this year, would serve as a segue from Microsoft's current Windows 10 Mobile phone-focused paradigm to the full Windows 10 on ARM ultramobile PCs I envision.

Cellular PCs are part of Microsoft's mobile strategy to move always-connected and eventually telephony-enabled PCs into the mobile, not smartphone, space. Thus, Windows is still a viable mobile platform for developers to build for despite the erroneous claims that Microsoft is leaving mobile.

At the Build developer conference this year, Microsoft will likely stress the coming OEM-supported category of highly mobile cellular PCs (no mention of the subsequent ultramobile PCs or Surface "phone" is expected) to draw developer attention to the company's current phase of Windows in its mobile play.

Microsoft hooking developers into the company's narrative for the mobility of Windows is key to Microsoft winning developers to its Xamarin-enabled development vision.

What is Xamarin?

Xamarin had been an active partner with Microsoft up to its acquisition by the Redmond company in 2016. Freidman said the following of the acquisition:

We founded Xamarin more than [four] years ago with the mission to make native mobile development fast, easy, and fun and to help C# developers build beautiful mobile apps and reach billions of devices. We love the native iOS, Android, and Mac APIs and we love C#, and this acquisition is an ideal next step for us and for our customers.

Nat Friedman, CEO and cofounder of Xamarin; Scott Guthrie, executive vice president of the Microsoft Cloud and Enterprise Group; and Miguel de Icaza, CTO and cofounder of Xamarin.

Nat Friedman, CEO and cofounder of Xamarin; Scott Guthrie, executive vice president of the Microsoft Cloud and Enterprise Group; and Miguel de Icaza, CTO and cofounder of Xamarin.

The companies' shared visions are to enable developers to use a comprehensive singular development tool to develop apps for multiple platforms. "Write once, publish everywhere" is the central and ambitious vision. Microsoft's Scott Guthrie, executive vice president of the cloud and enterprise group shared Microsoft's perspective of the acquisition (opens in new tab):

With today's acquisition announcement we will be taking this work much further to make our world-class developer tools and services even better with deeper integration and seamless mobile app dev experiences. The combination of Xamarin, Visual Studio, Visual Studio Team Services, and Azure provides a complete mobile app dev solution that provides everything you need to develop, test, deliver and instrument mobile apps for every device.

With Xamarin as an integral part of its app development platform, Microsoft is positioned to provide developers with the tools to target Windows, iOS and Android as a single composite mobile platform. Such a Herculean task will require more than explaining the merits of the tools to developers, however.

Microsoft has to embrace the challenging task of composing a message that changes the way mobile is perceived by mobile-focused developers who see the term as strictly Android and iOS.

Xamarin, one mobile platform to rule them all

Microsoft has positioned itself as a platform company and has a goal to provide users with the tools to "do more." I believe that Microsoft wants to position itself as a dev box to help mobile developers do more than target the disparate mobile platforms that are iOS and Android.

The personal computing landscape is increasingly one where a user's digital experience not only transition from device to device but also moves across ecosystems. For instance, many people have a Windows PC but also use a mix of Microsoft and other apps on iPhones and Android phones.

The personal computing space is not a hodgepodge of disparate segments, as it may seem. With Microsoft's cross-platform development efforts and efforts to integrate Android and iOS into the Windows ecosystem, it is clear that the cloud-supported personal computing space is becoming less about distinct platforms.

Composing the single development platform message

I believe that Microsoft should arrest this message on the development side of the equation.

Currently, when developers think about developing for mobile, Windows is rarely a consideration. If it is considered, it's often as a second tier priority, if an individual's or company's resources will allow.

The app bridges, though well-intentioned, reinforce this thought pattern as they beckon developers to take their first-tier iOS and Android code and convert it to the "second-tier" UWP. In essence, the bridge philosophy does nothing to raise Windows to a first-tier consideration in the minds of developers. It supports the continued thinking of three distinct mobile platforms, of which iOS and Android are the targets and Windows is an "if-you-want-to-but-don't-really-have-to" platform.

Microsoft must compose a Xamarin message that eradicates the platform distinctions.

As all mobile platforms are designed to offer the same fundamental mobile experience, I submit that an ideological eradication of platform distinctions is (or should be) Microsoft's goal. In other words, Microsoft needs to change how developers think of mobile.

To raise Windows to a first-tier target the company needs to encourage developers to see mobile as a single target that is a Windows-iOS-Android composite rather than three distinct platforms. With Xamarin, Microsoft has the tools to do just that (opens in new tab):

In conjunction with Visual Studio, Xamarin provides a rich mobile development offering that enables developers to build mobile apps using C# and deliver fully native mobile app experiences to all major devices – including iOS, Android, and Windows.

Positioning the 'universal' app development platform

As an industry-wide provider of development tools, Microsoft could promote Xamarin to the millions of developers who are currently writing apps for iOS and Android, as well as Windows. Ideally, Microsoft will have put in the investments to make Xamarin a powerful, desirable, efficient and accessible development tool to encourage developers to use this single tool for cross-platform development.

If successfully positioned both technically and ideologically, Microsoft could encourage iOS and Android developers to use Xamarin to continue with their mobile development objectives while "seamlessly" incorporating Windows into that vision.

If this is Microsoft's strategy, the company likely hopes that developers who are inclined to use Windows as a development platform will be enticed to target Windows as an app platform. Though changing minds is an ambitious goal, this strategy has the potential to alter the perception that iOS and Android are synonymous with mobile.

If Microsoft is successful, "mobile" will be seen as a single Windows-iOS-Android platform, and Microsoft with Xamarin will be regarded as the industry's development platform for that newly defined mobile target.

Build 2017 is around the corner. Along with a push of project Centennial to bring Win32 apps to cellular PCs and eventually an ultramobile PC, I expect a strong push toward Xamarin this year.

What are your thoughts on a potential positioning of Xamarin as a universal app development platform?

Jason L Ward is a columnist at Windows Central. He provides unique big picture analysis of the complex world of Microsoft. Jason takes the small clues and gives you an insightful big picture perspective through storytelling that you won't find *anywhere* else. Seriously, this dude thinks outside the box. Follow him on Twitter at @JLTechWord. He's doing the "write" thing!

  • Thanks for reading folks! Xamarin is potentially Microsoft's way of creating a single Windows-iOS-Android development platform and mobile target. If successful this would elevate Windows to the same priority level as iOS and Android in the minds of developers since they will see "mobile" as a single composite mobile target rather than three disparate platforms. Combined with a Project Centennial push to modernize Win32 apps as I argued last year: https://twitter.com/JLTechWord/status/859050749749284865 I expect MS to stress Xamarin at this years Build. What are your thoughts? LET'S TALK!!!
  • Here's the issue: There are only two platforms developers bother to target (iOS, Android), so the theoretical maximal benefit one could get from adopting something like Xamarin is 50%.  Of course, even right now, most assets can be used on both platforms, and so the benefit is much, much less than 50%.  Combine that with the fact that Xamarin is woefully limited in its "write once, run anywhere" capabilities--can't write a "good" app in Xamarin that will run anywhere--and it this strategy makes no sense.
  • Xamarin is much like Cordova, a great way to do some apps efficiently. And it does somewhat lower the barrier for creating a UWP app, but I doubt most will still bother, not yet anyway.
  • Agreed. When MS starts developing MOST of their own apps with Xamarin, including their most important properties, that's when I think articles like this become believable. That's when we'll be able to consider Xamarin a generally applicable solution. Until then the opinion expressed here is IMO just wishful thinking. MS currently can't even convince themselves to use Xamarin on a wider scale. Right now, that says everything developers need to know. It's not useless, but at least for now, it's a niche solution.
  • I disagree Xamarin is much like Cordova.  While the end goal is the same, how the two platforms go about it is vastly different... so much so that we're rewriting our existing Cordova app in Xamarin.
  • @ajj3085 Your second scentence starts off with "while the end goal is the same". It could be argued that means you actually do agree with Bloodbed. The goal is, after all, more important than the technicalities of how we get there. In that way Cordova is much like Xamarin. IMHO Xamarin is a great solution for a limited set of scenarios. Cordova and Xamarin are also similar in that way.
  • When I hear assets (I'm a software developer), I think things like icons, images, sounds, etc.  Not code.  And code is going to be around 99% of the application.  Cutting development time in half IS a huge deal.  We're actually using Xamarin now to (re)develop our b2b app for iOS and Android.  And while we're not planning to release the UWP app to the Windows store at this point, its actually what we're using to run the application locally as its the least friction way to run and debug.  In what what is Xamarin "woefully limited?"  If there's something you need to do that's not exposed by Forms, you can access the Android/iOS APIs through the .Net wrappers.
  • I'll be at //build and am hoping they have some cool surprises, but the problem with Xamarin historically is that for basic apps with lists you scroll through, buttons, etc. it's great. As your app gets more complex you need to override the Xamarin rendering to be a native one for particular views (e.g. Objective-C, Java, Swift, etc.) and depending on the number of those views you start turning your app into separate apps that have code native to iOS, native to Android, native to Windows and have some small amount of common C# code. For the work my mobile coworkers do, that was still too fragmented. They used Xamarin for a while, but shifted to common/shared C++ libraries instead of C#/Xamarin and otherwise going native to each platform. There's a huge market out there for apps that don't need to be super complex, but unless/until Xamarin can do a lot more, a good chunk of apps don't make sense to develop with it.
  • I think, that when we start thinking mobile Windows as tablets and laptops with touch screens, we start to see the light. Many commentets are fixed to WP and WM...
    iPad is not a phone, and boy, does it have apps. Phones are just a part (though big part) of mobile development and usage.
  • I mentioned in one of your earlier articles as well. Xamarin is not a magic tool its quite limited for any complex development and devs would prefer to go native to have full control.
  • You can make native views and code behind using Xamarin + MvvmCross.
    The behavior and the logic of the app (the biggest part, usually) are still shared.
  • Hi techiez I aware Xamarin has limitations, but my analysis considers the fact t