paint-brush
VisionOS-Entwicklung: Tipps und Tricks zum Erstellen von Apple Vision Pro-Appsvon@dvaluev
17,360 Lesungen
17,360 Lesungen

VisionOS-Entwicklung: Tipps und Tricks zum Erstellen von Apple Vision Pro-Apps

von Dmitrii Valuev4m2024/04/15
Read on Terminal Reader

Zu lang; Lesen

Vision Pro ist eine neue Version des Virtual-Reality-Betriebssystems von Apple. Es ermöglicht Benutzern, intensiver mit ihrer virtuellen Welt zu interagieren. Hier sind einige Tipps und Tricks, die Ihnen bei der Erstellung Ihrer eigenen Anwendung helfen. Verwenden Sie diese Tipps, um Ihre Anwendung deutlich vom Rest von VisionOS abzuheben.
featured image - VisionOS-Entwicklung: Tipps und Tricks zum Erstellen von Apple Vision Pro-Apps
Dmitrii Valuev HackerNoon profile picture
0-item
1-item
2-item
3-item


Vor Kurzem hat Apple Vision Pro herausgebracht und ich hatte das Glück, stolzer Besitzer zu werden. Seitdem bin ich intensiv mit der Entwicklung meiner Anwendung beschäftigt und erkunde verschiedene Apps und Trends im Vision Pro App Store.


Eine Sache, die meine Aufmerksamkeit erregt hat, ist, dass jeden Tag neue Apps herauskommen, aber nur wenige davon gut zum immersiven Virtual-Reality-Erlebnis passen. Ich schätze, viele Entwickler haben Schwierigkeiten, Dokumentation und Beispiele für die Funktionen von Vision Pro zu finden. Die Nutzung der Funktionen von Vision Pro kann Ihre Anwendung jedoch von der Masse abheben und den Benutzern ein verbessertes Erlebnis bieten.


In diesem Artikel teile ich einige Tipps und Tricks, die ich beim Erstellen meiner Anwendung entdeckt habe. Diese Tipps werden nicht nur dazu beitragen, dass Ihre Anwendung hervorsticht, sondern auch dafür sorgen, dass sie nahtlos in VisionOS integriert wird und sich wie ein natives System anfühlt.


Dunkler Umgebungseffekt

Sie haben sicher schon bemerkt, dass beim Betrachten eines Videos oder Fotos der Hintergrund hinter dem Fenster abgedunkelt wird. In den Einstellungen nennt sich das „Auto-Dimmen“. Um denselben Effekt zu erzielen, müssen Sie .preferredSurroundingsEffect(.systemDark) auf Ihre Ansicht anwenden. Dann wird der Raum um den Benutzer herum abgedunkelt und Ihr Fenster bleibt hell. Dies hilft dabei, den Fokus auf den Inhalt zu richten.


SystemDark-Effekt


Zeile für versteckte Fenstersteuerungen

Beim Betrachten eines Videos oder Inhalts möchten Sie, dass der Benutzer nicht abgelenkt wird und dass der Effekt eines in der Luft schwebenden Fensters entsteht. Aus diesem Grund hat Apple uns die Möglichkeit gegeben, die untere Leiste des Fensters auszublenden, die zum Verschieben oder Schließen des aktuellen Fensters verwendet wird. Mit .persistentSystemOverlays(.hidden) können Sie diese Steuerleiste in Ihrem Fenster ausblenden. Sie verschwindet mit der Standardanimation und wird nur angezeigt, wenn der Benutzer mit dem Fenster interagiert.


Versteckte Fensterleiste

Videoreflexionseffekt

Wenn Sie die Standardanwendung von Apple TV öffnen und einen Film einschalten, werden Sie feststellen, dass das Filmfenster eine Reflexion aufweist, die sich mit jedem Bild ändert, was einen intensiveren Effekt ergibt. Um einen Glüheffekt um Ihr Video herum zu erzielen, müssen Sie VideoPlayerComponent verwenden und isPassthroughTintingEnabled aktivieren. Dann ist der Effekt derselbe wie bei Apple TV oder HBO Max. In der Dokumentation heißt es dazu:


Dadurch wird die Passthrough-Tönung während der Videowiedergabe aktiviert. Diese wird um das Video herum angezeigt, indem die Durchschnittsfarbe des Frames angenommen und der Passthrough mit dieser Farbe getönt wird, um das Video hervorzuheben.


Reflexionseffekt

Fenstergröße ändern

Möglicherweise möchten Sie verhindern, dass der Benutzer die Fenstergröße ändert. Dafür gibt es eine Möglichkeit:

 onAppear { guard let windowScene = UIApplication.shared.connectedScenes.first as?UIWindowScene else { return } windowScene.requestGeometryUpdate(.Vision(resizingRestrictions: UIWindowScene.ResizingRestrictions.none)) }


Sie können in dieser Methode auch zusätzliche Größeneinstellungen angeben. Die vollständige Signatur der Methode sieht folgendermaßen aus:

 windowScene.requestGeometryUpdate(.Vision(size:, minimumSize:, maximumSize:, resizingRestrictions:))


Sichtbarkeit der Hände

Wenn Ihre Anwendung immersiven Raum verwendet und Sie nicht möchten, dass der Benutzer seine Hände sieht, oder Sie diese durch virtuelle Hände ersetzen möchten, wie dies in AmazeVR der Fall ist, müssen Sie .upperLimbVisibility(.hidden) verwenden.


.upperLimbVisibility(.hidden)


        .upperLimbVisibility(.visible)


Ornament

Sie haben sicher schon Seitenleisten in VisionOS-Anwendungen gesehen, die wie TabBars aussehen. Apple hat eine neue View für VisionOS eingeführt, mit der Sie das Fenster „erweitern“ und auf beiden Seiten Verzierungen hinzufügen können.


 .ornament( visibility: .visible, attachmentAnchor: .scene(.bottom), contentAlignment: .center ) { HStack { Button("Play", systemImage: "play.fill") { } Button("Stop", systemImage: "stop.fill") { } } .labelStyle(.iconOnly) .padding(.all) .glassBackgroundEffect() } 


Unteres Ornament

Kernstandort

Eine interessante Tatsache, die ich experimentell überprüfen konnte, ist, dass die Methoden von CMMotionManager nur im immersiven Raum und nicht in der normalen Fensteransicht funktionieren.


Abschluss

VisionOS bietet viele Tools zum Erstellen immersiver Anwendungen, die Benutzer in die virtuelle Welt eintauchen lassen und ihnen das Gefühl geben, Teil davon zu sein. Obwohl immer mehr Anwendungen für Vision Pro veröffentlicht werden, nutzen nur wenige den gesamten Funktionsumfang. Hier bietet sich Ihre Chance, sich abzuheben – nutzen Sie sie und profitieren Sie davon. Leider haben Entwickler Schwierigkeiten, leicht zugängliche Dokumentationen und Beispiele zu finden. Aus diesem Grund schreibe ich diesen Artikel. Ich hoffe, meine Tipps helfen Ihnen dabei, Ihre Anwendung zu verbessern.