This week we released a new Windows 10 SDK. Let’s dive deeper into some of the Universal Windows Platform (UWP) improvements in the SDK update:
Visuals, Effects, and Animations
Introducing Windows.UI.Composition, a new API family that directly targets the UI foundation layer. The UI Foundation layer sits below the framework (e.g. XAML) and above the DirectX graphical layer. A set of samples on GitHub is also available. The new APIs provide:
- Fast graphical rendering of lightweight Visuals in 3D coordinate space
- A new declarative animation engine built for scale, with innovative Expression animations along with key-frame animations that all run independent of the UI thread
- High performance, real-time UI effects system. Effects applied on Visuals can be customized, chained, and have their properties animated
SQLite data access library now ships with the Universal Windows Platform for local data access needs across all Windows 10 device families. SQLite implements a self-contained, serverless, zero-configuration, transactional SQL database engine. Developers can reference the SDK SQLite instead of packaging their own library with their app. UWP How to: Data Access was updated to help developers with SQLite with UWP apps.
Input & Ink
The update includes improvements in ink and keyboard.
- Direct Ink for Win32 Apps. The Ink Presenter APIs enable Microsoft Win32 apps to manage the input, processing, and rendering of ink input (standard and modified) through an InkPresenter object inserted into the app’s DirectComposition visual tree. Now Win32 apps can use the same ink as UWP apps
- Keyboard Delivery Interceptor. Enables an app to override the system processing of raw keyboard input, including shortcut keys, access keys (or hot keys), accelerator keys, and application keys, but excluding secure attention sequence (SAS) key combinations. Note that Secure attention sequence (SAS) key combinations, including Ctrl-Alt-Del and Windows-L, continue to be processed by the system
- Cross-process chaining of pointer input. Enabled via new pointer events (for both UWP apps and Classic Windows applications)
More Efficient and Flexible AppX Installation
The update provides more flexibility to app installation on devices:
- Reduced Installation Footprint. Until now, we have required disc space on the device of twice the AppX package size to install an app. So a 1GB app package would require 2+GB of disk to complete the install. Now we require only a small amount of incremental space, so a 1GB app package would require about 1.1GB on disk.
- Secondary drives on desktop. On desktop secondary drives are now supported for app installs so you can install apps to D: by changing the location in settings under storage. On mobile, the storage setting similarly allows apps to be installed on a SD card if one is present
The SDK now includes several updated APIs for beautiful UI:
- Jump Lists. The new Windows.UI.StartScreen.JumpList and Windows.UI.StartScreen.JumpListItem classes provide apps with the ability to programmatically select the type of jump list they want to use, add custom task entry points, and add custom groups.
- XAML Updates. These include the ability to specify the clipboard format via updated API on RichText, better navigation with updated Maps APIs, and improvements to the default menu size via a few primitive APIs
Bluetooth and Networking
The updated SDK includes improvements for Bluetooth and networking:
- Bluetooth. New pairing methods in the DeviceInformationPairing class allow pairing / unpairing from within the app with optional protection levels
- Sockets. For WebSockets users: MessageWebSocket.OutputStream.FlushAsync and StreamWebSocket.OutputStream.FlushAsync have been fully implemented, and wait for previously-issued WriteAsync calls to complete. Note that this may cause existing code to throw an exception if the WebSocket is in an invalid state when you call FlushAsync.
- Cookies. A new property CookieUsageBehavior was added to the existing Windows.Web.Http.Filters.HttpBaseProtocolFilter class. This allows developers to have control of how cookies are handled by the system.
Window 10 introduced several improvements to Contextual Sensing including the ability to detect activities (e.g. walking, running, biking, in vehicle), to count steps, to detect altitude and barometric pressure, and the ability to detect the presence/absence of a user close to the device. A good summary is provided in this blog post. In addition, this blog post describes some more advanced sensor features including the ability to do Sensor Batching for the accelerometer, a ReadingTransform to make it easy to maintain proper app orientation across devices, and the ability to define and use Custom Sensors. With these changes, the full range of sensor APIs are available to all devices running Windows and depreciated the (Lumia-only) SensoreCore APIs that were their predecessor.
The November update continues this trajectory with the ability to get the current reading from sensors and to use sensors as background triggers. For details, check out the extensive collection of Devices and Sensors UWP samples in our sample repository on GitHub.
The Windows.Devices.Perception namespace contains the client APIs that allow a UWP application to access the color, depth, or infrared data of computer vision cameras.
Developers now have additional flexibility for storing files and associating them to specific users:
- Developers can now create a file or create a folder inside the Downloads folder for a specific User.
- Developers can now get a specified Library for a specific User.
Windows App Certification Kit (Windows ACK)
The Windows App Certification Kit has been updated with improved tests. For a complete list of updates, visit the Windows App Certification Kit page.
Design Kit (Photoshop)
To make it easier to design apps, we recently introduced new UWP app design templates for Adobe Photoshop. We also updated our Microsoft PowerPoint and Adobe Illustrator templates and made a PDF version of our guidelines available. Visit the Design downloads page.