Kaum sprach ich davon, dass noch nicht wirklich etwas zum Programmiermodell von Windows 10 Apps bekannt ist, lüftet Microsoft auf der MWC in einer Session den Vorhang zumindest ein bisschen. Und in einem ersten Blogbeitrag hat Kevin Gallo das universelle App-Modell und die Ziele von Microsoft auf hoher Flughöhe beschrieben: A first look at the Windows 10 universal app platform.
Ziel von Microsoft ist es unter dem Namen Universal App Platform in Windows 10 eine einheitliche Entwicklungsplattform für Apps zu schaffen, die auf allen von Windows 10 unterstützten Gerätetypen lauffähig sind. Dies umfasst neben „normalen“ Desktop-PCs und Notebooks auch mobile Geräteklassen wie Tablets und Smartphones, bis hin zum TV (Xbox), zu HoloLens und zu IoT-Geräten. Es soll einen einheitlichen Store geben, von dem Apps auf alle Geräte installiert werden können. Ebenso sollen Entwickler mit einem einzigen Binary im Store alle Gerätetypen bedienen können, die sie unterstützen wollen.
Die Funktionsfähigkeit von einheitlichen Apps auf unterschiedlichen Gerätetypen ist natürlich kein free lunch – es erfordert auf jeden Fall Arbeit von Entwicklern. Unterschiedliche Plattformen haben unterschiedliche Features und auch die Bedienweisen (Touch, Maus/Tastatur, Gesten bei Kinect/HoloLens) und vor allem die Bildschirmgrößen erfordern es, dass verschiedene Plattformen maßgeschneidert bedient werden – sowohl bei plattformspezifischen Features als auch bei der UI. Dieses Umstandes ist sich auch Microsoft bewusst und versucht den Weg zu device-übergreifenden Apps für Entwickler zu vereinfachen – natürlich mit dem Ziel, dass diese ihre Apps auf möglichst vielen Gerätetypen zur Verfügung stellen.
Gerätespezifische UIs
Unter dem Begriff Adaptive UX will Microsoft Entwicklern Controls und Funktionalität für Benutzeroberflächen anbieten, die sich automatisch an Gerätespezifikationen und Bildschirmgrößen anpassen. Auch die Anpassung an zur Verfügung stehende Eingabemethoden fällt in diese Kategorie. Bereits unter Windows 8 und Windows 8.1 beschritt Microsoft diesen Pfad, indem z.B. bei eines ListView oder bei einem Semantic-Zoom-Control Scrollleisten und Hilfs-Buttons genau dann angezeigt wurden, wenn der Benutzer die App mit Tastatur/Maus bedient und nicht per Touch. Windows 10 führt diesen Weg fort und geht darüber hinaus. So sollen sich auch Controls abhängig von der Eingabemethode adaptiv darstellen:
Windows 10 will determine, at runtime, how the customer is interacting with your app and render the appropriate user experience (e.g. on a laptop with a touch-screen, an app fly-out control will provide larger touch-targets if tapped with touch, as opposed to clicked with a mouse).
Wie weit das in der Praxis tatsächlich gehen kann, bleibt abzuwarten. Ein kleines 4″-Display erfordert in vielen Fällen per se ein anderes Layout und eine andere Darstellung von App-Inhalten, eine vollkommene Universalität der definierten UI ist hier kaum möglich und dieselbe UI auf einem großen Surface Hub als auch auf einem kleinen Smartphone führt zwangsläufig zu einer schlechten User Experience. Ebenso bleibt abzuwarten, inwieweit die Informationsdichte von Apps für Desktop-Benutzer automatisiert erhöht werden kann, sodass Apps von ihnen auf dem Desktop tatsächlich angenommen werden.
Gerätespezifische APIs
Um universelle Apps zu bauen, die dennoch gerätespezifische Features abdecken, will Microsoft sogenannte Extension SDKs für die jeweiligen Plattformen zur Verfügung stellen. Dabei handelt es sich um APIs, die je nach Gerät eingebunden werden können, um dann spezifische für die jeweilige Plattform verfügbare Funktionalität bereitzustellen.
Der Weg von Windows 8.1
Um bestehende Windows-8.1-Apps in eine vollwertige Windows-10-App umzuwandeln (und die jeweilige App nicht nur in einer Art Kompatibilitätsmodus laufen zu lassen), sind laut des Microsoft-Vortrags auf der MWC mehrere Schritte notwendig:
- Reference Extension SDKs
- Convert conditional code (#if…) to adaptive code
- Update deprecated APIs
- Update undefined XAML styles
- Move Charms bar interaction on-canvas
- Extend your UX; create a great, adaptive UI experience that works across device families
Interessant dabei wird sein, wie sich der „adaptive code“ in der Praxis tatsächlich gestaltet. Ebenso interessant für mich war die Aussage, dass „charms bar interaction“ auf die App-Oberfläche verlagert werden soll. Das zeigt mir, dass die Charms Bar und jegliche Form von Umgestaltung dieser Funktionalität schlussendlich nicht mehr in Windows 10 enthalten sein wird. Und dass Entwickler die Aktionen, die sie dort implementiert haben (und die von Benutzern kaum angenommen wurden, da sie nicht sichtbar waren), direkt in die App integrieren sollen. Nach mehrjähriger Nutzung von Windows 8/8.1 kann ich dazu nur sagen: gut so! Die implizite Charms Bar war zwar gut gemeint, aber aus Usability-Sicht leider eine Katastrophe. Mögliche App-Interaktionen werden auch nur in der App für Benutzer sichtbar, allein durch die Gewohnheit der Benutzer von anderen Plattformen her…
Insgesamt sind die ersten Informationen zur (App-) Entwicklung unter Windows 10 vielversprechend, es bleiben aber viele Fragen offen. Ob Microsoft seine Versprechen der „Universal App Platform“ halten und sowohl Entwickler als auch Endanwender zufriedenstellen kann, bleibt abzuwarten… zur BUILD Ende April wissen wir mehr!