[Перевод] С помощью API iOS 16 компания Apple закладывает основу для разработки смешанной реальности

e01de64c5d818c842327192425de0690.png

Не сказав об этом ни слова, Apple готовит разработчиков к созданию приложений для своего долгожданного AR/VR-устройства

Источник: AppleИсточник: Apple

Когда был дан старт основному докладу Apple на WWDC 2022, мир с нетерпением ждал анонсов широко обсуждаемой гарнитуры смешанной реальности.

Как минимум, ожидался набор инструментов, аналогичный DTK для разработчиков M1. Тем более, что ходило множество слухов о возможном анонсе realityOS. Но очередное мероприятие WWDC прошло без упоминания о самом амбициозном проекте Apple.

Что еще более загадочно? Фреймворки RealityKit и SceneKit практически не получили обновлений в этом году. Вместо этого нас встретили Mac на базе M2, режим Stage Manager в iPadOS, подновленная iOS и значительная модернизация Carplay.

Гарнитура смешанной реальности, выпуск которой ожидался в 2020 году, но в итоге был перенесен на 2023 год, теперь еще больше откладывается — релиз намечен на 2024 год.

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

Благодаря их успехам в обеспечении преемственности, сегодня экосистема Apple более унифицирована, чем когда-либо прежде. Не могу не упомянуть о новой функции iOS 16, которая позволяет использовать iPhone в качестве веб-камеры для Mac (похоже, это бета-тест того, как гарнитура Apple может работать вместе с iPhone).

В то же время, несмотря на отсутствие новостей о разработке realityOS, производитель iPhone вносит значительные улучшения в свои API и фреймворки, чтобы подготовить разработчиков к будущему смешанной реальности.

Давайте посмотрим на некоторые новые API, анонсированные во время WWDC 2022. Некоторые из них хорошо известны и получили широкую известность во время WWDC 22. Однако, с точки зрения разработки AR/VR, роль, которую здесь будут играть эти API, была не так заметна во время мероприятия.

API Live Text и обновленный PDFKit для сканирования текста с носителя

С iOS 15 компания Apple представила фичу Live Text для извлечения текста из изображений. В iOS 16 они пошли еще дальше, выпустив API Live Text для легкого захвата текста с изображений и видеокадров. Класс DataScannerViewController, выпущенный как часть фреймворка VisionKit, позволяет настраивать различные параметры для сканирования. API Live Text под капотом  использует VNRecognizeTextRequest для обнаружения текстов.

На первый взгляд фича Live Text API напоминает Google Lens на стероидах. Однако только подумайте, какие возможности она откроет, когда вашему взору предстанет следующий большой гаджет от Apple. Для начала, представьте, что вы поворачиваете голову, чтобы быстро извлечь необходимую информацию взглядом. Да, это уже было возможно в iOS 15 благодаря пространственной осведомленности AirPods для отслеживания движения головы, которая использует CMHeadphoneMotionManager. Теперь добавьте к этому новое персонализированное пространственное аудио в iOS 16, и я уже вижу, как происходит развертывание механики VR.

Аналогичным образом, два усовершенствования в фреймворке PDFKit — возможность анализа текстовых полей и преобразования страниц документов в изображения — будут иметь большое значение для создания богатых возможностей AR-линз.

Источник: Видео WWDC 2022 - PDFKitИсточник: Видео WWDC 2022 — PDFKit

Чтобы устройство смешанной реальности от Apple не стало для вас всего лишь очередными умными часами, важно предоставить набор инструментов для взаимодействия с текстом, изображениями и графикой.

С появлением двух мощных API для распознавания изображений, я считаю, что производитель iPhone делает правильные шаги в нужном направлении. Это путь, который приведет к AR/VR-приложениям с развитыми интерактивными интерфейсами.

.       .       .

Речевой ввод текста и улучшенное распознавание речи

Забудьте на время о тексте и изображениях, iOS 16 также обновила фичу диктовки, позволив пользователям плавно переключаться между голосом и прикосновением.

Например, вы идете по коридору и, возможно, хотите быстро отредактировать текстовое сообщение на своем телефоне. В iOS 16 вы можете сразу же использовать голос, чтобы с легкостью изменить фрагмент текста.

Хотите больше? Фреймворк Speech получил небольшое усовершенствование — возможность переключать пунктуацию в SFSpeechRecognitionRequest через addsPunctation. Я с оптимизмом ожидаю, что это приведет к появлению богатых коммуникационных приложений, поскольку это уже нашло свое применение в живых субтитрах во время звонков FaceTime.

С точки зрения смешанной реальности это огромные изменения. Использование голоса для ввода текста уменьшит нашу зависимость от клавиатуры в мире VR. Apple также упрощает интеграцию Siri в наши приложения с помощью нового фреймворка App Intents.

