Earlier today at Mobile World Congress in Barcelona, I provided developers a first look at the Windows 10 developer platform strategy and universal app platform. I encourage you to tune in to our Build conference in April for the full story.
Windows 10 represents the culmination of our platform convergence journey with Windows now running on a single, unified Windows core. This convergence enables one app to run on every Windows device – on the phone in your pocket, the tablet or laptop in your bag, the PC on your desk, and the Xbox console in your living room. And that’s not even mentioning all the new devices being added to the Windows family, including the HoloLens, Surface Hub, and IoT devices like the Raspberry Pi 2. All these Windows devices will now access one Store for app acquisition, distribution and update.
For APIs specific to a given device family (e.g. a phone dialer), the universal platform also provides an easy way to light up that functionality within an app without having to resort to using conditional compiler flags.
- Driving scale through reach across device type
- Delivering unique experiences
- Maximizing developer investments
You can expect us to go into all of the universal platform technical details at Build.
Driving scale through reach across device types with mobile experiencesTo understand why we converged Windows into one core and one developer platform, it’s worth examining how the customers’ relationship with their devices and the experience they expect has changed. The explosive growth in mobile devices over the last decade has led to the creation of totally new app experiences and has driven an extension of existing web experiences to enable developers to reach customers in innovative and unique ways. Until now, mobile experiences have largely meant app and web experiences built for mobile devices – most often defined by the phone you carry with you.
But this is increasingly too narrow a definition for a growing number of customers who want their experiences to be mobile across ALL their devices and to use whatever device is most convenient or productive for the task at hand.
We see this preference for mobile experiences manifest itself most profoundly in what customers search for in the Store. Just a year ago, the experiences customers sought on Windows phones were different from tablet, which were different again from laptops and PCs, and different from the game console. This has changed – rapidly. Today, the top Store searches for each device type overlap significantly, both across and within app categories.
Building a platform that supports this new world of mobile experiences requires not only supporting a number of screen sizes, but also providing flexibility in interaction models, whether it be touch, mouse & keyboard, a game controller or a pen. As a customer flows across their devices, they will often quickly transition from touch gestures (e.g. selecting a song or playlist, reading a news feed or document or viewing pictures from a trip) to keyboard & mouse for productivity (e.g. managing their playlist, writing a new blog post, or touching up that video or photo for sharing). To bridge the device gap (how many devices does a customer really want to carry with them?), the industry is seeing the emerging trend of multi-modal devices, like the 2-in-1 Surface Pro 3. Within app experiences, an increasing number of apps handle this exact scenario – except developers are bridging this gap by building one or more mobile apps, a desktop application, and a website. We believe this can and should be easier.
With Windows 10, we are leading a new path forward for mobile experiences – breaking out of the limited box of just mobile devices and empowering customers take full advantage of all of the screens in their life. For Windows, these mobile experiences are powered by our one Windows core and the universal app platform.
As we built the universal app platform, we set out to ensure that all Windows developers would equally benefit from this one core. The platform enables a new class of Windows universal apps – apps that are truly written once, with one set of business logic and one UI. Apps that are delivered to one Store within one package. Apps that are able to reach every Windows 10 device the developer wants to reach. Apps that feel consistent and familiar to the customer on all devices, while also contextually appropriate to each device’s input model and screen size. The new universal app platform completes our developer platform convergence by providing you with the ability to finally create one app that can run on mobile, desktop, console, holographic, and even IoT devices.
Delivering unique and personal experiencesThe universal app platform is designed to help you quickly build these new mobile experiences that are both consistent yet flexible, enabling you to deliver a unique, highly-personalized experience to delight and engage your customers across each device family you target. We do this by providing a number of platform capabilities that do most of the runtime adaptation work for you, and doing so intelligently, allowing you to focus on delighting the customer:
- Adaptive UX: enables your app’s user interface to fluidly adapt at runtime based on how the customer is interacting with your app and the available device capabilities – rendering an experience that is contextually appropriate.
- Screen layout: In addition to base app model improvements, we have improved the ViewStateManager to make it easier to create more adaptive experiences. This means that your universal app projects no longer require separate project heads or UI definitions for small and large screens, although we will still provide the option of separate UI definitions should you prefer it.
- User controls: Windows 10 will determine, at runtime, how the customer is interacting with your app and render the appropriate user experience (e.g. on a laptop with a touch-screen, an app fly-out control will provide larger touch-targets if tapped with touch, as opposed to clicked with a mouse).
- Natural user inputs: Windows 10 helps you build an app experience that is more personal and more human, by making it easy to incorporate natural user inputs into your app, such as natural speech, inking, gestures, and user gaze. Because Windows handles all of these inputs, we free you from needing to worry about how to parse the input for meaning – you only need to worry about which inputs are appropriate for your app and we’ll determine if they are present and parse the intent for you.
- Cloud-based Services: Windows provides a number of services for use in your apps, such as Windows Notification Services (WNS), Windows roaming data and the Windows Credential Locker. With Windows 10, we are making more Windows services available to developers, including an expanded Cortana AI, OneDrive, andApplication Insights. Beyond Windows, we continue to make it easier to take advantage of Microsoft Azure using services like Azure Mobile Services and the Azure Notification Hub.
But we know that your mobile experience doesn’t end when the customer closes your app. There are a number of Windows shell advances that are enabled by universal platform advances, making it easier to keep your customers engaged and getting your apps launched more often. Examples include:
- Cortana integration: Apps now appear (and can be launched) directly in Cortana search results, with installed apps given highest priority in the search results.
- Action Center: Windows 10 brings a more consistent and actionable notification experience to all Windows devices.
Lastly, I’d like to call out that the universal app platform is at the heart of Windows 10 itself with much of the shell running on the platform, in addition to a number of our key Windows experiences (e.g. a number of in-box apps, the Windows Store, and the ‘Project Spartan’ browser, to name a few). And the same animations, APIs, and controls used by these app experiences are available to you. You can feel confident that this platform has been ‘battle-tested’ and is ready for you to build mobile experiences that delight your customers, just as we are.
Maximizing investments in your app and web codeWindows 10 is about making it easier for you and your code to do more and go further with a new platform built to maximize and extend your existing investments, both in your code and your skills.
We’ve designed Windows 10 to continue to support existing Windows apps and desktop applications on the devices for which they were developed. And we’re working to make it as easy as possible for you to bring those investments forward to the new universal app platform.
For our HTML developers, Windows 10 provides a number of advances for the modern web:
- New rendering engine: The new engine frees you from having to do platform-specific work to deliver a consistent mobile experience and is included in Internet Explorer 11, in our new ‘Project Spartan’ browser, and will be used by the WebView control.
- ‘Project Spartan’: The ‘Project Spartan’ browser itself is a Windows universal app and updated via the Store – helping ensure it is always kept up-to-date.
- Web Apps: Windows 10 will make it easy for you to create a Windows app that packages your website for publishing to the Store. Once installed, your website can update and call Universal APIs from JavaScript, creating a more engaging user experience.
Additionally, I’m pleased to announce that we will be delivering our first prototype of the Windows 10 Cordova platform in an Apache branch later next month – giving developers a preview of the update, and to get their feedback.
Getting ready for Windows 10As I said, this is only a first look at the Windows universal app platform. We’ll have much more to share at the Build conference in April. If you’re not planning to attend the event in person, please save the date and plan to attend online – you can watch the keynotes streamed live or the recorded sessions the next day. Check out the Build 2015 website for more information.