This article is more than 1 year old

Developing for Windows 11: Like developing for Windows 10, but with rounded corners?

Windows App SDK, Android, Arm64, micro-interactions, and two new fonts

Microsoft has been hyping the versatility of Windows 11 for developers, from Android to Linux to Progressive Web Applications and the new Win UI 3, though much of what it showed last week also applies to Windows 10.

Kevin Gallo, Developer Platform Corporate VP, said last week that "Windows 11 is for all developers."

That is a pitch not for Windows 11 as a platform for deploying applications, but rather as a platform for building applications that are deployed elsewhere, such as web applications running on Linux, and mobile apps for Android and iOS.

This is not really new, though: the company makes the same claim for Windows 10, with some justification thanks to the Windows Subsystem for Linux (WSL) 2 which provides deep integration between Windows and Linux running on a hypervisor.

There are some changes to the Windows Store – though this is for Windows 10 as well as for Windows 11. Specifically, there will no longer be any limitation on the type of packaging an app uses to be included in the Store. "You can package it as an MSI or as an .exe installer," said Store GM Giorgio Sardo, though he added that "MSIX is the best way to publish desktop applications," this being the newer packaging format that ensures a degree of isolation and clean uninstall.

Developers can also link to their own URL for the installer, rather than using Microsoft's servers. There will be a "popup store" option where a third-party website can offer a Store-based app installation embedded in the site, rather than making users open the separate Store application. There will also be an option for developers to use their own payment system avoiding any need to pay a fee to Microsoft – though this will not apply to games, which will still be subject to a 12 per cent fee (still much lower than on other platforms).

The new flexibility of the store will mean more Microsoft apps on offer there, including Teams, Edge, Office, Visual Studio, and Visual Studio Code.

There is also the introduction of Android apps on Windows, also part of the new Store. "We call it the Windows Subsystem for Android," said Gallo. "Each app shows up in its own top-level window, it can be pinned to the Start menu, and can be managed like any regular app."

The details of how this works are sketchy, but it includes a "proxy native app" that bridges between "the Android app model and the Windows app model."

The Android apps run in a VM compatible with AOSP (Android Open Source Project), said Gallo, and will support keyboard, mouse, touch, pen, and Bluetooth audio.

In the case of Arm binaries (since most Android apps are compiled for Arm), a technology called Intel Bridge will be used. This is a post-compiler which enables Arm binaries to run on x64 architectures.

We asked Intel for more details of the Bridge technology. Will it require Windows 11, or also run on Windows 10? "We'll have more to share on Intel Bridge Technology closer to Windows 11 availability," was the reply. We got a similar non-answer to questions about performance overhead.

Our spokesperson did note that Intel Bridge was actually introduced last year as part of Intel Server GPUs for cloud gaming, where it is part of a technology called Android in Container and also described as a "run-time post compiler".

It seems that Microsoft has high hopes for Android apps on Windows. A thread on Twitter by Microsoft Distinguished Engineer Miguel de Icaza said that the feature brings "access to a massive catalog of mobile apps that have never been made available to traditional desktops. Just like Apple brings iOS apps to Mac, now Windows can bring Android apps to Windows," adding that "because most apps are developed only for Android and iOS, the desktops now lag behind in apps."

He explained that the Store, which will use Amazon's Appstore for this, is not essential and that sideloading APKs (Android Packages) will also work. Developers "should be able to use Android Studio directly to deploy an app to Windows's Subsystem for Android," he said.

Android on Windows 11: as previewed it looks like a mobile app, not fully integrated

Android on Windows 11 ... As previewed, it looks like a mobile app, not fully integrated

There are snags, though, the biggest being the absence of Google's proprietary Play Services which support Google-specific APIs including location. AOSP applications have to avoid or emulate these APIs in order to run. Second, Android apps will not be optimal on Windows. Microsoft's screenshots show a small phone-shaped screen with its own navigation buttons. This may change, but while Android compatibility could be great for running apps that are otherwise unavailable, it looks unlikely to provide a user experience that is close to that of true native applications.

Microsoft also said that it is improving support for PWAs (Progressive Web Applications) in Windows 11, based largely on new features in the Edge browser like file and protocol handlers also in updates to Google Chrome, which shares the same Chromium engine. This means users could register a PWA to open files of a particular type, for example.

It will also be possible to distribute PWAs through the Store.

Formerly Project Reunion, the App SDK includes WinUI 3

Formerly Project Reunion, the App SDK includes WinUI 3

What about actual native Windows applications? What Microsoft formerly called Project Reunion is now called the Windows App SDK, and will support Windows 10 as well as Windows 11.

The preferred framework is WinUI 3, part of the App SDK, but Microsoft said that "the Windows App SDK does not replace the existing desktop Windows app types such as .NET (including Windows Forms and WPF) and desktop Win32 with C++.

Instead, it complements these existing platforms with a common set of APIs and tools that developers can rely on across these platforms."

Note also that the Windows App SDK is distinct from the Windows 10 SDK, which continues as the underlying native Windows developer kit. Confusing? Indeed. We did get a nice demo of an application applying an update while also preserving its state, which is a feature of the updated MSIX packaging.

WPF will be supporting native Arm64 in the next few weeks

Gallo also told us that "the Windows App SDK fully supports building apps for native Arm64," and that "WPF will be supporting native Arm64 in the next few weeks" – good news for WPF developers, but not a feature of Windows 11.

There is also a new feature called ARM64EC which allows native Arm64 code to call x64 code so that the bulk of an application can be native Arm64, while still calling into x64 binaries that cannot be recompiled, such as extension DLLs. Microsoft Office will be using this, said Gallo.

There will also be a new inference API called WinML that lets you take AI models and build features into your app based on them through ONNX. Will this be only in Windows 11? Microsoft did not say, but there will not be much immediate adoption if it is. WinML appears to depend on WSL, showing how deeply baked into Windows this Linux component has become.

There is one thing that will be distinctive in Windows 11, as previously observed, and that is rounded corners, an enhancement to Microsoft's Fluent Design system. "Rounded geometry is a design element that traverses every corner of Windows 11," said Diego Baca, senior design director. Mostly this will happen automatically to applications "regardless of their technology," said Baca.

There are also two new fonts, Segoe Fluent icons and Segoe UI variable, optimised for "text legibility at any size," Baca said. "Micro-interactions," little animations for things like mouse hover or button press, will be easy to implement in WinUI 3, said Baca. It sounds a minor feature, but may have a significant impact on the look and feel of Windows. WinUI 3 will also support system themes like a dark theme automatically.

The story overall is that developing for Windows 11 is very like developing for Windows 10, as it has to be in order to avoid compatibility issues. "We recommend that you build a single app to target all versions of Windows. WinUI makes this simpler by gracefully falling back to existing technology on Windows 10," Gallo said.

The further question is whether WinUI 3 will be good enough and stable enough that developers will move away from the safety of older frameworks. ®

More about

TIP US OFF

Send us news


Other stories you might like