Wenn man an Apps für die HoloLens denkt, dann stellt man sich in erster Linie 3D-Apps mit Hologrammen vor – diese sind natürlich auch die ganz klare Stärke der HoloLens. Doch sie kann noch mehr: alle UWP-Apps (Universal Windows Platform) können mit der HoloLens genutzt werden. Die gängigen „platten“ Apps integrieren sich als flache „Fenster“ oder „Kacheln“ im dreidimensionalen Raum. Die HoloLens-spezifischen „plastischen“ Apps können wirkliche 3D-Hologramme im Raum darstellen. Was sind die Unterschiede und auf was sollte generell bei diesen beiden App-Typen für die HoloLens geachtet werden? Wie kann man beide Typen in einer App vereinen? Dieser Teil der Blogserie soll diese und mehr Fragen zu den App-Typen beantworten.
Wenn man sich mit den App-Typen für die HoloLens beschäftigt, so sollte man ebenfalls Kenntnisse über das App Model der HoloLens haben. Es gibt hierzu wichtige Details zu wissen, welche beim Design von Apps berücksichtigt werden sollten.
Generell kann immer nur eine einzige App in der HoloLens aktiv sein. Sobald eine zweite App gestartet oder fortgesetzt wird, wird erstere angehalten. Man kann jedoch explizit Hintergrundprozesse definieren und anlegen. Diese laufen trotz angehaltener App weiter und ermöglichen es beispielsweise, die Audiowiedergabe fortzusetzen.
Jede App wird in der HoloLens als Kachel dargestellt. Wird die Kachel geschlossen, werden auch die Prozesse der App beendet. Bewegt man sich in der „Mixed World“ der 2D-Apps, kann man mehrere Kacheln setzen und hat damit quasi mehrere Apps auf einen Blick parat – allerdings nur mit einem statischen Splash Screen, Live Tiles werden aktuell nicht unterstützt.
Sobald jedoch eine 3D-App gestartet wird, verschwinden alle 2D-Apps der Mixed World und der gesamte Raum wird von der 3D-App eingenommen. Hier gilt also: entweder 2D oder 3D.
Generell sollte beim Design und der Entwicklung von HoloLens-Apps darauf geachtet werden, dass für die Interaktion keine Tastatur verfügbar ist. „Normale“ 2D-Apps, welche dies voraussetzen, sind also ungeeignet für die HoloLens. Jedoch kann für die HoloLens dieselbe Engine für Spracheingabe genutzt werden, welche auch für alle „normalen“ UWP-Apps bereitsteht. Für 3D-Projekte, welche mit Unity erstellt werden, bietet die Unity Engine sogar vereinfachte Methoden für die Spracherkennung, welche auch in den Unity-C#-Skripten bereitstehen – unter der Haube werden aber dieselben Bibliotheken verwendet. Durch geeignete Sprachbefehle kann das Benutzererlebnis erheblich verbessert werden.
Ein weiterer Punkt, der beachtet werden sollte, ist die Darstellung von Farben. Hologramme werden durch Hinzufügen von Licht erzeugt und da Schwarz – einfach gesagt – das Fehlen von Licht ist, kann die HoloLens kein Schwarz darstellen. In den beiden Screenshots unten ist eine App-Kachel mit einem schwarzen Streifen im unteren Teil zu sehen. Im originalen Screenshot links sieht die Darstellung korrekt aus. Dies spiegelt allerdings nicht das wirkliche Erlebnis mit der HoloLens wider. Da die Gläser der HoloLens generell abdunkeln, erscheint die schwarze Fläche im unteren Teil der App-Kachel fast im selben Farbton wie die weiße Wand neben der Kachel und wirkt dadurch für den Nutzer durchsichtig. Dafür erscheint das Rot heller als im XAML-Designer von Visual Studio. Zum Vergleich wurde der rechte Screenshot bearbeitet, um annähernd das wirkliche Bild wiederzugeben. Letztendlich muss man in jedem Fall eine App mit der HoloLens tatsächlich testen, hierfür reicht der Emulator nicht aus.
Der Button im obigen Screenshot deutet den letzten jedoch durchaus interessanten Punkt an: Können hybride 3D/2D-Apps entwickelt werden? Die klare Antwort ist: Jein. Grundsätzlich ist es zwar möglich, dass eine App 3D-Objekte und normale 2D-Oberflächen im XAML-Design anzeigen kann, allerdings niemals zur gleichen Zeit. Selbst für eine simple Tastatur muss von der „Holographic World“ komplett zur „Mixed World“ gewechselt werden. Dies ist zumindest der Teil, den das anfangs erwähnte App-Model uns verrät. Mit den angebotenen Methoden hat dies in einem ersten Test auch funktioniert, wenn auch recht holprig.
Interessant ist allerdings, dass die für die HoloLens entwickelte App „Holograms“ aus dem Store ein anderes Verhalten zeigt. Hier gibt es eine 2D-Kachel, aus welcher Hologramme ausgewählt und im Raum platziert werden können. Dabei werden die 3D-Hologramme gleichzeitig mit den 2D-Kacheln angezeigt, wie ganz oben im ersten Bild dieses Beitrags zu sehen ist.
Das Thema hybride Apps scheint also noch nicht ganz ausgereift zu sein bzw. Microsoft muss erst die benötigten APIs den Entwicklern bereitstellen. Viele interessante Anwendungsfälle sind jedoch bereits heute denkbar. Doch schon jetzt kann das Know-how der bisherigen XAML-Entwicklung für UWP-Apps auch für die HoloLens genutzt werden.
Wollen Sie mehr über HoloLens erfahren, dann sprechen Sie uns an oder kommen Sie am 14.09.2016 zu uns nach Stuttgart auf’s Holodeck.