Yesterday Microsoft had a big Windows 10 event where they announced all sorts of things, including their vision for Windows 10’s “universal apps.” The concept of universal Windows apps has been around for a long time (I feel like we’ve been promised it for a decade now), but I guess it’s more real this time? (Dunno. Maybe a real developer can comment on what this means from a dev’s perspective?)
Anyway the idea is that you write a single Windows app that can run on a variety of devices with varying screen sizes and input methods (including even an XBox). Microsoft showed off a preview of a future version of Office where the same apps ran (locally) on a laptop, a tablet, and a phone, where it was literally the same app code running on all three devices.
The UI transformation to take an app that was written for a large screen, keyboard, and mouse and make it run in a useable way on a phone is the million dollar target here. We’ve been saying for years that that’s the main drawback to VDI on a phone. (In other words the challenge isn’t that you can’t get the remoting and networking to work from a phone, rather, it’s that the app you’re accessing from your phone via VDI is a desktop app with a UI built for a different type of device.)
Microsoft kinda-sorta tried to solve this with so-called “Windows 8 apps” (or “Windows Store Apps” or “Metro” apps or “TileWorld” apps or whatever you want to call them), but the big limitation in the past has been that the API restrictions of those apps were very different than traditional Windows desktop apps. This meant that if you wanted to write a Windows 8 app for a tablet that you essentially had to go back to Square One and develop the app from scratch, and for 99.99% of the world, if they were going to go back and develop a touch-based app from scratch for a tablet, then they were going to build an iOS app for an iPad.
This brings me to the next point. If Windows 10 universal apps are more-or-less “normal” Windows apps with hints that allow them to automagically re-configure themselves for small devices, what’s the plan for getting these on iOS and Android devices?
Microsoft’s demo showed their Windows 10 universal apps running locally on phones and tablets, but of course those were Windows 10 phones and Windows 10 tablets. For these to really catch on in the mobile space, there will have to be a solution for non-Windows devices.
I can see several options.
Option 1: if a Windows 10 universal app really is the same app that runs everywhere, I would assume Microsoft could extend RDSH / RemoteFX / VDI so that if a user connects from a mobile device, the copy of the Windows 10 app running on the full Windows 10 OS in the datacenter could reconfigure its UI so that it presents itself in a way that makes sense on the mobile device.
Option 2: Failing that, I wonder if Microsoft (or Citrix or VMware) will get into what’s now being called the “VMI” (Virtual Mobile Infrastructure) space. VMI is like VDI, except instead of users connecting to back end VMs running Windows, they connect to back-end VMs running mobile OSes. (Due to Apple’s licensing restrictions, all of the VMI products on the market today use Android. Of course this doesn’t mean that the clients have to be Android, so an iPhone user can connect to a remote Android session running an Android app, and that’s probably a fine user experience for them—certainly better than a desktop app.)
Anyway I wonder if Microsoft would support running the mobile version of Windows 10 as a VM which could be used (with RemoteFX) to remote mobile Windows 10 apps to mobile users (again, regardless of their platforms). I would imagine this is a big opportunity for VMware and Citrix as they could add Windows 10 mobile app interfaces into their desktop virtualization suites and deliver them with the same protocols, performance, and policies as traditional Windows desktop apps.
The downside to the first two options is that they both require a network connection to use the app. (Which is maybe not a problem for enterprise apps?)
Option 3: This is a crazy long shot, but I wonder if it would be possible to run a Windows VM (or at least some kind of micro-VM) on an non-Windows mobile device. It wouldn’t necessarily have to be the entire Windows environment, rather, it could just be a sort of translation API which would make the Windows 10 universal app run on a mobile device. (Kind of like what Adobe does with Flex.) Of course it would be up to Microsoft to enable this, and I can’t imagine them wanting to enable “Windows” apps to run on non-Windows phones, but meh, if Adobe can do it, why can’t Microsoft?
All that said, we’ll have to see how easy it will be to port traditional Windows desktop applications to Windows 10 universal apps. (Everything on Microsoft’s site talks about migrating Windows 8 apps to Windows 10 apps, rather than traditional desktop apps.) Still, even if you have to build a new app from scratch, it would be nice to only have to build an app once (if that’s really how it works) for multiple form factors, and Microsoft certainly has the mindshare when it comes to enterprise developers.
I have no idea how this will shake out, but I know for sure that (1) Windows 10 will be huge, as will Windows 10 apps, and (2) this is a great opportunity for Citrix and VMware to extend XenDesktop/XenApp and Horizon into the mobile app space (beyond just EMM app and device management). Regardless of what happens, it’s kind of exciting and it will be fun to watch!
What do you think? What am I missing?