Статьи

Тактильная обратная связь в iOS 10

Тактильная обратная связь добавляет совершенно новое измерение к взаимодействию мобильных пользователей. Узнайте, как использовать новые API тактильной обратной связи iPhone 7, чтобы предоставить своим пользователям тактильный ответ.

В iOS 10 у нас появился новый API для обратной связи с пользователем. Тактильная обратная связь — это расширение визуальной обратной связи, к которой уже привык каждый пользователь. Если у вас iPhone 7 или iPhone 7 Plus, возможно, вы заметили небольшую вибрацию устройства при прокрутке выбора даты или при изменении значения переключателя — это тактильная обратная связь. Новый класс UIFeedbackGenerator можно использовать для реализации того же поведения в ваших приложениях.

Первое правило тактильной обратной связи от Руководства по интерфейсу пользователя iOS : не злоупотребляйте им! Вы не должны отправлять бесполезные отзывы своим пользователям. Если вы это сделаете, они могут решить отключить эту функцию для всего своего устройства. Поскольку его можно отключить, не используйте тактильный отзыв в качестве единственного метода обратной связи с вашим пользователем. Он может быть недоступен на некоторых устройствах, и запросы будут автоматически игнорироваться на старых устройствах, которые его не поддерживают.

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

Наконец, если вы хотите воспроизводить звук одновременно, вам следует позаботиться о его синхронизации.

В документе Apple « Что нового в iOS 10» указано, что следует использовать один из следующих трех конкретных классов:

  • UIImpactFeedbackGenerator предоставляет физическую метафору, которая дополняет визуальный опыт. Например, пользователь может почувствовать глухой удар, когда вид сдвигается на место или два объекта сталкиваются. Он имеет три варианта: успех , предупреждение и неудача .
  • UINotificationFeedbackGenerator указывает, что задача или действие, такое как UINotificationFeedbackGenerator чека или разблокировка транспортного средства, завершили, не выполнили или выдало предупреждение. Он имеет три варианта: легкий , средний и тяжелый .
  • UISelectionFeedbackGenerator указывает, что выбор активно меняется. Например, пользователь чувствует легкие нажатия во время прокрутки колесика выбора. Эта обратная связь предназначена для передачи движения через ряд дискретных значений, а не для выбора или подтверждения выбора.

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

Моделирование типа тактильной обратной связи

Теперь давайте начнем кодировать! Мы собираемся создать очень простое приложение для iOS, которое дает успешную обратную связь при нажатии кнопки. Откройте Xcode 8 и создайте новый проект iOS.

Добавьте кнопку в свой файл раскадровки и создайте IBAction для запуска обратной связи.

Сообщение об успешном запуске уведомления

Жизненный цикл генератора обратной связи выглядит так:

  1. Создайте генератор.
  2. Подготовьте генератор (опционально).
  3. Триггер обратной связи.
  4. Отпустите генератор (необязательно).

Я проведу вас через каждый из этих шагов ниже.

Сначала объявите новую переменную типа UINotificationFeedbackGenerator . Если вы хотите использовать другой тип обратной связи, просто измените этот класс.

1
var feedbackGenerator: UINotificationFeedbackGenerator?

Инициализируйте генератор в viewDidLoad :

1
2
3
4
override func viewDidLoad() {
    super.viewDidLoad()
    feedbackGenerator = UINotificationFeedbackGenerator() // Instantiate the generator.
}

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

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

1
2
3
@IBAction func triggerNotification(_ sender: UIButton) {
    feedbackGenerator?.notificationOccurred(.success) // Trigger the haptic feedback.
}

Мы объявили генератор необязательным, чтобы в случае, если он нам больше не нужен, мы могли установить его nil для освобождения всех его ресурсов. Это необязательный шаг.

В настоящее время нет способа проверить тактильную обратную связь в симуляторе . Вы должны получить в свои руки iPhone 7 и проверить работу приложения с новой системой обратной связи в действии. Запустите приложение на своем iPhone 7 и нажмите кнопку на экране. Вы должны чувствовать обратную связь успеха!

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

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

А пока ознакомьтесь с некоторыми другими нашими курсами и учебными пособиями по разработке приложений Swift и новым функциям в iOS 10.

  • Обновите ваше приложение до iOS 10

  • iOS 10: создание пользовательских интерфейсов уведомлений

  • Основные данные стали лучше

  • Создание приложений для iOS с Swift 3