Windows 10 – Why Should a Developer Care?
As an Audience Evangelism Manager, part of the DX family from Microsoft, I’ve to have a lot of developer interaction and to my biggest surprise these days, most developers aren’t comprehending how Windows 10 is a marvel from Microsoft and is critical to Windows ecosystem. a.k.a. Universal Windows Platform (UWP) complemented with UWP Bridge.
The problem in my humble understanding is that app developer’s lack context of how Windows 10 differ from its predecessors, at-least in this part of the world. In this blog post, I’ll try to highlight the background that every Windows 10 app developer should comprehend and given that context, take advantage of the opportunity that lies before him with launch of Windows 10 – a billion devices to target.
So let’s get started. The story begins as developer’s come across Windows Runtime (RT), a new OS and app model targeted towards ARM devices and as an OS it faced challenges like short of running devices/tablets (the no. of consumers a developer can target) and lack of apps. This was coupled with the pain the developers had to take to offer an app for both Windows Store (Win RT) and Windows Phone (given Windows Phone 8 apps were based on Silverlight) platform. Both platforms, Win RT & Silverlight based Windows Phone apps had little APIs in common (if at all) and an app developer had to invest time exclusively for both Windows Store (tablet) and Windows Phone versions of an app. I would argue that Microsoft knew the pain an average developer had to go through but then there was a greater engineering work going on at the core of the Windows Kernel, aiming to build an OS Kernel that’s shared by all Windows devices. Windows 8 was just a step in that process and not the destination.
Some of us witnessed that single OS kernel in fashion as Win RT was introduced in Windows Phone 8.1 and developers could now have a shared code base (with still somewhat compiler directives) targeting multiple devices (Windows Store 8.1 & Windows Phone 8.1). This was helpful for a Windows app developer but the real world had more than app developers within; there were enterprises with desktop ERPs built and maintained on VB6, those who were migrating or had state of the art solutions developed using .NET for desktop, there were millions of websites running ASP .NET with Silverlight, then there was Embedded Windows and Internet of Things (IOT) space was recognized as new wave of consumer market. The code written by an app developer couldn’t run effortlessly on a desktop application and Microsoft was working over the years to change that and thus Windows 8.1, yet again was just a step towards the real destination, Windows 10.
Windows 10, a Single Unified Core across All Windows Devices
Welcome to Windows 10, within which the Windows Runtime is taken forward to offer a single, unified Windows core across all Windows devices be it Windows Desktop, Surface Hubs, Holographic, or IOT. In a developer’s lingo, a single app package targeted towards Universal Windows Platform will now run on any device as long as that device is running Windows 10 because of the underlying Windows core API. If you’re a developer, Windows 10 is The Best One yet because it offers common Windows code enabling the fundamental features of Windows across devices. The single app package for UWP will be published and delivered to all Windows devices that it targets through Windows Store making it simpler than ever before for a developer to target various platforms.
Not only this, if the device offers particular APIs that are specific to that device family (since an Xbox will require specific APS that are not required on Windows Desktop (say) and Microsoft will ship those APIs in addition to Windows Core) , then a UWP app will still be able to call those APIs, however conditionally (since they may not be available on all device families). Here are the device families that are opening up for developers with Windows 10,
Universal Windows Bridges
However, in the real world, the reality is also made up of competitor’s where Android is carrying a good volume of Smartphone industry and plethora of distros from Linux. The real world carries iPhones & iPads with Macs offerings desktop solutions. Though Microsoft offered a shared OS Kernel across all its devices with Windows 10, how has it planned to deal with the reality of those pads and droids?
Microsoft came up with brilliant plan by announcing Universal Windows Platform Bridges. UWP bridges are four toolkits each targeted to bring your existing codebase to Universal Windows Platform and take advantage of Universal Windows Platform features such as Live Tiles and In-Store purchase. As of today, following four toolkits are announced,