Windows 11 and the Windows App SDK

Last night / this morning I sat through one of the most professional and well executed series of non-live presentations from Microsoft covering Windows 11 and all the great features / tools that are coming for developers. In this post I’m going to cover some of the points that I took away from the sessions, particularly the developer session.

I have to say from the onset that my overall reaction from the two session is that they’re overly curated and whilst Microsoft is desperately trying to deliver content that people can relate to, I think on this front the two sessions fall flat for different reasons:

Windows 11 Announcement – The first session was just too over the top, from Panos walking aimlessly back and forth, sometimes almost off screen for no reason, to trying to sell the story that we should feel at home on Windows. There were some great sections in this session showing the new snapping and the docking which works (I’ll believe that when I see it). I’m loving the direction that Windows 11 is going, having run the leaked build on a machine for almost a week now, but for me this session wasn’t worth staying up to 1am for.

(As an aside, I do wish that Microsoft could get their streaming service to work for these “big” events – I ended up watching it via the Twitter stream, which was annoying)

Windows for Developers – Whilst not as over produced as the announcement session, this session was a rapid fire session bouncing between four or five people in the studio (one or two rotated in for different topics), some pre-canned videos and some super-fake “live” audience questions. I’ve been calling for Microsoft to communicate their vision for developers building for Windows for a while now, and this session failed to deliver any cohesive vision. It was just gratuitous feature/tool selling at best.

By now, you’re probably thinking that I’m anti-Microsoft, or at least not a fan of what Microsoft is working on. This is actually the complete opposite – I definitely see a positive future for app developers who want to build and sell apps for the Windows platform.

Let’s get into talking about some of the topics they ticked off in the second session:

Windows as a Developer Platform

One of the things that Microsoft has been selling for the last couple of years is that they want Windows to become the developers’ platform of choice. The developer session repeated this mantra with ambitions that it doesn’t matter what platform you’re targeting, pc, phone, web or console, Windows should be your home.

Drilling into this, it shouldn’t matter what framework, service or toolkit you’re using, you should be able to develop on Windows. You can choose to distribute your app the way you want, with a wide variety of distribution channels available.

The tag line of “Create, Learn and Play” was rolled out – it felt like they were testing the water with this tag line to gauge how well it landed, particularly with the developer audience. I see this as a simple evolution of a bunch of previous tag lines, eg You Potential, Our Passion, as one such example.

Microsoft Store

I’m amazed that years after the Windows/Microsoft Store was launched, it features as a major point in the developer session. However, I do recognise that the Store has been so underwhelming, that if Microsoft are serious about wooing developers back to building for Windows, they really did need to pull up their socks and deal with the trash pile that is/was the Microsoft Store.

I’m looking forward to the refreshed browsing experience, and I think the Stories concept is a good evolution in providing app developers more flexibility in how they advertise/describe their application.

Progressive Web Applications (PWAs) in the Microsoft Store

Microsoft again reaffirmed that PWAs could be submitted to the Microsoft Store – this isn’t new but it does seem that with pwabuilder.com version 3, this process will be easier.

If you haven’t used/seen a PWA before, when you navigate to certain websites, you’ll see an icon appear to the right of the address bar (most modern web browsers such as Chrome and Edge), giving you the ability to install the website as an app.

What I don’t understand is why Microsoft insists that you use pwabuilder.com to generate an MSIX package that can be submitted to the Microsoft Store. When I’m submitting my website to the Microsoft Store as a PWA, why can’t I just enter the URL of the PWA and let the Store work out the rest?

In closing off the section about the Microsoft Store there were a couple of small bomb shells that were dropped. The first being that you can bring your own payment facility and not have to pay Microsoft any royalties. The second being that you can install and run Android applications directly on Windows thanks to a partnership with the Amazon Android app store.

Neither of these points were covered in huge detail but it was interesting to note that Android apps built for ARM would leverage Intel Bridge Technology to run. However, it’s recommended that developers submit universal apk packages that include both arm and x86 builds of their apps for maximum performance.

