With the release of Windows 10 this coming autumn, users and developers will enjoy a consolidation of device user interfaces and development platforms, respectively.
The promise for developers is that they can develop app business logic once for any Windows-based device such as a PC, phone, tablet, the Xbox One and a number of new devices such as the Hololens and Surface Hub. Eventually, the Universal App Platform will also encompass IoT devices.
Customers will be able to install a single app on all their devices and enjoy a more productive, unified mobile experience. Every device will have access to these single, all-platform apps from one online app repository.
Microsoft is creating this unified cross-device experience in response to customers’ desires for adaptive, seamless interaction on whatever device type is most convenient for accomplish a given task. With Windows 10 the ability to utilize whatever human interface is predominant on any device such as a touchscreen, keyboard and mouse, pen or game controller is taken care of automatically and intelligently.
What the Windows 10 Universal App Platform Means for Developers
Windows developers today must bridge the gaps between device types by writing separate apps for mobile devices, desktops or websites. With Windows 10, they write their app’s core logic once and the UAP, which contains a collection of “versioned contracts” for each device type, adapts the app to any Windows-based device.
Developers utilize extension SDKs to provide their apps with access to platform-specific functionality where necessary. These are turned on automatically at runtime to match the device upon which the app is running. Thus, recompilation is unnecessary to achieve cross-platform portability. Microsoft refers to these extensions as adaptive code.
The Adaptive User Experience
Adaptive UX works by sensing a platform’s human interface capabilities and the user’s interaction with the device to create a contextually appropriate experience. For instance, improvements to Microsoft’s ViewStateManager remove the need for separate UI definitions pertaining to screen size, though these can be included optionally if a developer prefers. User controls are adjusted at runtime based on how a customer is interacting with HIDs available on the machine. If a laptop has a touchscreen, for example, and it is being utilized, then controls targets are increased in size to accommodate taps instead of mouse clicks.
Windows 10 also adds the ability for developers to take advantage of other, less used, inputs such as gestures, inking, speech and user gaze. These are all handled automatically by Windows 10, which relieves developers from the need to parse such inputs themselves.
In addition to Windows services already provided to developers, such as Windows Credential Locker, roaming data and Windows Notification Services, Windows 10 opens up additional cloud-related services including Cortana AI, OneDrive and Application Insights.
Existing Windows apps will continue to be supported on the device types for which they were originally developed. Microsoft will offer tools and support for developers to easily migrate their existing apps that are based on previous versions of Windows to Windows 10.
Language and IDE Support
Windows 10 continues to support developers’ language preferences within Visual Studio plus the cloud services available through Azure. Everything you can do in Visual Studio now and more will exist after the new release. Furthermore, support will be increased for C# for delivering apps to iOS and Android devices including a full Android emulator. Developers will be able to take advantage of Xamarin and Unity within VS for cross-platform development also.
Jumpstarting Windows 10 Development
Developers who want to start working with Windows 10 can do so via Microsoft’s Windows Insider Program where they can access the latest pre-release builds.
Windows 10 holds much promise for both consumers and developers by sparking increased productivity and availability of Windows apps across the widest possible range of devices. App users will enjoy a reduction in user experience fragmentation and developers will spend far less time writing, testing, deploying and promoting their apps across all Windows-based platforms.