.       .       .

Более точный контроль над пользовательским интерфейсом

В iOS 16 было анонсировано множество новых элементов управления пользовательским интерфейсом — преимущественно в SwiftUI — декларативном фреймворке, который обещает стать универсальным решением для создания приложений на всех платформах Apple.

Среди множества функций SwiftUI меня больше всего заинтересовали изменения в фреймворке WidgetKit. В iOS 16 разработчики теперь могут создавать виджеты для экрана блокировки. Кроме того, используя тот же код, можно создавать виджеты для различных циферблатов часов. Мы также можем создавать Live Activities в WidgetKit, чтобы предоставлять пользователю обновления в режиме реального времени.

Я действительно считаю, что виджеты станут будущим приложений — по крайней мере, в AR/VR-пространстве, поскольку пользователи будут стремиться потреблять информацию и просматривать контент, не открывая приложение.

Наряду с WidgetKit, у нас есть новый фреймворк WeatherKit, который поможет поддерживать ваши приложения и виджеты в актуальном состоянии. Посмотрите, как это будет выглядеть на экране блокировки.

Помимо фреймворков, SwiftUI также подарил нам множество элементов управления небольшого размера — например, Gauges, которые будут аккуратно интегрированы в виджеты. Также есть SpatialTapGesture — жест для отслеживания местоположения касания в представлении SwiftUI.

Мне особенно понравился API ImageRenderer, позволяющий преобразовывать представления SwiftUI в изображения. В сочетании с протоколом Transferable перетаскивание медиа-элементов между приложениями станет намного проще — тем более что теперь в SwiftUI есть встроенный элемент управления share sheet. Посмотрите, как с помощью перетаскивания стало проще вырезать объекты из фотографий и делиться ими в других приложениях:

Источник: AppleИсточник: Apple

Чтобы создавать интерактивные приложения для гарнитуры смешанной реальности, наши способы взаимодействия с текстом, изображениями, голосом, графикой и другими формами медиа должны стать более эффективными.

Я думаю, что Apple сделала заметные шаги в этом направлении не только благодаря вышеупомянутым элементам пользовательского интерфейса и управления жестами, но и благодаря обновленному API SharedPlay, новому фреймворку Shared With You и API Collaboration.

Все они выглядят как весьма перспективные строительные блоки для долгожданной гарнитуры Apple.

.       .       .

API RoomPlan и фреймворк Background Assets 

Фреймворк Background Assets — это еще один инструмент, который пока не получил широкого освещения. Он был введен для обработки загрузки больших файлов в различных состояниях приложения, но я думаю, что его возможности выходят за рамки этой утилиты.

Загружая 3D-активы из облака, мы можем быстро создавать и отправлять приложения дополненной реальности с гораздо меньшими размерами пакетов.

Аналогичным образом, фреймворк RealityKit не претерпел каких-либо существенных изменений. Однако Apple без лишнего шума представила новый API RoomPlan. 

Работающий на базе ARKit 6 (который в этом году получил несколько заметных улучшений), API, предназначенный только для Swift, обеспечивает поддержку сканирования помещений и построения их 3D-моделей.

Можно считать, что API RoomPlan является расширением API Object Capture, но если рассматривать его в терминах AR/VR, а учитывая тот факт, что гарнитура смешанной реальности Apple будет оснащена датчиками LiDAR и несколькими камерами, RoomPlan изменит правила игры для разработчиков. Ожидайте множество приложений AR, которые позволят вам реконструировать дома.

.       .       .

Хотя это были основные API, которые, на мой взгляд, хорошо впишутся в будущее смешанной реальности, Spatial — это еще один новый фреймворк, позволяющий работать с математическими примитивами 3D. Он может оказаться полезным при работе с графикой в виртуальном пространстве.

В итоге, Apple не произнесла ни единого слова о своих планах по созданию гарнитур AR/VR, но новые API, которые они выпустили в этом году, сыграют решающую роль в объединении всех компонентов для разработки метавселенной.

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

Скоро в OTUS состоится открытое занятие, на котором мы посмотрим, как превратить Android в iOS, мигрировав с помощью KMM, и какие подводные камни встречаются. Регистрируйтесь по ссылке.

Также приглашаем всех желающих на вебинар «Flux в SwiftUI — самая эффективная архитектура на 2022 год?», на котором мы обсудим:
— Очевидные проблемы MVVM при создании iOS приложений на SwiftUI2.
— Возможные расширения MVVM с помощью SOA и Coordinator паттернов.
— Почему большинство приложений на SwiftUI пишется на архитектурной концепции Flux.
Регистрация на вебинар.

© Habrahabr.ru