March 2, 2015 6:29 am

A first look at the Windows 10 universal app platform

By / Corporate Vice President of Windows Developer

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.

Today I’ll briefly touch on how this new platform delivers on the three platform goals I discussed in January:

  1. Driving scale through reach across device type
  2. Delivering unique experiences
  3. 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 experiences
To 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.

Gallo blog 1 v2

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 experiences
The 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, and Application 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 code
Windows 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.

Gallo blog 2v2

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 10
As 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.

In the meantime, we encourage you to get ready for Windows 10 by:

I look forward to sharing more with you at Build.

Updated March 2, 2015 12:51 pm

Join the conversation

  1. This looks great. Question about the heading for HTML developers? Will we still be able to create fully native Windows 10 apps with HTML and Javascript or is Microsoft repositioning WinJS to use Cordova for Windows apps?

    • We will continue to provide choice and options for building Windows 10 native apps. For this post, we opted for high-level over comprehensive. 🙂

      But, yes, we will continue to support HTML and JavaScript for building native apps.

    • Fully native ? For me, native means C/C++ which also means a program compiled to run a spesific processor like Intel x86. Even when we use Windows native applications term, we could use some libraries like System.Drawing; but we can’t use System.Drawing , System.IO for developing Windows Phone and Windows 8/8.1/10 applications even you are actually programming in C# .Net framework. These all stuff mean, You can NOT develop FULLY native Windows Applications in Javascript. If I’m wrong, please fix my comment.

      • @Mustafa – as you point out, ‘native’ can have a few different definitions, depending on what your measuring non-nativity against. In terms of ‘native apps’, mobile applications developed to target and take advantage of a specific platform’s capabilities (note: loose definition – I’m not a docs person :)), the Windows Runtime (aka WinRT) APIs expose device capabilities so that they can be fully taken advantage of in apps built using JavaScript. This was one of the super-awesome things that were delivered as part of the WinRT implementation in Windows [client] 8.0 and Xbox One, which was brought over to Windows Phone in 8.1. This flexibility/capability continues full-steam ahead with Windows 10.

        • This success of this unified platform initiative will depend on how well it delivers first-class user experiences. When you juxtapose responsive design UI with platform specific UI you see responsive design is a very difficult problem to solve. A great example of this is to look at the UI and UX for the Windows Evernote App then compare it with the Evernote Windows desktop application. This two software products provide fist class user experiences, but in order to provide this Evernote’s development team has to maintain two separate builds which of course means seperate teams, bug tracking, QA. The cost add up quickly and this is unacceptable. It’s unacceptable to developers and to customers who must deal with the frustrating transition between tablet and notebook. This is why the Microsoft app store has so far been largely a failure, because when a software developer chooses to target Windows they want to target the largest audience and they typically don’t have the budget Evernote does to maintain two code bases. The unified Windows 10 platform tells me Microsoft does understand this is a problem, but implementation is going to be critical. For example, if the new Windows 10 Universal platform tools fall short of enabling a developer like Evernote to maintain the rich desktop UI and provide a responsive design experience in the same code base then it will be failure. The reason I can predict this is because if it can’t deliver truly first class desktop UI experiences then as an SDK it will still have to compete with platform specific options and for the reasons already stated most developers will continue to go platform specific. If Microsoft had mobile marketshare they would not be the case, but the hash reality non of us should deny is that Microsoft has horrible mobile and tablet marketshare! In 2014 Microsoft’s mobile market share DECLINED to 2.7 percent. So it’s disrespectful to your development community to pretend this isn’t the case and create an SDK that puts the burden on us (the developer) to try and lift that market share. We (the developers) are the ones having to listen to customer complaints about expected desktop UI widgets/controls being unavailable, we (the developers) are the ones having to maintain seperate code bases to provide Microsoft apps and Windows applications…. From this discussion it sounds as if this Windows 10 universal platform is just WinRT rebranded. That’s fine under the hood, but you better be bringing a lot more to the table in terms of UI/UX or you can expect Windows 10 to fail. Hopefully Microsoft knows that without applications an OS is worthless to customers so we the app and application community as the ones who will ultimately provide the content to help Microsoft gain or loss more market share. I do apologize for the aggressive tone of this response, I am just truly exhausted and angry at Microsoft for dropping the ball so many times over the past decade. Some of us have invested our career’s in Microsoft technology and we’re the ones that have been thrown under the bus time and time again over the past decade. All my trust and faith in the Microsoft brand at this point is gone. It needs to be earned again. I am open minded and hopefully Microsoft can come back, but I am also going to put everything promised under the microscope because with over a decade of very poor marketing and engineering decisions from Microsoft, that’s where we are today.

      • When I say native, I mean that whatever SDK I use would be able to interact with the host OS in a “first class” fashion. So Javascript to WinRT would be included in my definition as native since I don’t need an intermediary harness (like Cordova’s webview wrappers) to interact with the natively exposed APIs.

        So even if WinRT is abstracting away base C/C++ libraries I still consider direct consumption of the APIs as native since that falls into line with what the platform owner, in this case Microsoft, considers native.

  2. Thank you so much for coming with the idea of Hosted Web Apps! I hope this concept is implemented right to allow Windows platform to be a viable competitor to Chrome OS. Please do it right and market it right to attract developers to this platform :-).

    BTW: I was so frustrated that my request for something like this I have posted on Windows Phone User Voice site long time ago seemed unnoticed. Now it seems I was not the only one having this idea and I could not be happier :-).

  3. Do the same restrictions apply to Store apps as currently for Windows phone and Windows 8. I’m deeply uncomfortable with the implied censorship, and the widening of this as these become the “preferred” way to develop apps. Why are 18 games allowed but not 18 apps? I understand, and would applaud, proper controls on the distribution of apps. or if Universal apps could be loaded from alternate sources, but really feel that creatives should be able to explore creativity untrammelled by restrictions other than those applying through the law of the nations in which the app is developed and distributed.

  4. Since Windows 10 determines, at runtime, how to render your app, how does this work for people with 2in1 devices? If the laptop is in desktop mode when the app is first opened and then changed to tablet mode, does the UI adapt or will the app have to be closed and reopened for the app to adjust?

    • Good question. Much of the above is intended to deal with rendering when opened and as you resize your app’s window (in the case of a PC), and when a user interacts with a control (tap v click). I’d have to defer to the engineers building the controls; I’d suspend this Q for Build, and rehydrate it at that time. 🙂

  5. I think the universal app model looks really great, but i also hope you will expand on the side-loading model. i think having the store and curated experience is very good but there is also tremendous value in being able to distribute your app though other means. i think it would be fine to have warnings or even special icons on sideloaded apps that notify the user that they are not screened by Microsoft, but please remove the licencing restrictions on side loaded apps and make it a first class feature.

    A lot of people are suspicious of the windows store and curated stores in general, and while that might not be well founded, it’s is a true inpediment to adoption of the platform. i really hope you consider making sideloading easier (while also maintaining the security of store apps)

  6. Wow, I am so absolutely excited to see further on how apps can help shape the future of windows and how easy it is for use developer. This most certainly inspires me to bring my apps to all MS platforms. I can very well see that this experience will not be as limited as well, but as secure as the 8.1 experience. Thanks Microsoft for being a great sport and I hope that more developers see the light of your platforms!

  7. Does this mean you have fixed things in .Net like the ability to use very long files names? Currently I have to call the Windows API to work with very long path names. If I am using universal code I won’t do this and long paths will not be accessible unless you have fixed this.

    For example AJC Sync can access very long path names:

  8. The developer story looks great, but from what I’ve seen so far it looks like you are abstracting the underlying platform(s) in a way that is imposing serious limitations on library/SDK developers. While an app developer knows that they’ve included (or didn’t include) extensions for mobile, Xbox, etc. an SDK developer can’t know that and it feels like the app developer will have to pass supported platforms/extensions into every library they use.

    Please correct me if I’m wrong and there will be a safe way for libraries to figure out in which environment they are running. Otherwise, please, figure out a way before the release.

    • DevDiv’s investments in native .NET help a super-ton here. Our goal will be that developers should not have to worry about the OS/SKU/version anymore, and that they only need to worry about checking for available capabilities where they’re running…and the universal app platform helps them make that call…so the dev can do graceful light-up as desired.

      I find this to be one of the most exciting platform changes, and a real differentiator to what Kevin’s team has built. But to echo a common refrain from today’s comments, the full [and pretty awesome] story here will be told at Build.

  9. I am working on a universal app at the moment and have added a Bing map to the Windows app but have discovered that it is not possible to add the Bing map to the phone app using JavaScript/HTML.
    How long before this is sorted?

  10. Guys, non techy here, please, is there a plan to “write once run everywhere” with Windows 10 extended to other platforms. I mean, if a developer from the competitor wants to just write once, are there plans to migrate such “foreign” codes almost directly into Windows? Thanks in advance!

    • We always continue to try and help support folks running their existing code on Windows. There’s a variety of avenues for this (ranging from whitepaper guidance and documentation to tooling to platform capabilities). We also continue to work closely with partners (e.g., Unity, Xamarin, Cordova, Cocos, Marmalade, etc., etc., etc.). As we’re still in process of building out the platform, it’s too early to fully comment on what those onramps will look like, but we’re looking forward to having the discussion starting with Build.

  11. If you lot are thinking about making one store for everything, I highly Recommend you to improve the store that is in the new preview. I personally think a 16 year old like me could do a much better job of designing a better application.

    • As with the name, it’s a “preview”. There’s a lot of piping and plumbing that is happening to put one infrastructure in place for publication, distribution, and fulfillment. The experience is evolving with the tech preview and should continue to improve.

      That being said, we always welcome feedback (I believe the best place is via the Windows Insider feedback app); feel free to share both your smiles and frowns with the team.

  12. I think Microsoft often does not use English conventions for names. That can be very frustrating for me since I edit articles and I try to use proper syntax and capitalization. I assume that “universal app platform” is a proper name that should be capitalized. Am I wrong? I wish I could rely on Microsoft to use proper English but they apparently do not. Perhaps it should be “Universal App platform”, I also find that when I search the internet.

    • Thanks Sam, the capitalization was decided to be lowercase because it’s a capability/technology of the platform, and not a product and not a brand unto itself (similar to printer management). Open to counter-arguments, though, as it was a debate internally. 🙂

  13. Looks awesome, we deploy to the enterprise where most users are just upgrading to Windows 7 and our install base of Windows 8 is low. Can Universal Apps go onto Windows 7 (are they universal to all Windows versions)?

  14. I know the details will need to wait until build, but for software that uses custom drivers, additional attached hardware etc, is that going to need to be .Net only or will it be possible to work in the new platform with these types of software. Also, is the concept of portable class libraries being continued and convergence increased between this platform and .Net?

  15. I haven’t seen any presentation yet so I still do not know the details about how the Web Hosted Apps are supposed to work, but I assume that the Store will contain just a manifest with meta-data for an app, and the app itself will be hosted on the publisher-specified URL. I also assume that publishing existing web sites to the Store will be very easy to attract publishers/developers and motivate them to do so – it just makes sense.

    Then I would think that developers who would like to take advantages of the Windows platform will be able to extend their existing web sites, now apps, by using platform specific APIs accessible via JavaScript. Some APIs will only by accessible if the user gives an app a permission to access these APIs. These are my assumptions :-).

    What I would like to see is to do not stop here and go little bit further to make this interesting for both publishers and users. I think that Hosted Web Apps would be best for one-time or context-specific tasks, and the platform should help users to discover these apps proactively depending on the context. Example of such contexts are following:

    – Allow apps (and especially Hosted Web Apps) to be associated with a file type or Share contract, and promote compatible apps pro-actively when user is opening a file or opt to share something via Share contract

    – Allow apps (and especially Hosted Web Apps) to be associated with specific locations, and promote, and optionally even pre-load these location specific apps when user enters the location. Wouldn’t it be great to see that there is a Trains Timetable app available directly on the Lock Screen when you enter a Train Station? Or Restaurant Menu app when you enter a restaurant, City Map when you visit a foreign city and so on. For very specific locations even a Notification could be pushed-out to user that such a context specific app is available. I would love it as a user, and I would love it even more as a publisher…

    And I would even separate these context and especially location-specific apps from other apps installed on the device, listing them on in a separate UI space, promoting them on a special place on the Start Screen or Notification Centre or somewhere else, to make it clear that there are these apps available which make sense to use right here right now. Then, maybe, get rid-off them automatically once they are not needed due to the change of context/location…

    What do you think about that? 😀

  16. I bought a brand new Dell Inspiron Laptop with Full HD resolution.

    I notice that as the resolution increases, the size of text decreases….On a 15 inch laptop now the size of text on browsers or in general is very very small (windows 8.1)

    Is this some kind of a known fault , why is the font size so small for god’s sake ? This is a very basic requirement when you use a PC , that you want to read things legibly and comfortably !

    Total Rubbish !

    • Just right click the Desktop and hit Screen Resolution, then click “Make text and other items larger or smaller.”

  17. Can someone from the Universal Apps team please comment on if markup extensions are going to be in the Windows 10 paradigm/API? They were in WPF, Silverlight 5, and now in Xamarin.Forms (a non-MSFT technology!), but suspiciously absent in WinRT 8.0 and 8.1. This peculiar absence is why I never got into WinRT and do not consider it a legitimate presentation technology (and according to the rate of adoption of WinRT, I am not alone).

    Along such lines, it would also be nice to know if the Xaml serialization system in Windows 10 has found any parity with its WPF version (and to what degree). For instance, are there XamlServices Load/Save counterparts yet? It’s amazing that so much effort was put into taking this incredible library out of the presentation tier only to be replaced by something vastly inferior.

    I do have to say that the vision described here is very encouraging and interesting. If we now have markup extensions (and a bonafide Xaml serialization system) to use along with all of this potential, it will be great to develop Windows applications again.

    Otherwise, we’ll just have to stick with Xamarin.Forms as it currently understands Xaml better than MSFT. And that would be sad… very sad. 😛

  18. The new windows 10 UAP can be run in windows 8.1 and windows phone 8.1 or just for windows 10 ?

  19. Windows 10 looks rather promising so far, especially with this Universal Apps platform. Hopefully it can give your Microsoft Mobil Lumia Windows smartphone line a much needed boost by attracting more third party apps to your phones. With all due respect, your phones are excellent in the design, quality, and performance departments. But the mobile appstore…not so much. It’s subpar compared to the iOS and Android platforms if we’re being honest.

    But it appears you guys are looking to fix this, at least so it seems. I certainly hope so. Your mobile division makes high quality smartphones, it’d be nice if they have superior app support going forward,especially to make the higher-cost, more premium Lumia devices more viable purchases.

    • I think that developers who would like to take advantages of the Windows platform will be able to extend their existing web sites, now apps, by using platform specific APIs accessible via JavaScript. Some APIs will only by accessible if the user gives an app a permission to access these APIs.