Microsoft continues to add more features to what UWP apps can do in Windows 10, and the tools for creating them; at the Build conference we saw updated APIs for working with ink and Surface Dial, new ways of connecting UWP apps to information and services on other devices, as well as a new way to quickly put together the basic framework for a new UWP app.
Visual Studio on Windows continues to be the main way to work with UWP apps; Xamarin Forms has supported UWP for some time and you can use Visual Studio Team Services to build UWP apps in the cloud, but Visual Studio for Mac doesn’t let you create UWP apps on a Mac (although developers who are interested in that can vote for it here. If you’re using the new SDKs in the Windows 10 Creators Update, you need to make sure you have the preview release of Visual Studio 2017 which lets you run multiple versions of both Visual Studio and the Windows SDK side by side, so you can add preview SDKs on a machine you’re using to build for production and submit to the Store.
You can already break your UWP app up into components using resource packages and app extensions; with Creators Update, you can have optional packages that users can buy from you or a third party and use inside the app (think extra filters for a graphics app or sticker packs for a messaging app). Optional packages can be used by more than one app. You can also break your app up into Content Group Maps to support streaming installations – pick the code that’s absolutely necessary for the app to run and users can start using the app while the rest of your code (the deferred content) downloads. App extensions mean splitting your code into multiple projects; content groups can all be part of the same Visual Studio project.
Now that NuGet is integrated with MSBuild, Visual Studio 2017 defaults to the new NuGet package reference model for new projects targeting the Creators Update SDK, so you view and manage NuGet package references from the MSBuild project file rather than a separate project.json external file that you have to modify when you change NuGet dependencies. If you use a library in multiple projects, instead of updating every project to tell it about any changes in that library, you can change a central reference. You can also switch between the debug and release versions of a package using conditional dependencies. This model is showing up for UWP apps now, initially for new apps though a later preview will migrate existing apps for you, but it’s also coming for .NET and Xamarin.
The .NET Native Compiler is now a NuGet package, so it will get updated even if you don’t update Visual Studio; a future preview will default to using the 5.3.x UWP NuGet package to get the latest compiler version.
UWP will support .NET Standard 2.0 later this year, which will add a lot of APIs that .NET developers can use and UWP developers haven’t had access to -.NET Standrad has 20,000 more APIs than .NET Standard 1.0 – which will also make it easier to share code between proiects
Slicker apps, quicker
Microsoft wasn’t the only one showing UWP tools at Build; Adobe also showed the latest update to the Windows version of XD (Experience Design), which now has templates for UWP apps.
The visual language of UWP apps is also changing. The Creators Update SDK includes interface options that are part of the new Fluent design language, like custom settings for lighting using XAML, so you can choose how parts of your UI are lit to subtly highlight the most relevant choice in a list or a contextual action that’s available. The other elements of this design language will be coming in the Fall Creators Update, like the acrylic material that makes part of a window transparent; other materials are planned, including sound and haptics as well as visual elements, but you can also create your own custom XAML brushes for materials too. Other Fluent concepts like shapes and motion for transitions are further off; the new Interaction Tracker tool will support patterns like pull to refresh in future Windows Insider builds. Support for SVG in XAML images is new; today that’s just for static images, but support for SVG animation is in development. As these new interface elements become available, the UI Diagnostic tool in Visual Studio is going to get more useful for showing you how responsive your app is, and whether you’re doing things like hiding toolbars on screen but still setting them to be rendered, which means hiding them doesn’t speed up the app launch time).
Also in the Fall Creators Update are new APIs for Project Rome (technology that uses the Microsoft Graph to let UWP apps connect to information on other Windows devices, as well as iOS and Android): Device Discovery, Remote Launch, Remote App Services for messaging and User Activity for working with the new Windows timeline and Cortana notifications. If you want to start working with the new APIs, the UserActivity API for UWP and Activity REST API in Microsoft Graph are in the current Fast Ring Windows Insider builds; the timeline, the .NET Standard cross platform library and the Extended UserActivity API (to read and delete activities) are still in development.