Web Development on Windows

…. soooo sleepy…. yawn… oh wait, what did they just say…. oh nevermind, they’re still talking about tooling for web developers. I’ll wait for the intermission to be over and we can go back to talking about developing for Windows.

Quick summary of the web related news:

  • The new Edge will ship in box with Windows 11, or developers can include specific versions of the WebView2 runtime with their application.
  • If you’re building PWAs, make sure you try to customise the experience to be more native like. Use shortcuts, share target, file and protocol handlers and of course notifications, in order to make your PWA more engaging.

Note that file and protocol handlers are still in early support pilots for Chrome and Edge. If you’re building a PWA that would benefit from file or protocol handling, it may be worth signing up the origin trials for either/both Chrome and Edge.

If you want to try out a PWA that has a file handler, you can enable the File Handling API in Chrome (chrome://flags) and/or Edge (edge://flags) and then you can install the Office portal (https://portal.office.com). You can then right-click a Word docx, Excel xlsx or Powerpoint pptx and open with Office – this will launch the Office PWA. I’m guessing support is still under development because it doesn’t actually open the app yet but it’s good to understand the workflow.

Windows App SDK

Finally the tedium of trying to refer to Project Reunion and WinUI can be put to rest. From herein we’ll refer to the Windows App SDK. The announcement includes the 0.8 release of the Windows App SDK – note that if you go looking for this, there’s still a bunch of Project Reunion naming to be found. There were some nice demos of apps that update themselves, restarting to where the user left them via lifecycle apis, and of course push notifications.

Apps for Arm64

If was great to hear that Arm64 support for WPF apps is only weeks away. Of course, the Windows App SDK already allows developers to target Arm64. What was interesting in this section was arm64ec, which aims to allow the mixing of different platform architecture code – I’m sure this will be a challenge to get to work well.

UWP, WinForms, WPF, WinUI

How do all these technologies fit with the Windows App SDK?

If you’re building an app using the Windows App SDK, which of these UI frameworks can you use?

If you’ve already got an app built with these technologies, what does the Windows App SDK mean for you?

Can I use Windows UI in my WinForms or WPF application?

These are just some of the questions that Microsoft again failed to answer in this section (other than to provide a great example of a UWP app being upgraded to WinUI – I guess that points to the future of UWP).

Some Random AI Discussion

Oh, just a reminder that you can build AI models and run them on Windows using WindowsML……. seriously, I’m not sure we needed this segment as part of the session. There didn’t seem to be anything new that Windows11 reveals in this space.

Round All My Corners with Fluent Design

The discussion around the updated Fluent design language was of course touting the rounded cornered look that we’ll come to love with Windows 11.

Guidance to developers is to jump into using rounded corners by leveraging a lot of the out of the box themes and styles for controls. Developers are also encouraged to look for places to include micro interactions – think of this as replacing the old tilt effect with actual animations.

A couple of new fonts (Segoe Fluent Icon and Segoe UI Variable) and some new materials, including Mica that lets the background shine through.

The last section talking about design was the new snap layout feature in Windows 11. Initially I didn’t see the relevance for developers but on reflection it makes sense that developers need to polish their Windows apps to be responsive. This isn’t new and it’s frustrating that there wasn’t a great demo of using Visual States to make an app more responsive.

Game Developers

This really isn’t me, so I’m not going to comment beyond noting that Microsoft has made the GDK available to everyone. Note however that there are still some licensing restrictions that your game needs to jump through in order to be published as a game on the Microsoft store (check out the docs on GitHub for more info).

Summary

As I said at the beginning – there’s plenty here to be excited about. I may be being overly critical but after watching the sessions ask yourself this – if you were building an app for Windows today, what technology would you use? If you can’t easily answer this, Microsoft hasn’t established a vision that includes you – don’t feel bad, even as a developer who’s build tons of apps for Windows, I struggle to provide a cohesive answer to this question.