I have been doing a few talks lately on the Universal Windows Platform (UWP), and there are several more to come. Often though, I’m asked “Why is it such a big deal?” or “Why should I care?” Completely reasonable and relevant questions, especially given my public fascination and fanboy-ism of Windows Phone. However, there is a lot more to UAP than merely Windows Phone.
Microsoft has a vision of “One Windows”, which in essence means that your apps can run on a single platform that spans all of the different form factors running Windows, whether that is Raspberry Pi or tablet, or even Xbox. I have decided to try and spell out why it is so important, not just for the Microsoft stack and developers, but for tech in general. Here are my top 7 reasons.
Use Existing Apps from Other Platforms
At the recent //build conference in San Francisco, Microsoft announced that you will soon be able to use your iOS and Android code in Visual Studio and then publish to Windows. Code named projects Islandwood and Astoria, it is one of the most ambitious initiatives I have heard about in a long time. In a nutshell, the “bridges” (as Microsoft calls it), take your Objective C or Java code and open it in Visual Studio, tweak it for platform specific features and then deploy to the Windows Store as a Universal App.
I am not sure it is going to be that simple, but apparently Candy Crush *shiver* was made with this tool without anyone knowing. It is a major achievement, and as we learn more about it, I will make sure to get back to this in a later post.
One UI, Multiple Devices
With Universal Apps it is possible to have a single user interface that will adapt to whichever platform it is run on. Although this require more thought and work upfront, the return is exponential. Of course there will be some tweaks needed for each platform, but essentially you have one code base for the majority of your UI. I am a little sceptical that the same control will look equally great on both Xbox and mobile for example, but time will tell.
What isn’t obvious is how the single design can take into account the different ways of using devices. The way you interact with a phone is significantly different from a desktop PC, but this is possibly where you need some customisation for each form factor and device family.
Target the Devices You Want
Just because you can target all of the UWP, doesn’t mean you have to. For your particular project you might not want it to work on phones. For example, if you are making an app that shows large datasets or large data entry forms, it may not work to have it scale to mobile devices.
The UAP does give you the flexibility to target platforms that make sense in the context you are working in.
You can use a single skillset, such as C# and XAML, to build for the entire eco-system. In the past developers have been required to learn new platforms and languages from time to time, to keep up to date with both technologies and consumer trends. With the UAP your current skills will stay current for much longer and you will have less learning to do to stay current.
In addition future devices and platforms will fit into the APIs already existing, and theoretically there should be much less fragmentation of the APIs. This is yet to be proven of course, and only time will tell if this hold true.
In line with the previous point, this is the future of all Microsoft apps. As well as Android and iOS, the software giant is also incorporating Web and Win32 programs into Universal apps. This indicates that Microsoft is putting all their eggs in one basket with the UAP and this in turn means your work is future proof and will continue to give a return on your investment.
As any software developer will tell you, software is obsolete the moment it is complete, so having a platform that will remain consistent, will at least allow you to focus on features rather than compatibility.
Internet of Things
The future wave of computing devices can be anything and everything and it is all connected to the internet and has an IP address. Your fireplace will tell your cat feeder when you cat is not in front of it. Microsoft’s vision is that a large portion of these devices will run Windows, and the first step is Raspberry Pi 2, which is currently in an early release.
Internet of Things is a whole other story and it will be the future of most computing innovation. As processors gets smaller, they will be in your toothbrush, your bike helmet and everything in between.
One Billion Devices
Probably the most important reason of them all is that Microsoft is betting everything on the platform. They recently announced a highly ambitious goal of having Windows 10 on one billion devices in 2-3 years. This means your app that you write has an enormous market to get users from and the potential for expanding and increasing return on your effort is massive.
Will they make it in 2-3 years? I hope so.