New SDK shows both potential and challenge of the new Surface devices
Microsoft has released a preview SDK for its forthcoming Android Surface Duo device, and has confirmed a Developer Day on February 11th when the SDK for the Windows dual-screen Surface Neo will be previewed.
The dual-screen tablet, running a new version of Windows called 10X, and Surface Duo, running Android, were unveiled back in October 2019 – but details on the developer story have so far been sketchy.
The mist has now lifted a little. Microsoft’s Kevin Gallo, corporate veep, cleared a few things up as the preview SDK for Surface Duo was released; he also added that the SDK and emulator for Windows 10X will be available on February 11.
Microsoft’s plans are ambitious. While dual-screen mobile devices (both for Windows and Android) are not completely new, they are not mainstream, and the company has to convince the world of the desirability of this form factor. Further, Windows developers who have endured constant mind-changing from Microsoft in setting out its application platform strategy are now being asked to embrace Android as well as Windows.
A sign of the novelty of the company’s plans is that it wants to create “new web standards … to enable dual-screen experiences for websites and PWAs [Progressive Web Applications] on both Android and Windows 10X.”
Microsoft will no doubt implement these proposals in Edge, but that does not guarantee that other browsers will follow or that the standards will be approved.
Writing separate applications for Windows and Android, both with proper support for dual screens, sounds like a big ask. Gallo highlights three solutions for cross-platform development. One is to create web applications or PWAs. The second is React Native; and third is Xamarin, a .NET solution.
David Ortinau, principal program manager on the Xamarin team, has posted separately about developing for the new devices. Both Gallo and Ortinau mention five “recommended patterns” for dual screen applications. These are Extended Canvas (treating it as one large screen), Master-Detail, paged, Dual View – two versions of the same content side by side, such as a text description and a map or visual portrayal – and Companion Pane, such as an image on one side and tools for editing it on the other.
A key issue is how to manage the seam, and there are suggestions on this topic in Microsoft’s documentation. The seam, or hinge, is an area of the screen that appears to the developer as if it is blanked out, even though there is no actual display there. It is unfortunate that it works this way. Dialog spanning two screens? Bad idea, says the guide.
Developers keen to get started can do so immediately with the preview SDK for Android. Installation on Windows puts a handy Surface Duo emulator link on the desktop, but in our case it did not work. We needed to fix a script that makes assumptions about the location of the Android SDK. Once done, you can try Surface Duo.
A quick play with the Android SDK and emulator soon showed us the kinds of things that can go wrong. The emulator was sluggish for us, and while Microsoft’s sample apps ran successfully, we had difficulty positioning them correctly on the emulator. In addition, we saw what can go awry with the seam problem, with a virtual keyboard popping up that had a prompt with missing letters.
Dual screens can be great; many desktop PC users find multiple displays more convenient and productive than just one, and in principle they have potential on mobile devices tool, and without the technical challenges (and reliability concerns) of folding screens.
The challenge for Microsoft will be to enthuse developers sufficiently that there are strong dual-screen apps available for the launch of these devices, and to do that both for Windows 10X and for Surface Duo. ®