Рекомендации по человеческому интерфейсу
Включение
Инклюзивное приложение ставит людей на первое место, отдавая приоритет уважительному общению и представляя контент и функциональные возможности таким образом, чтобы каждый мог получить доступ и понять.
Чтобы помочь вам разработать инклюзивное приложение, подумайте о следующих целях, когда вы просматриваете слова и изображения, которые вы используете, и опыт, который вы предлагаете.
Как и в случае любого дизайна, разработка инклюзивного приложения — это повторяющийся процесс, требующий времени, чтобы все получилось правильно. На протяжении всего процесса будьте готовы проверить свои предположения о том, как думают и чувствуют другие люди, и будьте открыты для новых знаний и понимания.
Инклюзивность по дизайну
Простой и интуитивно понятный интерфейс лежит в основе хорошо разработанных приложений. Чтобы разработать интуитивно понятный интерфейс, вы начинаете с изучения целей и точек зрения людей, чтобы вы могли представить контент, который им нравится.
Эмпатия — важный инструмент в этом исследовании, потому что он помогает вам понять, как люди с разными точками зрения могут реагировать на контент и впечатления, которые вы создаете. Например, вы можете обнаружить, что с некоторых точек зрения слово или изображение в вашем приложении непонятны или имеют непредвиденное значение.
Хотя точка зрения каждого человека представляет собой уникальное пересечение человеческих качеств, которые являются одновременно отличными и динамичными, все точки зрения возникают из человеческих характеристик и опыта, которые все разделяют, в том числе:
- Возраст
- Пол и гендерная идентичность
- Раса и этническая принадлежность
- Сексуальность
- Физические атрибуты
- Когнитивные атрибуты
- Постоянная, временная и ситуационная инвалидность
- Язык и культура
- Религия
- Образование
- Политические или философские взгляды
- Социально-экономический контекст
Изучая свое приложение с разных точек зрения, избегайте рассматривать работу как простой поиск контента, который может вас оскорбить. Хотя ни одно приложение не должно содержать оскорбительные материалы или действия, безобидное приложение не обязательно является инклюзивным. Сосредоточение внимания на инклюзивности может помочь вам избежать потенциально оскорбительного контента, а также поможет вам создать приятный опыт, который понравится всем.
Приветственный язык
Использование простого, инклюзивного языка приветствует всех и помогает им понять ваше приложение. Внимательно просмотрите текст в своем приложении, чтобы убедиться, что ваш тон и слова не исключают людей. Вот несколько советов по написанию текста — также известному как копия — прямолинейному, легкому для понимания и всеобъемлющему.
Рассмотрите тон вашего текста с разных точек зрения. Стиль вашего письма передает информацию почти так же, как и слова, которые вы используете. Хотя в разных приложениях используются разные стили общения, убедитесь, что используемый вами тон не отправляет сообщения, которых вы не намеревались. Например, академический тон может создать впечатление, что приложение приветствует только высокий уровень образования. Когда вы ищете стиль, подходящий для вашего приложения, сосредоточьтесь на том, чтобы быть ясным, прямым и уважительным.
Обратите внимание на то, как вы относитесь к людям. Обычно хорошо использовать вас и ваше для прямого обращения к людям. Косвенное обращение к людям как к пользователям или пользователю может сделать ваше приложение далеким и неприветливым. Кроме того, подумайте о том, чтобы зарезервировать такие слова, как мы и наш , для обозначения вашего приложения или компании; в противном случае эти термины могут указывать на личные отношения с людьми, которые могут быть истолкованы как оскорбительные или снисходительные.
Избегайте использования специальных или технических терминов без их определения. Использование специализированных или технических терминов может сделать ваше письмо более кратким, но это исключает людей, которые не знают, что означают эти термины. Если вы должны использовать такие термины, обязательно сначала дайте им определение и сделайте определения простыми для поиска. Даже когда люди знают определение специализированного или технического термина в предложении, предложение легче читать и переводить, когда вместо этого используется простой язык.
Замените разговорные выражения простым языком. Разговорные выражения часто зависят от культуры и могут быть трудны для перевода. Хуже того, некоторые разговорные фразы имеют исключительные значения, о которых вы могли не знать. Например, фразы « галерея арахиса» и « дедушка» в обоих случаях возникли из угнетающего контекста и продолжают исключать людей. Даже если разговорная фраза не имеет исключающего значения, она все же может исключить всех, кто ее не понимает.
Подумайте хорошенько, прежде чем включать юмор. Юмор очень субъективен, и его, как и разговорные выражения, трудно перевести из одной культуры в другую. Добавление юмора в ваше приложение рискует сбить с толку людей, которые его не понимают, вызвать раздражение у тех, кто устал от повторного сталкивания с ним, и оскорбить тех, кто интерпретирует его иначе. Дополнительные рекомендации по написанию см . в разделе Написание включительно .
Быть доступным
Доступное приложение не требует от людей определенных навыков или знаний, прежде чем они смогут его использовать, и дает людям четкий путь к углублению своего понимания с течением времени.
Независимо от того, выполняет ли ваше приложение ряд мощных функций или выполняет одну простую задачу, есть два способа сделать его доступным.
- Представить понятный и понятный интерфейс. Чтобы помочь вам разработать простой интерфейс, подходящий для других приложений на каждой платформе, см. статью «Проектирование для iOS , iPadOS , macOS , watchOS и tvOS » .
- Создавайте способы обучения использованию вашего приложения. Рассмотрите возможность разработки интерфейса первого запуска, который поможет новым пользователям применять пошаговый подход, а опытные пользователи смогут сразу переходить к нужному контенту. Инструкции см. в разделе Онбординг .
Гендерная идентичность
На протяжении всей истории культуры по всему миру признавали спектр самоидентификации и самовыражения, выходящий за рамки бинарных вариантов женщины и мужчины.
Вы можете помочь каждому почувствовать себя желанным гостем в своем приложении, избегая ненужных упоминаний определенного пола. Например, приложение для обмена рецептами, которое использует такой текст, как «Вы можете разрешить подписчику публиковать свои рецепты в вашей общей папке», может избежать ненужных ссылок на пол, используя альтернативу, например «Подписчики могут публиковать рецепты в вашей общей папке». В дополнение к использованию гендерно-нейтрального существительного «подписчики», в исправленном тексте отсутствуют ненужные местоимения в единственном числе «его» и «ее», что помогает предложению оставаться инклюзивным, когда оно локализовано для языков, в которых используются местоимения с гендерной принадлежностью.
Другой пример ненужной ссылки на определенный пол — аватар, эмодзи или глиф. Чтобы приветствовать всех, дайте людям инструменты, необходимые им для создания аватаров и смайликов, которые точно их представляют. Когда необходимо изобразить обычного человека или людей, используйте негендерное человеческое изображение, чтобы усилить сообщение о том, что обычный человек означает человека , а не мужчину или женщину . SF Symbols предоставляет множество глифов без гендера, которые вы можете использовать, например, символы фигуры и человека, показанные здесь:
Большинству приложений не требуется знать пол человека, но если ваше приложение требует эту информацию — например, по состоянию здоровья или по юридическим причинам — рассмотрите возможность предоставления инклюзивных вариантов, таких как недвоичный , самоидентификация и отказ от указания . В этой ситуации вы также можете позволить людям указывать местоимения, которые они используют, чтобы вы могли обращаться к ним правильно, когда это необходимо.
Люди и настройки
Изображение человеческого разнообразия — один из самых заметных способов, которыми ваше приложение может приветствовать всех. Когда люди узнают себе подобных в приложении и связанных с ним материалах, они с меньшей вероятностью будут чувствовать себя исключенными и с большей вероятностью будут думать, что приложение принесет им пользу.
Когда вы создаете копии и изображения, представляющие людей, изображайте ряд человеческих характеристик и действий. Например, фитнес-приложение может включать упражнения, демонстрируемые людьми разного расового происхождения, телосложения, возраста и физических возможностей. Если вам нужно изобразить общие занятия, избегайте стереотипных представлений, таких как показ только врачей-мужчин или медсестер-женщин.
Также проверьте настройки и объекты, которые вы показываете. Например, демонстрация высокого уровня достатка может иметь смысл в некоторых сценариях, но в других случаях это может быть нежелательно и сделать приложение неактуальным. Когда это имеет смысл в вашем приложении, предпочтите показывать места, дома, занятия и предметы, которые знакомы и близки большинству людей.
Избегание стереотипов
У всех есть предубеждения и стереотипы — часто бессознательно — и может быть сложно понять, как они влияют на ваши мысли. Цель инклюзивного дизайна — узнать о ваших предубеждениях и обобщениях, чтобы вы могли понять, где они могут повлиять на ваши дизайнерские решения.
Например, рассмотрим приложение, которое помогает людям управлять доступом к учетной записи для различных членов семьи. Если это приложение использует стереотипное определение семьи — например, женщина, мужчина и их биологические дети — оно, скорее всего, передает эту точку зрения в своем тексте и изображениях. Поскольку приложение предполагает, что семьи людей соответствуют этому узкому определению, оно исключает всех, чья семья отличается.
Хотя предположение, сделанное в приложении доступа к учетной записи, может показаться очевидной ошибкой, важно понимать, что не все предположения так легко обнаружить. Например, рассмотрим приложение, которое требует от людей выбора контрольных вопросов, на которые они могут ответить для подтверждения личности в будущем, например:
- Какой у тебя был любимый предмет в колледже?
- Какой марки была ваша первая машина?
- Что вы почувствовали, когда впервые увидели радугу?
С некоторой точки зрения эти вопросы относятся к обычным событиям, но все они основаны на опыте, который есть не у всех. Использование контекстно-зависимого опыта для сообщения чего-либо бесполезно для всех, кто не разделяет этот контекст и фактически исключает их. Чтобы создать альтернативы приведенным выше вопросам, связанным с культурой и способностями, вы можете сослаться на более универсальный человеческий опыт, например:
Основание дизайнерских решений на стереотипах или предположениях неизбежно ведет к исключению, потому что обобщения не могут отражать разнообразие человеческих взглядов. Отказ от предположений и вместо этого сосредоточение внимания на инклюзивности может помочь вам создать опыт, который будет полезен всем.
Доступность
Инклюзивное приложение доступно для всех. Люди полагаются на специальные возможности Apple, такие как VoiceOver, адаптация дисплея, скрытые субтитры, Switch Control и Speak Screen, чтобы настроить свои устройства в соответствии со своими индивидуальными потребностями, поэтому очень важно поддерживать эти функции в вашем приложении.
Также важно избегать предположения, что какие-либо ограничения могут помешать кому-то использовать ваше приложение. Такое предположение может привести к тому, что дизайн ограничит потенциальную аудиторию приложения. Напротив, когда вы фокусируетесь на том, чтобы сделать каждое приложение доступным, вы даете каждому возможность извлечь выгоду из вашего приложения удобным для них способом.
Чтобы помочь вам разработать приложение, которое понравится всем, помните следующее:
- Каждая инвалидность представляет собой спектр. Например, нарушения зрения варьируются от плохого зрения до полной слепоты и включают в себя такие вещи, как дальтонизм, нечеткость зрения, светочувствительность и потеря периферического зрения.
- Каждый может столкнуться с инвалидностью. В дополнение к инвалидности, с которой большинство людей сталкивается с возрастом, существуют временные инвалидности , такие как кратковременная потеря слуха из-за инфекции, и ситуационные инвалидности , такие как потеря слуха в шумном поезде, которые могут затронуть всех в разное время. .
При разработке контента, который приветствует людей с любыми способностями, примите во внимание следующие советы.
Избегайте изображений и выражений, исключающих людей с ограниченными возможностями. Например, включайте людей с ограниченными возможностями, когда вы представляете самых разных людей, и избегайте формулировок, в которых инвалидность используется для выражения негативного качества.
Используйте подход, ориентированный на людей, когда пишете о людях с ограниченными возможностями. Например, вы могли бы описать достижения и цели человека, прежде чем упоминать об инвалидности, которая у него может быть. Если вы пишете о конкретном человеке или сообществе, узнайте, как они себя идентифицируют; дополнительные рекомендации см . в разделе « Письмо об инвалидности» .
Отдавайте предпочтение простоте и наглядности. Предпочитайте знакомые, последовательные взаимодействия, которые упрощают выполнение задач и гарантируют, что каждый может воспринимать ваш контент, независимо от того, использует ли он зрение, слух или осязание.
Чтобы узнать больше о том, как сделать ваше приложение доступным, см . раздел Специальные возможности .
Языки
Люди хотят настроить свое устройство, выбрав язык для текста и регион для форматирования таких значений, как дата, время и деньги. Чтобы приветствовать глобальную аудиторию, сначала подготовьте свое приложение для работы с языками и регионами, отличными от вашего собственного — процесс, называемый интернационализацией , — и предоставьте переведенный текст и ресурсы для определенных языков. Обзор интернационализации см. в разделе Расширение вашего приложения на новые рынки ; руководство для разработчиков по локализации см . в разделе Локализация .
Сосредоточение внимания на включении может помочь вам подготовиться к локализации. Например, используя простой язык, избегая ненужных ссылок на пол, представляя разных людей, а также избегая стереотипов и контента, относящегося к определенной культуре, вы можете создать хорошие возможности для создания версий вашего приложения, локализованных на большее количество языков. Использование символов SF для глифов в вашем приложении также может помочь упростить локализацию. В дополнение к предоставлению множества глифов для конкретных языков, SF Symbols включает в себя глифы, которые вы можете использовать как в контексте слева направо, так и справа налево; руководство см. справа налево .
Когда вы локализуете свое приложение и связанный с ним контент, также помните о том, как вы используете цвет. Цвета часто имеют сильное культурно-специфическое значение, поэтому важно выяснить, как люди реагируют на определенные цвета в каждом поддерживаемом вами регионе. В некоторых местах, например, белый цвет ассоциируется со смертью или горем, тогда как в других местах он ассоциируется с чистотой или миром. Если вы используете цвет как способ общения, убедитесь, что ваш выбор цвета передает одно и то же в каждой версии вашего приложения.
Онбординг
В идеале люди могут понять ваше приложение или игру, просто попробовав ее, но если необходима адаптация, предоставьте процесс, который будет быстрым, увлекательным и необязательным
Чтобы уменьшить потребность в процессе адаптации, убедитесь, что людям легко находить и перемещаться по основным действиям и содержимому вашего приложения, а второстепенные элементы находятся в логичных и предсказуемых местах. Если вам нужно создать отдельный процесс адаптации, рассмотрите следующие рекомендации.
Лучшие практики
Разработайте краткий, приятный опыт, который не требует от людей запоминания или предоставления большого количества информации. Когда вы быстро и увлекательно знакомите людей с основной целью вашего приложения, они с большей вероятностью оценят полученный опыт и запомнят то, чему научились. Если вашему приложению или игре требуется доступ к личным данным или ресурсам, прежде чем оно сможет что-либо сделать, вы можете инициировать предоставленный системой запрос на разрешение во время процесса адаптации, потому что это дает вам возможность показать людям, почему вашему приложению нужна их информация и преимущества. его предоставления. Обязательно отложите запросы на дополнительную информацию до тех пор, пока этого не потребует ситуация. Руководство см. в разделе Доступ к личным данным .
Предпочитайте обучение через интерактивность. Люди, как правило, лучше учатся, когда могут выполнять задачу и взаимодействовать с контентом, а не просто просматривать учебные материалы. Кроме того, интерактивный процесс онбординга может помочь людям почувствовать, что они сразу же начинают работать с вашим приложением или игрой.
В качестве альтернативы отдельному процессу онбординга рассмотрите возможность интеграции кратких элементов онбординга в основной опыт. Например, когда люди впервые активируют функцию, вы можете дать краткое описание функции и отобразить визуальную подсказку, указывающую на следующий шаг. Поскольку люди, как правило, лучше учатся, делая что-то новое, может помочь первая обратная связь, которая будет направлять людей, когда они пробуют что-то новое.
Если вы предлагаете руководство, дайте людям возможность его пропустить. Если люди пропускают руководство при первом запуске вашего приложения, не показывайте его снова при последующих запусках, но убедитесь, что людям будет легко его найти, если они захотят просмотреть его позже. Например, вы можете сделать руководство доступным в справке, учетной записи или области настроек вашего приложения или игры.
Избегайте отображения сведений о лицензировании в процессе адаптации. Разрешите App Store отображать соглашения и заявления об отказе от ответственности, чтобы люди могли прочитать их перед загрузкой вашего приложения. Если вам необходимо включить эти элементы в приложение, интегрируйте их сбалансированным образом, чтобы не нарушать работу пользователя.
Соображения по поводу платформы
Никаких дополнительных соображений для iOS, iPadOS, macOS, tvOS или watchOS.
Кнопки
Кнопка инициирует мгновенное действие.
Универсальные и легко настраиваемые кнопки дают людям простые и знакомые способы выполнения задач в вашем приложении. Как правило, кнопка сочетает в себе три атрибута, чтобы четко передать ее функцию:
- Стиль. Визуальный стиль, основанный на размере, цвете и форме.
- Содержание. Символ (или значок интерфейса), текстовая метка или и то, и другое, которые отображаются на кнопке для обозначения ее назначения.
- Роль. Определяемая системой роль, определяющая семантическое значение кнопки и влияющая на ее внешний вид.
В дополнение к универсальным кнопкам многие распространенные стили кнопок, такие как «Информация», «Закрыть» и «Добавить контакт», обеспечивают привычное поведение во всей системе. Существует также множество компонентов, похожих на кнопки, которые имеют различный внешний вид и поведение для конкретных случаев использования, например переключатели , всплывающие кнопки и сегментированные элементы управления .
Лучшие практики
Когда кнопки мгновенно узнаваемы и просты для понимания, приложение кажется интуитивно понятным и хорошо спроектированным.
Сделайте кнопки удобными для выбора. На сенсорном экране кнопкам требуется цель нажатия не менее 44x44 точек, чтобы вместить кончик пальца. На всех экранах важно предусмотреть достаточно места вокруг кнопки, чтобы люди могли визуально отличить ее от окружающих компонентов и контента, независимо от того, используют ли люди сенсорный ввод, указатель или систему, которая расширяет кнопку, когда она находится в фокусе.
Убедитесь, что каждая кнопка четко сообщает о своем назначении. Кнопка всегда включает текстовую метку или символ (или значок интерфейса) — а иногда и комбинацию того и другого — чтобы помочь людям предсказать, что она делает.
Стиль
Системные кнопки предлагают ряд стилей, которые поддерживают обширную настройку, обеспечивая при этом встроенные состояния взаимодействия, поддержку специальных возможностей и адаптацию внешнего вида.
iOS и iPadOS имеют четыре стиля кнопок, каждый из которых доступен в трех размерах. Каждая комбинация размера и стиля имеет различный уровень визуальной значимости, помогая вам представить иерархию действий в вашем приложении.
Вы можете настроить системную кнопку для использования любого сочетания стиля и размера. По умолчанию системная кнопка использует угловой радиус определенного размера и акцентный цвет вашего приложения. При необходимости вы можете изменить эти атрибуты — в дополнение к атрибутам, управляющим макетом контента и наличием индикатора активности — в конфигурации вашей кнопки.
Используйте заполненную кнопку для наиболее вероятного действия в представлении. Заполненный стиль визуально наиболее заметен, поэтому он помогает людям быстро определить действие, которое они, скорее всего, захотят. В то же время избегайте использования слишком большого количества заполненных кнопок в представлении. Слишком много заполненных кнопок может увеличить когнитивную нагрузку, потому что люди должны тратить время на сравнение нескольких вероятных вариантов, прежде чем сделать выбор.
Используйте стиль, а не размер, чтобы визуально выделить предпочтительный вариант среди множества вариантов. Когда вы используете кнопки одинакового размера, чтобы предложить два или более вариантов, вы сигнализируете о том, что варианты образуют согласованный набор вариантов выбора. Если вы хотите выделить предпочтительный или наиболее вероятный вариант в наборе, используйте более заметный стиль кнопки для этого параметра и менее заметный стиль для остальных.
Содержание
Создавайте содержимое кнопки, которое поможет людям мгновенно понять, что делает кнопка. Если значок интерфейса подходит для вашей кнопки, рассмотрите возможность использования существующего или настроенного символа SF . Чтобы использовать текст, создайте короткую метку, кратко описывающую, что делает кнопка. Используя прописные буквы в стиле заголовков , попробуйте начать метку с глагола, чтобы передать действие кнопки. Например, кнопка, позволяющая людям добавлять товары в корзину, может использовать метку «Добавить в корзину».
Включайте дополнительный текст под меткой, только если он содержит полезную информацию. Дополнительный текст использует меньший размер текста, чем метка, показывая, что информация является вторичной по отношению к действию кнопки. Например, вы можете добавить текст для обновления кнопки «Добавить в корзину» с указанием количества товаров в корзине. Избегайте написания подзаголовка, который больше объясняет, что делает кнопка; убедитесь, что кнопка, содержащая представление, метку или изображение, стиль и роль, предоставляет всю информацию, необходимую людям для понимания ее действия.
Настройте кнопку для отображения индикатора активности, когда вам нужно предоставить отзыв о действии, которое не завершается мгновенно. Отображение индикатора активности внутри кнопки может сэкономить место в пользовательском интерфейсе и четко указать причину задержки. Чтобы прояснить, что происходит, вы также можете настроить кнопку так, чтобы рядом с индикатором активности отображалась другая метка. Например, метка «Оформить заказ» может измениться на «Оформить заказ...», пока отображается индикатор активности. Когда возникает задержка после того, как люди нажали или коснулись настроенной вами кнопки, система отображает индикатор активности рядом с исходной или альтернативной меткой, скрывая изображение кнопки, если оно есть.
Роль
Системная кнопка может иметь одну из следующих ролей:
- Обычный. Нет конкретного смысла.
- Начальный. Кнопка — это кнопка по умолчанию — кнопка, которую люди, скорее всего, выберут.
- Отмена. Кнопка отменяет текущее действие.
- Разрушительный. Кнопка выполняет действие, которое может привести к уничтожению данных.
Роль кнопки может оказывать дополнительное влияние на внешний вид, который вы настраиваете. Например, система использует полужирный текст для метки основной кнопки, тогда как деструктивная кнопка использует красный цвет.
Назначьте основную роль кнопке, которую люди, скорее всего, выберут. Когда основная кнопка реагирует на клавишу «Возврат», люди могут легко подтвердить свой выбор. Кроме того, когда кнопка находится во временном представлении — например, листе , редактируемом представлении или предупреждении — назначение ей основной роли означает, что представление может автоматически закрываться, когда люди нажимают клавишу «Ввод».
Не назначайте основную роль кнопке, выполняющей деструктивное действие, даже если это действие является наиболее вероятным выбором. Из-за визуальной заметности люди иногда выбирают основную кнопку, не прочитав ее сначала. Помогите людям избежать потери контента, назначив основную роль неразрушающим кнопкам.
Соображения по поводу платформы
Никаких дополнительных соображений для iOS, iPadOS или tvOS.
macOS
Несколько конкретных типов кнопок уникальны для macOS.
Нажмите на кнопки
Стандартный тип кнопки в macOS известен как нажимная кнопка . Вы можете настроить кнопку для отображения текста, символа, значка интерфейса, изображения или комбинации текста и изображения. Кнопки могут действовать как кнопки по умолчанию в представлении, и вы можете их подкрасить.
Используйте кнопку с изменяемой высотой только тогда, когда вам нужно отобразить высокое содержимое или содержимое переменной высоты. Кнопки с изменяемой высотой поддерживают те же конфигурации, что и обычные нажимные кнопки, и они используют тот же радиус угла и отступы содержимого, поэтому они выглядят совместимо с другими кнопками в вашем интерфейсе. Если вам нужно представить кнопку, содержащую две строки текста или высокий значок, используйте кнопку с изменяемой высотой; в противном случае используйте стандартную кнопку. Руководство для разработчиков см . в статье NSBezelStyleRegularSquare .
Добавляйте завершающее многоточие к заголовку, когда кнопка открывает другое окно, представление или приложение. Во всей системе многоточие в заголовке элемента управления сигнализирует о том, что люди могут вносить дополнительные данные. Например, кнопки «Изменить» на панели «Автозаполнение» в настройках Safari содержат многоточие, потому что они открывают другие представления, позволяющие пользователям изменять значения автозаполнения.
Рассмотрите возможность включения загрузки пружины. В системах с трекпадом Magic Trackpad пружинная загрузка позволяет активировать кнопку, перетаскивая на нее выбранные элементы и принудительно нажимая, то есть нажимая сильнее, не отпуская выбранные элементы. После принудительного нажатия люди могут продолжать перетаскивать элементы, возможно, для выполнения дополнительных действий.
Кнопки градиента
Кнопка градиента инициирует действие, связанное с представлением, например добавление или удаление строк в таблице.
Кнопки с градиентом содержат символы или значки интерфейса, а не текст, и их можно настроить так, чтобы они вели себя как нажимные кнопки, переключатели или всплывающие кнопки. Кнопки появляются в непосредственной близости от связанного с ними представления — обычно внутри или под ним — поэтому люди знают, на какое представление влияют кнопки.
Используйте кнопки градиента в представлении, а не в рамке окна. Кнопки градиента не предназначены для использования на панелях инструментов или в строках состояния. Если вам нужна кнопка на панели инструментов , используйте элемент панели инструментов.
Лучше использовать символ в кнопке градиента. SF Symbols предоставляет широкий спектр символов, которые автоматически получают соответствующую окраску в состоянии по умолчанию и в ответ на действия пользователя.
Избегайте использования меток для добавления кнопок градиента. Поскольку кнопки градиента тесно связаны с конкретным представлением, их назначение обычно понятно без описательного текста.
Руководство для разработчиков см . в статье NSBezelStyleSmallSquare .
Кнопки справки
Кнопка справки появляется в представлении и открывает справочную документацию по конкретному приложению.
Кнопки справки — это круглые кнопки одинакового размера со знаком вопроса. Руководство по созданию справочной документации см. в разделе Предложение помощи .
Используйте кнопку справки, предоставляемую системой, чтобы отобразить справочную документацию. Люди знакомы с внешним видом стандартной кнопки справки и знают, что при нажатии на нее открывается содержимое справки.
По возможности откройте раздел справки, связанный с текущим контекстом. Например, кнопка справки на панели «Правила» настроек Mail открывает Руководство пользователя Mail и раздел справки, в котором объясняется, как изменить эти настройки. Если никакой конкретный раздел справки не относится непосредственно к текущему контексту, откройте верхний уровень справочной документации вашего приложения, когда люди нажимают кнопку справки.
Включайте не более одной кнопки справки на окно. Несколько кнопок справки в одном и том же контексте затрудняют прогнозирование результата нажатия одной из них.
Разместите кнопки справки там, где люди ожидают их найти. Используйте следующие места для руководства.
Используйте кнопку справки в представлении, а не в рамке окна. Например, не размещайте кнопку справки на панели инструментов или в строке состояния.
Избегайте отображения текста, который представляет кнопку справки. Люди знают, что делает кнопка справки, поэтому им не нужен дополнительный описательный текст.
Кнопки изображения
Кнопка изображения появляется в представлении и отображает изображение, символ или значок интерфейса. Вы можете настроить кнопку изображения, чтобы она действовала как нажимная кнопка, переключатель или всплывающая кнопка.
Используйте кнопку изображения в представлении, а не в рамке окна. Например, не размещайте кнопку изображения на панели инструментов или в строке состояния. Если вам нужно использовать изображение в качестве кнопки на панели инструментов, используйте элемент панели инструментов. См . Панели инструментов .
Включите около 10 пикселей отступа между краями изображения и краями кнопки. Края кнопки изображения определяют ее активную область, даже если они не видны. Включение отступов гарантирует, что щелчок регистрируется правильно, даже если он находится не точно в пределах изображения. Как правило, избегайте включения системной рамки в кнопку изображения; руководство для разработчиков см . в разделе isBordered .
Если вам нужно добавить метку, поместите ее под кнопкой изображения. Дополнительные рекомендации см. в разделе Ярлыки .
watchOS
Предпочитайте кнопки, которые охватывают ширину экрана. Полноразмерные кнопки выглядят лучше и их легче нажимать. Если две кнопки должны иметь одно и то же горизонтальное пространство, используйте одинаковую высоту для обеих и используйте изображения или короткие текстовые заголовки для содержимого каждой кнопки.
Используйте одинаковую высоту для вертикальных стопок однострочных и двухстрочных текстовых кнопок. Насколько это возможно, используйте одинаковую высоту кнопок для визуальной согласованности.
Используйте заданный системой радиус скругления углов. Система определяет значения углового радиуса, которые обеспечивают единый визуальный стиль для всех приложений и усиливают интерактивность кнопок. В Apple Watch Series 4 и более поздних версиях значения углового радиуса различаются в зависимости от того, находится ли кнопка в представлении с прокруткой или без прокрутки.
В представлениях без прокрутки кнопки используют угловой радиус в 22 точки.
В представлениях с прокруткой кнопки используют угловой радиус в 9 точек.
Жесты сенсорного экрана
Жесты — это ключевой способ для людей взаимодействовать со своими устройствами с сенсорным экраном, выявляя тесную личную связь с контентом и усиливая ощущение непосредственного манипулирования объектами на экране.
Помимо использования сенсорного экрана, люди также могут использовать жесты с помощью таких устройств, как трекпад, мышь, пульт дистанционного управления или игровой контроллер. Например, люди могут использовать трекпад для взаимодействия со своим iPad или Mac, а игровой контроллер — для взаимодействия с iPhone, iPad, Mac и Apple TV. Руководство по вводу данных с этих устройств см. в разделах Указательные устройства , Пульты дистанционного управления и Игровые контроллеры .
Все устройства с сенсорным экраном используют основные жесты, такие как касание, пролистывание и перетаскивание. Некоторые платформы определяют дополнительные жесты; например, iOS и iPadOS поддерживают сведение и вращение. Когда вы включаете жесты сенсорного экрана в свой интерфейс, вам необходимо понимать поведение стандартных жестов каждой платформы, чтобы вы могли обеспечить знакомый и последовательный опыт.
Лучшие практики
Как правило, реагируйте на жесты так же, как и в других приложениях. Люди ожидают, что большинство жестов будут работать одинаково независимо от их текущего контекста. Например, люди ожидают, что жест щипка отрегулирует уровень масштабирования вида или масштабирует выбранный объект. Избегайте использования знакомого жеста для выполнения действия, уникального для вашего приложения; Точно так же избегайте создания уникального жеста для выполнения стандартного действия, такого как выбор кнопки или прокрутка длинного изображения.
Определяйте пользовательские жесты только при необходимости. Людям может быть трудно найти и запомнить нестандартный жест, а если его неудобно выполнять, люди могут не захотеть — или не иметь возможности — использовать его. Предпочитайте настраиваемые жесты в ситуация
х, когда ваше приложение предлагает захватывающий опыт, требующий контекстно-зависимых взаимодействий, например, в игре или приложении для рисования, или когда система не обрабатывает стандартный жест, например, сведение пальцев в watchOS или жест в сцена SpriteKit или SceneKit. Если вы решили определить собственный жест, убедитесь, что он:
- Легко обнаружить и выполнить
- Не слишком похоже на жесты, которые люди уже знают
- Не единственный способ выполнить важное действие в вашем приложении
Убедитесь, что жесты применяются к соответствующему содержимому. Как правило, жесты должны применяться к содержимому, с которым люди взаимодействуют в данный момент, например к выбранному элементу, активному представлению в окне или области поверх элемента, например к фотографии. Начните с использования положения пальцев, чтобы помочь вам определить наиболее специфический контент, которым люди, вероятно, манипулируют, и сделайте этот контент целью жеста. Если содержимое не реагирует на жест, рассмотрите возможность таргетинга на более высокие уровни содержимого и контейнеры.
Обрабатывайте жесты как можно более отзывчиво. Жесты расширяют возможности прямого манипулирования и обеспечивают немедленную обратную связь в реальном времени. Когда люди выполняют жест в вашем приложении, предоставьте обратную связь, которая поможет им предсказать его результаты и, при необходимости, сообщит о степени и типе движения, необходимого для выполнения действия.
Включите быстрые жесты, чтобы дополнить стандартные жесты, а не заменить их. Людям нужны простые, знакомые способы навигации и выполнения действий, даже если это означает пару лишних касаний. Например, в приложении, которое поддерживает навигацию по иерархии экранов, люди ожидают найти кнопку «Назад» на панели навигации, которая позволяет им вернуться к предыдущему экрану одним касанием. Чтобы ускорить это действие, многие приложения также предлагают жесты быстрого доступа, такие как смахивание от края экрана или окна, сохраняя при этом кнопку «Назад».
Старайтесь не мешать общесистемным жестам на краю экрана. В зависимости от устройства жесты на краю экрана могут обеспечивать доступ к главному экрану, переключателю приложений, Центру уведомлений, Центру управления и Dock. Люди полагаются на эти жесты, чтобы работать в каждом приложении. В редких случаях иммерсивному приложению, такому как игра, могут потребоваться специальные жесты на краю экрана, которые имеют приоритет над жестами системы. В этом редком сценарии игра может использовать поведение, называемое защитой краев , при котором первое смахивание вызывает жест, специфичный для приложения, а второе смахивание вызывает системный жест. Если вам необходимо включить настраиваемые жесты на краю экрана, используйте защиту края экономно, потому что люди должны выполнить второй жест, прежде чем они смогут получить доступ к действиям на уровне системы. Руководство для разработчиков см.PreferenceScreenEdgesDeferringSystemGestures свойство UIViewController .
Стандартные жесты
Соображения по поводу платформы
Не поддерживается в macOS или tvOS.
iOS, iPadОС
Рассмотрите возможность одновременного распознавания нескольких жестов, если это повышает удобство работы. Хотя одновременные жесты вряд ли будут полезны в неигровых приложениях, игра может включать в себя несколько экранных элементов управления, таких как джойстик и кнопки запуска, которыми люди могут управлять одновременно. Инструкции по интеграции ввода с сенсорного экрана с вводом Apple Pencil в приложении для iPadOS см. в разделе Apple Pencil и Scribble .
watchOS
Рассмотрите альтернативы длительному нажатию. В версиях watchOS до watchOS 7 люди могли сильно нажимать на дисплей, чтобы выполнять такие действия, как изменение циферблата или открытие скрытого меню, называемого меню Force Touch. В watchOS 7 и более поздних версиях системные приложения делают ранее скрытые элементы меню доступными на соответствующем экране или экране настроек. Если раньше вы поддерживали жест долгого нажатия для открытия скрытого меню, рассмотрите возможность перемещения элементов меню в другое место. Руководство см. в разделе Меню .
Дизайн для iPadOS
Люди ценят мощность, мобильность и гибкость iPad, поскольку они наслаждаются мультимедиа, играют в игры, выполняют сложные задачи по повышению производительности и воплощают свои творения в жизнь.
Приступая к разработке приложения или игры для iPad, начните с понимания следующих основных характеристик устройства и шаблонов, отличающих iPadOS. Использование этих характеристик и шаблонов для информирования ваших дизайнерских решений может помочь вам создать приложение или игру, которые оценят пользователи iPad.
Отображать. iPad имеет большой дисплей с высоким разрешением.
Эргономика. Люди часто держат свой iPad во время его использования, но они также могут положить его на поверхность или поставить на подставку. Размещение устройства по-разному может изменить расстояние просмотра, хотя люди обычно находятся в пределах 3 футов от устройства, когда они взаимодействуют с ним.
Входы. Люди могут взаимодействовать с iPad, используя жесты Multi-Touch и экранную клавиатуру , подключенную клавиатуру или указывающее устройство , Apple Pencil или голос , и они часто сочетают несколько режимов ввода.
Взаимодействие приложений. Иногда люди выполняют несколько быстрых действий на своем iPad. В другое время они проводят часы, погруженные в игры, мультимедиа, создание контента или задачи по повышению производительности. Люди часто имеют несколько приложений, открытых одновременно, и им нравится просматривать более одного приложения на экране одновременно и использовать возможности между приложениями, такие как перетаскивание.
Особенности системы. iPadOS предоставляет несколько функций, которые помогают людям взаимодействовать с системой и их приложениями привычными и последовательными способами.
Лучшие практики
Отличные возможности iPad объединяют возможности платформы и устройства, которые люди ценят больше всего. Чтобы вы чувствовали себя в iPadOS как дома, расставьте приоритеты для следующих способов включения этих функций и возможностей.
- Воспользуйтесь преимуществом большого дисплея, чтобы поднять интересующий людей контент на новый уровень, минимизировав модальные интерфейсы и полноэкранные переходы, а также расположив элементы управления на экране там, где они легко доступны, но не мешают.
- Используйте расстояние просмотра и режим ввода, чтобы определить размер и плотность отображаемого на экране содержимого.
- Позвольте людям использовать жесты Multi-Touch, физическую клавиатуру или трекпад или Apple Pencil, а также рассмотрите возможность включения уникальных взаимодействий, сочетающих несколько режимов ввода.
- Плавно адаптируйтесь к изменениям внешнего вида, таким как ориентация устройства, режимы многозадачности, темный режим и динамический тип, и без особых усилий переходите к работе в macOS, позволяя людям выбирать наиболее подходящие для них конфигурации.
Дополненная реальность
Дополненная реальность (или AR) позволяет создавать захватывающий и увлекательный опыт, в котором виртуальные объекты органично сочетаются с реальным миром.
Используя камеру устройства для представления физического мира на экране в режиме реального времени, ваше приложение накладывает трехмерные виртуальные объекты, создавая иллюзию того, что эти объекты действительно существуют. В зависимости от того, что предлагает ваше приложение, люди могут переориентировать устройство, чтобы исследовать объекты под разными углами, взаимодействовать с объектами с помощью жестов и движений и даже присоединяться к другим людям в многопользовательском AR-приложении. Руководство для разработчиков см . в ARKit .
Предлагайте функции дополненной реальности только на совместимых устройствах. Если основной целью вашего приложения является дополненная реальность, сделайте его доступным только для устройств, поддерживающих ARKit. Если ваше приложение включает в себя функции, для которых требуются определенные возможности дополненной реальности, или если функции дополненной реальности являются необязательными в вашем приложении, не показывайте людям сообщение об ошибке, если они попытаются использовать эти функции на устройстве, которое их не поддерживает; вместо этого просто избегайте предлагать эту функцию на неподдерживаемом устройстве. Инструкции для разработчиков см. в разделе Проверка поддержки устройств и разрешения пользователя .
Создание увлекательного и комфортного опыта
Пусть люди используют весь дисплей. Посвятите как можно большую часть экрана отображению физического мира и виртуальных объектов вашего приложения. Старайтесь не загромождать экран элементами управления и информацией, которые уменьшают эффект погружения.
Стремитесь к убедительным иллюзиям при размещении реалистичных объектов. Создавайте детализированные 3D-активы с реалистичными текстурами, чтобы создавать объекты, которые, кажется, обитают в физической среде, в которую вы их помещаете. Используя информацию из ARKit, вы можете правильно масштабировать объекты и размещать их на обнаруженных реальных поверхностях, отражать условия освещения окружающей среды и имитировать зернистость камеры, отбрасывать рассеянные тени от объектов сверху вниз на реальные поверхности и обновлять визуальные эффекты при изменении положения камеры. . Чтобы не разрушить созданную вами иллюзию, убедитесь, что ваше приложение обновляет сцены 60 раз в секунду, чтобы объекты не прыгали и не мерцали.
Подумайте, как виртуальные объекты с отражающими поверхностями отображают окружающую среду. Отражения в ARKit — это приближения, основанные на окружающей среде, снятой камерой. Чтобы поддерживать иллюзию реальности дополненной реальности, отдайте предпочтение небольшим или грубым отражающим поверхностям, которые преуменьшают эффект этих приближений.
Используйте аудио и тактильные ощущения, чтобы усилить эффект погружения. Звуковой эффект или ощущение удара — отличный способ подтвердить, что виртуальный объект вступил в контакт с физической поверхностью или другим виртуальным объектом. Фоновая музыка также может помочь погрузить людей в виртуальный мир. Инструкции см . в разделах Воспроизведение аудио и Воспроизведение тактильных ощущений .
Минимизируйте текст в окружении. Отображайте только ту информацию, которая нужна людям для работы с вашим приложением.
Если необходима дополнительная информация или элементы управления, рассмотрите возможность их отображения в пространстве экрана. Контент в пространстве экрана отображается фиксированным в постоянном месте либо в виртуальном мире, либо, что реже, на экране устройства. Обычно людям легко находить и просматривать контент в пространстве экрана, потому что он остается неподвижным, в то время как базовая среда AR перемещается вместе с устройством.
Рассмотрите возможность использования косвенных элементов управления, если вам необходимо обеспечить постоянные элементы управления. Косвенные элементы управления не являются частью виртуальной среды — вместо этого они представляют собой 2D-элементы управления, отображаемые в пространстве экрана. Если людям нужен доступ к постоянным элементам управления в вашем приложении, подумайте о том, чтобы разместить элементы управления так, чтобы им не приходилось менять способ удержания устройства, чтобы добраться до них. Кроме того, рассмотрите возможность использования полупрозрачности в непрямом элементе управления, чтобы избежать блокировки основной сцены. Например, приложение «Измерение» использует пространство экрана для отображения сочетания полупрозрачных и непрозрачных элементов управления, которые люди используют для измерения объектов в реальном мире.
Ожидайте, что люди будут использовать ваше приложение в самых разных реальных средах. Люди могут открыть ваше приложение в месте, где мало места для передвижения или нет больших плоских поверхностей. Четко сообщайте требования и ожидания вашего приложения людям заранее, чтобы помочь им понять, как их физическая среда может повлиять на их работу с дополненной реальностью. Вы также можете предложить разные наборы функций для использования в разных средах.
Помните о комфорте людей. Длительное удержание устройства на определенном расстоянии или под определенным углом может быть утомительным. Чтобы избежать утомления, рассмотрите возможность размещения объектов на расстоянии, уменьшающем необходимость приближать устройство к объекту; в игре подумайте о том, чтобы уровни были короткими и чередовались с короткими периодами простоя.
Если ваше приложение побуждает людей двигаться, вводите движение постепенно. Например, вы можете не заставлять людей уклоняться от виртуального снаряда, как только они входят в вашу AR-игру. Дайте людям время адаптироваться к AR в вашем приложении, а затем постепенно поощряйте движение.
Помните о безопасности людей. Когда люди погружаются в AR-опыт, они не обязательно осознают свое физическое окружение, поэтому быстрые, размашистые или широкие движения могут быть опасны. Подумайте о том, как сделать ваше приложение безопасным для работы; например, в игре можно избежать поощрения крупных или внезапных движений.
Использование коучинга для начала работы
Прежде чем люди смогут насладиться возможностями дополненной реальности в вашем приложении, им необходимо переместить свое устройство таким образом, чтобы ARKit мог оценивать окружение и обнаруживать поверхности. В iOS 13 и более поздних версиях вы можете использовать встроенное представление обучения, чтобы показать людям, что делать, и оставить отзыв во время процесса инициализации. Вы также можете использовать режим обучения, чтобы помочь людям повторно инициализировать AR — процесс, известный как перемещение — после того, как взаимодействие с AR было прервано, например, из-за того, что люди ненадолго переключились на другое приложение. Инструкции по перемещению см. в разделе Обработка прерываний ; руководство для разработчиков см . в разделе ARCoachingOverlayView .
Скройте ненужный пользовательский интерфейс приложения, пока люди используют режим обучения. По умолчанию представление обучения появляется автоматически при запуске инициализации или перемещения, поэтому вы должны быть готовы скрыть несвязанный пользовательский интерфейс, чтобы помочь людям сосредоточиться на инструкциях представления обучения.
При необходимости предложите индивидуальный коучинг. Хотя вы можете настроить предоставляемый системой обучающий вид, чтобы помочь людям предоставлять конкретную информацию, например обнаружение горизонтальной или вертикальной плоскости, вам может потребоваться дополнительная информация или вы захотите использовать другой визуальный стиль. Если вы хотите разработать индивидуальную программу обучения, используйте предоставленное системой представление обучения для справки.
Помогать людям размещать предметы
Покажите людям, когда нужно найти поверхность и разместить объект. Вы можете использовать предоставляемый системой обучающий вид, чтобы помочь людям найти горизонтальную или вертикальную плоскую поверхность, на которую можно поместить объект. После того как ARKit обнаружит поверхность, ваше приложение может отображать настраиваемый визуальный индикатор, показывающий, когда возможно размещение объекта. Вы можете помочь людям понять, как размещенный объект будет выглядеть в окружающей среде, совместив индикатор с плоскостью обнаруженной поверхности.
Когда люди размещают объект, немедленно интегрируйте этот объект в среду AR. Хотя обнаружение поверхности быстро и постепенно повышает точность, лучше не ждать более точных данных перед размещением объекта. Используйте доступную информацию, чтобы мгновенно реагировать, когда люди помещают объект; затем, когда обнаружение поверхности завершено, при необходимости слегка уточните положение объекта. Например, если люди помещают объект за пределы обнаруженной поверхности, осторожно подтолкните объект обратно на поверхность. Руководство для разработчиков по уточнению положения объекта см . в статье ARTrackedRaycast .
Подумайте о том, чтобы направлять людей к виртуальным объектам за кадром. Иногда людям может быть трудно найти объект, расположенный за кадром. В этом случае вы можете помочь людям найти такие объекты, предлагая визуальные или звуковые подсказки. Например, если объект находится за пределами экрана слева, вы можете отобразить индикатор вдоль левого края экрана, который поможет людям направить камеру в этом направлении.
Не пытайтесь точно выровнять объекты по краям обнаруженных поверхностей. В дополненной реальности границы поверхности — это приблизительные значения, которые могут меняться по мере дальнейшего анализа окружения людей.
Включите информацию о классификации плоскостей, чтобы сообщить о размещении объекта. Например, разрешите размещать виртуальный предмет мебели только на плоскости, которая классифицируется как «пол», или требуйте, чтобы плоскость была классифицирована как «стол», чтобы разместить виртуальную игровую доску.
Проектирование интуитивно понятных, восхитительных взаимодействий с объектами
Пусть люди используют прямую манипуляцию для взаимодействия с объектами, когда это возможно. Это более захватывающе и интуитивно понятно, когда люди могут взаимодействовать с 3D-объектами на экране, касаясь их напрямую, а не с помощью непрямых элементов управления в пространстве экрана. Однако в ситуациях, когда люди перемещаются, используя ваше приложение, косвенные элементы управления могут работать лучше.
Позвольте людям напрямую взаимодействовать с виртуальными объектами, используя стандартные знакомые жесты. Например, рассмотрите возможность поддержки жеста перетаскивания одним пальцем для движущихся объектов и жеста поворота двумя пальцами для вращающихся объектов. Инструкции см. в разделе Жесты сенсорного экрана .
В общем, делайте взаимодействие простым. Сенсорные жесты по своей сути двухмерны, но опыт дополненной реальности включает в себя три измерения реального мира. Рассмотрим следующие подходы к упрощению взаимодействия пользователя с виртуальными объектами.
Реагируйте на жесты в разумной близости от интерактивных виртуальных объектов. Людям может быть трудно быть точным, стремясь коснуться определенных точек на маленьких, тонких или расположенных на расстоянии объектах. Когда ваше приложение обнаруживает жест рядом с интерактивным объектом, обычно лучше предположить, что люди хотят воздействовать на этот объект.
Поддерживайте масштабирование объектов, инициируемое пользователем, когда это имеет смысл в вашем приложении. Например, если ваше приложение позволяет людям исследовать воображаемую среду, вероятно, имеет смысл поддерживать масштабирование объектов, поскольку вашему приложению не нужно представлять реальный мир. С другой стороны, если ваше приложение помогает покупателям принять решение о покупке мебели, разрешение людям масштабировать объект стула не поможет им визуализировать, как стул будет выглядеть в комнате.
Будьте осторожны с потенциально конфликтующими жестами. Например, жест сжатия двумя пальцами похож на жест вращения двумя пальцами. Если вы реализуете два подобных жеста, обязательно протестируйте свое приложение и убедитесь, что они правильно интерпретируются.
Стремитесь к движению виртуальных объектов, которое соответствует физике среды дополненной реальности вашего приложения. Люди не обязательно ожидают, что объект будет плавно двигаться по шероховатой или неровной поверхности, но они ожидают, что объекты останутся видимыми во время движения. Старайтесь, чтобы движущиеся объекты были прикреплены к реальным поверхностям, и избегайте того, чтобы объекты прыгали или исчезали и снова появлялись, когда люди изменяют их размер, поворачивают или перемещают.
Исследуйте еще более привлекательные методы взаимодействия. Жесты — не единственный способ взаимодействия людей с виртуальными объектами в AR. Ваше приложение может использовать другие факторы, такие как движение и близость, чтобы оживить контент. Например, игровой персонаж может повернуть голову, чтобы посмотреть на человека, который идет к нему.
Разработка отличного многопользовательского опыта
Когда несколько человек делятся опытом вашего приложения с дополненной реальностью, каждый участник отображает среду независимо, и ARKit автоматически объединяет карты. Руководство для разработчиков см. в разделе isCollaborationEnabled .
Рассмотрите возможность включения окклюзии людей. Если ваше приложение поддерживает размещение виртуальных объектов позади людей, которые появляются в кадре с камеры устройства, усильте иллюзию реальности, позволив людям перекрывать объекты. Руководство для разработчиков см . в разделе Перекрывание виртуального контента людьми .
По возможности позволяйте новым участникам входить в многопользовательский режим дополненной реальности. Если ваше приложение не требует, чтобы все участники присоединялись до начала взаимодействия, рассмотрите возможность использования неявного слияния карт, чтобы новые люди могли быстро присоединиться к продолжающемуся взаимодействию с дополненной реальностью. Руководство для разработчиков см. в разделе isCollaborationEnabled .
Реакция на объекты реального мира
Вы можете улучшить взаимодействие с дополненной реальностью, используя известные изображения и объекты в реальной среде, чтобы инициировать появление виртуального контента. Например, приложение, которое распознает театральные афиши научно-фантастического фильма, может заставить виртуальные космические корабли появляться из афиш и летать по окружающей среде. Другой пример — приложение для художественного музея, которое представляет виртуального гида, когда распознает скульптуру. Чтобы использовать подобные возможности, ваше приложение предоставляет набор эталонных 2D-изображений или эталонных 3D-объектов, а ARKit указывает, когда и где он обнаруживает любой из этих элементов в текущей среде. Руководство для разработчиков см. в разделе Распознавание изображений в дополненной реальности .
Когда обнаруженное изображение впервые исчезает, подумайте о том, чтобы отложить удаление виртуальных объектов, прикрепленных к нему. ARKit не отслеживает изменения положения или ориентации каждого обнаруженного изображения. Чтобы предотвратить мерцание виртуальных объектов, подождите до одной секунды, прежде чем затухать или удалять их.
Ограничьте количество эталонных изображений, используемых одновременно. Производительность обнаружения изображений работает лучше всего, когда ARKit ищет 100 или меньше различных изображений в реальной среде. Если вам нужно более 100 эталонных изображений, вы можете изменить набор активных эталонных изображений в зависимости от контекста. Например, приложение-путеводитель по музею может запрашивать разрешение на использование служб определения местоположения, чтобы определить, в какой части музея находится человек, а затем искать только изображения, отображаемые в этой области.
Ограничьте количество эталонных изображений, требующих точного положения. Обновление положения эталонного изображения требует больше ресурсов. Используйте отслеживаемое изображение, если оно может перемещаться в окружающей среде или когда прикрепленная анимация или виртуальный объект малы по сравнению с размером изображения.
Общение с людьми
Если вам необходимо отобразить обучающий текст, используйте доступную терминологию. AR — это продвинутая концепция, которая может пугать некоторых людей. Чтобы сделать его доступным, избегайте использования технических терминов, таких как ARKit, обнаружение мира и отслеживание. Вместо этого используйте дружеские разговорные термины, понятные большинству людей.
В трехмерном контексте предпочитайте трехмерные подсказки. Например, размещение индикатора трехмерного вращения вокруг объекта более интуитивно понятно, чем отображение текстовых инструкций в двухмерном наложении. Избегайте отображения текстовых наложенных подсказок в 3D-контексте, если только люди не реагируют на контекстные подсказки.
Сделайте важный текст читабельным. Используйте пространство экрана для отображения текста, используемого для важных меток, аннотаций и инструкций. Если вам нужно отобразить текст в трехмерном пространстве, убедитесь, что текст обращен к людям, и что вы используете один и тот же размер шрифта независимо от расстояния между текстом и помеченным объектом.
При необходимости укажите способ получения дополнительной информации. Создайте визуальный индикатор, который соответствует вашему опыту работы с приложением, чтобы показать людям, что они могут нажать для получения дополнительной информации.
Обработка прерываний
ARKit не может отслеживать положение и ориентацию устройства во время прерывания, например, когда люди ненадолго переключаются на другое приложение или принимают телефонный звонок. После того, как прерывание закончится, ранее размещенные виртуальные объекты, скорее всего, появятся в неправильных позициях реального мира. Когда вы включаете релокализацию, ARKit пытается восстановить эти виртуальные объекты в их исходное положение в реальном мире, используя новую информацию. Руководство для разработчиков см. в разделе Управление жизненным циклом сеанса и качеством отслеживания .
Рассмотрите возможность использования предоставляемого системой представления обучения, чтобы помочь людям переехать. Во время перемещения ARKit пытается согласовать свое предыдущее состояние с новыми наблюдениями за текущей средой. Чтобы включить эти наблюдения, вы можете использовать режим обучения, чтобы помочь людям вернуть устройство в прежнее положение и ориентацию.
Рассмотрите возможность скрытия ранее размещенных виртуальных объектов во время релокализации. Чтобы избежать мерцания или других неприятных визуальных эффектов во время перемещения, лучше всего скрыть виртуальные объекты и повторно отобразить их на новом месте.
Сведите к минимуму прерывания, если ваше приложение поддерживает как дополненную, так и не дополненную реальность. Один из способов избежать прерываний — встроить опыт, не связанный с дополненной реальностью, в опыт дополненной реальности, чтобы люди могли выполнять задачу, не выходя из дополненной реальности и не входя в нее снова. Например, если ваше приложение помогает людям принять решение о покупке мебели, разместив ее в комнате, вы можете позволить им поменять обивку, не выходя из AR-интерфейса.
Разрешить людям отменять перемещение. Если люди не размещают и не ориентируют свое устройство рядом с тем местом, где оно было до прерывания, перемещение будет продолжаться бесконечно безуспешно. Если обучение людей возобновлению их сеанса не увенчалось успехом, рассмотрите возможность предоставления кнопки сброса или другого способа перезапустить работу с дополненной реальностью.
Указывает, когда фронтальная камера не может отслеживать лицо более полусекунды. Используйте визуальный индикатор, чтобы показать, что камера больше не может отслеживать лицо человека. Если вам необходимо предоставить текстовые инструкции в этой ситуации, сведите их к минимуму.
Предложение способов решения проблем
Позвольте людям сбросить опыт, если он не соответствует их ожиданиям. Не заставляйте людей ждать улучшения условий или бороться с размещением объектов. Дайте им возможность начать сначала и посмотрите, будут ли у них лучшие результаты.
Предложите возможные исправления, если возникнут проблемы. Анализ реальной среды и обнаружение поверхности могут завершиться неудачно или занять слишком много времени по разным причинам: недостаточное освещение, чрезмерно отражающая поверхность, поверхность без достаточной детализации или слишком сильное движение камеры. Если ваше приложение уведомлено об этих проблемах, используйте простой и понятный язык, чтобы предложить варианты их решения.
Значок дополненной реальности
Приложения могут отображать значок AR в элементах управления, которые запускают возможности на основе ARKit. Вы можете скачать этот значок в Ресурсах .
Используйте глиф AR по назначению. Этот глиф следует использовать исключительно для запуска опыта на основе ARKit. Никогда не изменяйте глиф (кроме настройки его размера и цвета), не используйте его для других целей или не используйте вместе с элементами дополненной реальности, созданными не с помощью ARKit.
Сохраняйте минимальное свободное пространство. Минимальное свободное пространство, необходимое вокруг глифа дополненной реальности, составляет 10 % от высоты глифа. Не позволяйте другим элементам вторгаться в это пространство или каким-либо образом загораживать глиф.
Значки дополненной реальности
Приложения, включающие коллекции продуктов или других объектов, могут использовать значки для идентификации определенных элементов, которые можно просматривать в дополненной реальности с помощью ARKit. Например, приложение универмага может использовать значок для обозначения мебели, которую люди могут предварительно просмотреть у себя дома, прежде чем совершить покупку.
Используйте значки AR по назначению и не изменяйте их. Вы можете загрузить значки AR, доступные в свернутом и развернутом виде, в Ресурсах . Используйте эти изображения исключительно для идентификации продуктов или других объектов, которые можно просматривать в дополненной реальности с помощью ARKit. Никогда не изменяйте значки, не меняйте их цвет, не используйте их для других целей и не используйте вместе с приложениями дополненной реальности, созданными не с помощью ARKit.
Предпочитайте значок дополненной реальности значку, состоящему только из глифов. Как правило, используйте значок только с глифами для ограниченных пространств, которые не могут вместить значок AR. Оба значка хорошо работают в своем размере по умолчанию.
Используйте значки только в том случае, если ваше приложение содержит смесь объектов, которые можно просматривать в AR, и объекты, которые не могут. Если все объекты в вашем приложении можно просматривать в AR, то бейджинг излишен.
Следите за тем, чтобы значки размещались последовательно и четко. Значок выглядит лучше всего, когда отображается в одном углу фотографии объекта. Всегда размещайте его в одном и том же углу и убедитесь, что он достаточно большой, чтобы его было хорошо видно (но не настолько большой, чтобы он закрывал важные детали на фотографии).
Сохраняйте минимальное свободное пространство. Минимальное свободное пространство, необходимое вокруг значка дополненной реальности, составляет 10 % от высоты значка. Другие элементы не должны нарушать это пространство и каким-либо образом загораживать бейдж.