Windows Ecosystem: PC, Phone, Xbox
App developers put a lot of time and energy into building their world-changing software, and they have two major desires concerning the endeavor—that the development process is as smooth, quick, and streamlined as it can be, and that its audience is as large as possible.
That's one reason you see more new apps coming out for iOS rather than for Windows Phone. And you see more apps on iOS rather than Android because of the ease factor: Android developers have to build code that runs on a plethora of different versions and hardware.
At its Build conference this week, Microsoft - in a single move - made advances in both areas. How? By bringing forth the Universal app. These apps, Microsoft claims, will allow developers to re-use 90 percent of their app code when moving from one target device to another. The concept of "write once, run anywhere" has long been goal for programming, with Java, and now the Web, being its chief exponents.
Another way Microsoft will increase the target audience for Windows Store apps is by placing a Taskbar button for the store in the desktop Taskbar in Windows 8.1 Update. With 200 million Windows 8/8.1 PC licenses sold, that should add a significant number of app installs.
More start screen visual options
Return of the start button
Elsewhere on the ease front, Windows App Studio lets even people with no programming skills create Universal apps that will run on all the same target device types. They can even sell their apps in the Windows Store just like seasoned developers. A similar tool just for non-developer business users is Project Siena, currently in beta 2.
Real developers, however, will use the new Visual Studio 2013 Update 2 RC. Microsoft's Larry Lieberman, senior product manager for Windows Development Platforms, gave me an overview of how the new coding scheme works using this environment. First, the dev chooses a language of choice—C#, C++, DirectX, or HTML/JavaScript Store apps, and then chooses the Universal project template. Three sets of code for the Universal project goes into three "nodes"—shared, Windows Phone, and Windows Store. Lieberman told me that the vast majority of code will live in the shared node, and indeed you could have all an app's code in there, meaning all devices just need one code base.
Visual Studio Universal App Development
Then the programmer can generate apps for each target platform, but it will also allow the developer to tailor it to each type of device. Things like notifications, file access, and device properties use the same programming interface for all the platforms but, for example, Windows Phone Cortana speech input and Action Center integration will only apply to Windows Phone. Some controls such as the very useful hub and listview controls will port effortlessly among the form factors, rendering dynamically to match the device's needs. I've seen promises of a single tool creating adaptive layouts for devices of differing dimensions from the likes of Adobe and Square. But even with these tools it's never a push-button proposition to get a big-screen app to work on a small screen and vice versa.
Universal apps bring not inconsiderable benefits to end users, too. They'll be able to install a Universal app on all their devices from the Store on one device if the developer has configured the app for that. But that's not all—in-app purchases will apply to all instances of the app on all their devices, and the apps can use shared roaming data. Push notifications will also go to all devices on which the app's installed.
A lot of tech news stories are reporting that this capability already extends to the Xbox, and indeed Microsoft demonstrated this in a Build keynote presentation. But that's more something on Microsoft's roadmap than a current capability for developers using Visual Studio.
Will Universal apps and Taskbar buttons for the Store make Windows and Windows Phone the low-hanging fruit for developers like iOS? Probably not any time soon. But allowing a single project to work on phones, computers, tablets, and game consoles may indeed more appealing for them to either stay with or test out development for the new Windows platforms.