paint-brush
Разработка VisionOS: советы и рекомендации по созданию приложений Apple Vision Proк@dvaluev
17,345 чтения
17,345 чтения

Разработка VisionOS: советы и рекомендации по созданию приложений Apple Vision Pro

к Dmitrii Valuev4m2024/04/15
Read on Terminal Reader

Слишком долго; Читать

Vision Pro — это новая версия операционной системы виртуальной реальности Apple. Это позволяет пользователям более захватывающе взаимодействовать со своим виртуальным миром. Вот несколько советов и рекомендаций, которые помогут вам создать собственное приложение. Используйте эти советы, чтобы ваше приложение значительно отличалось от остальной части VisionOS.
featured image - Разработка VisionOS: советы и рекомендации по созданию приложений Apple Vision Pro
Dmitrii Valuev HackerNoon profile picture
0-item
1-item
2-item
3-item


Недавно Apple выпустила Vision Pro, и мне посчастливилось стать его счастливым обладателем. С тех пор я активно занимался разработкой своего приложения и изучением различных приложений и тенденций в Vision Pro App Store.


Мое внимание привлекло то, что новые приложения выходят каждый день, но лишь немногие из них хорошо подходят для погружения в виртуальную реальность. Я думаю, что многим разработчикам сложно найти документацию и примеры функций Vision Pro. Однако использование возможностей Vision Pro может выделить ваше приложение и предоставить пользователям расширенные возможности.


В этой статье я поделюсь некоторыми советами и приемами, которые я обнаружил при создании своего приложения. Эти советы не только помогут вашему приложению выделиться, но также обеспечат его плавную интеграцию и удобство работы с VisionOS.


Эффект темного окружения

Наверняка вы замечали, что при просмотре видео или фото фон за окном затемняется, в настройках это называется "автозатемнение". Чтобы получить тот же эффект, вам нужно использовать .preferredSurroundingsEffect(.systemDark) в вашем представлении, и тогда пространство вокруг пользователя потемнеет, а ваше окно останется ярким, это поможет сохранить фокус на содержимом.


Эффект SystemDark


Скрытая линия управления окном

При просмотре видео или контента вы хотите, чтобы пользователь не отвлекался и создавал эффект парящего в воздухе окна, для этого Apple предоставила нам возможность скрыть нижнюю панель окна, которая используется для перемещения или закрытия. текущее окно. С помощью .persistentSystemOverlays(.hidden) вы можете скрыть эту панель управления в своем окне, она исчезнет с анимацией по умолчанию и появится только тогда, когда пользователь взаимодействует с окном.


Скрытая оконная решетка

Эффект отражения видео

Если вы откроете стандартное приложение Apple TV и включите фильм, вы заметите, что окно фильма имеет отражение, которое меняется с каждым кадром, создавая более захватывающий эффект. Чтобы получить эффект свечения вокруг вашего видео, вам нужно использовать VideoPlayerComponent и включить isPassthroughTintingEnabled , тогда эффект будет такой же, как в Apple TV или HBO Max. Вот что говорится в документации:


Это делается для того, чтобы во время воспроизведения видео включить сквозную тонировку, которая отображается вокруг видео, беря средний цвет кадра и окрашивая проходную часть этим цветом, чтобы подчеркнуть видео.


Эффект отражения

Изменение размера окна

Возможно, вы захотите запретить пользователю изменять размер окна, есть способ сделать это:

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


В этом методе также можно указать дополнительные настройки размера. Полная сигнатура метода выглядит так:

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


Видимость рук

Если ваше приложение использует иммерсивное пространство и вы не хотите, чтобы пользователь видел свои руки, или вы хотите заменить их виртуальными руками, как это сделано в AmazeVR, то вам нужно использовать .upperLimbVisibility(.hidden)


.upperLimbVisibility(.скрытый)


.upperLimbVisibility(.visible)


Орнамент

Я уверен, что вы видели в приложениях VisionOS боковые панели, похожие на TabBars . Apple представила новый метод View для VisionOS, который позволяет «расширять» окно и добавлять орнаменты по обе стороны от него.


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


Нижний орнамент

Основное местоположение

Интересный факт, который мне удалось проверить экспериментально, заключается в том, что методы CMMotionManager работают только в иммерсивном пространстве, а не в обычном окне.


Заключение

VisionOS предоставляет множество инструментов для создания иммерсивных приложений, которые переносят пользователей в виртуальный мир и заставляют их чувствовать себя его частью. Хотя для Vision Pro выпускается все больше и больше приложений, лишь немногие используют весь спектр его функций. Вот тут-то и появляется ваш шанс отличиться — используйте его и воспользуйтесь преимуществом. К сожалению, разработчикам сложно найти легкодоступную документацию и примеры. Вот почему я пишу эту статью. Надеюсь, мои советы помогут вам улучшить ваше приложение.