Бөлісу құралы:


Методы быстрого взаимодействия для watchOS 3 в Xamarin

В этой статье рассматриваются методы быстрого взаимодействия Apple, добавленные в watchOS 3 и как реализовать их в Xamarin.iOS для Apple Watch.

Обеспечение быстрого взаимодействия с пользователем важно для создания убедительных приложений Apple Watch и осложнений. Новые возможности для просмотраOS 3, Apple добавила поддержку распознавителей жестов, доступ к цифровой короне и новым методам уведомлений пользователей и навигации. Это, а также добавленная поддержка Как Для СценКит, так и SpriteKit, позволяет разработчику легко создавать широкие и понятные интерфейсы, которые являются быстрыми и адаптивными.

Что такое быстрые взаимодействия

Для разработчика, который используется для создания приложений для iOS или macOS (где время, которое пользователь тратит на взаимодействие с приложением в минутах или часах), проектирование успешного приложения для Apple Watch может быть проблемой и требует другого подхода.

В watchOS пользователь обычно хочет поднять запястье, быстро взаимодействовать с приложением (обычно в течение короткой пары секунд), а затем удалить запястье и продолжить то, что они делали.

Ниже приведены несколько примеров типичных быстрых взаимодействий в Apple Watch:

  • Запуск таймера.
  • Проверка погоды.
  • Пометка элемента из списка дел.

Чтобы достичь этих целей, приложение в Apple Watch должно быть следующим:

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

Длина быстрого взаимодействия

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

Новые функции и API-интерфейсы watchOS 3

Apple добавила несколько новых функций и API в WatchKit, чтобы помочь разработчику в добавлении быстрых взаимодействий в свои приложения Apple Watch:

  • WatchOS 3 предоставляет доступ к новым типам входных данных пользователей, например:
    • Распознаватели жестов
    • Поворот цифровой короны
  • WatchOS 3 предоставляет новые способы отображения и обновления информации, например:
    • Улучшенная навигация по таблицам
    • Поддержка новой платформы уведомлений пользователей
    • Интеграция SpriteKit и SceneKit

Реализуя эти новые функции, разработчик может убедиться, что их приложение watchOS 3 является кратким, интерактивным и адаптивным.

Поддержка распознавателя жестов

Если разработчик реализовал распознаватели жестов в iOS, они должны быть очень знакомы с тем, как распознавтели жестов работают в watchOS 3. Для обновления распознаватели жестов — это объекты, которые анализируют события сенсорного ввода низкого уровня в распознаваемые предварительно определенные жесты.

WatchOS 3 будет поддерживать четыре следующих распознавателя жестов:

  • Дискретные типы жестов:
    • Жест прокрутки (WKSwipeGestureRecognizer).
    • Жест касания (WKTapGestureRecognizer).
  • Типы непрерывных жестов:
    • Жест сдвига (WKPanGestureRecognizer).
    • Жест длинного нажатия (WKLongPressGestureRecognizer).

Чтобы реализовать один из новых распознавателей жестов, просто перетащите его в представление в конструкторе интерфейсов Xcode и настройте его свойства.

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

Дискретные состояния жестов

Для дискретных жестов действие вызывается, когда жест распознается, а состояние (WKGestureRecognizerState) назначается следующим образом:

Дискретные состояния жестов

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

Состояния непрерывного жеста

Непрерывные жесты немного отличаются от дискретных жестов, где действие вызывается несколько раз при распознавании жеста:

Состояния непрерывного жеста

Опять же, непрерывные жесты начинаются в Possible состоянии, но они выполняются над несколькими обновлениями. Здесь разработчику потребуется рассмотреть состояние распознавателя и обновить пользовательский интерфейс приложения на Changed этапе, пока жест не будет окончательно Recognized или Canceled.

Использование распознавателя жестов Советы

Apple предлагает следующее при работе с распознавателями жестов в watchOS 3:

  • Добавьте распознаватели жестов в элементы группы вместо отдельных элементов управления. Так как Apple Watch имеет меньший физический размер экрана, элементы группы, как правило, больше и проще целевых объектов для пользователя. Кроме того, распознаватели жестов могут конфликтуть со встроенными жестами, уже имеющимися в собственных элементах управления пользовательского интерфейса.
  • Задайте связи зависимостей в раскадровки приложения наблюдения.
  • Некоторые жесты имеют приоритет над другими типами жестов, такими как:
    • Прокрутка
    • Принудительное касание

Смена цифровой короны

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

Так как watchOS 2 приложение Apple Watch может использовать WKInterfacePicker объект для доступа к Цифровой короне, предоставив список и стиль выбора (список WKPickerItems , стек или последовательность изображений). Затем watchOS позволил пользователю использовать цифровую корону для выбора элемента из списка.

При использовании WatchKit обрабатывает большую WKInterfacePickerчасть работы:

  • Рисование списка и отдельных элементов интерфейса.
  • Обработка событий Цифровой короны.
  • Вызов действия при выборе элемента.

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

Доступ к цифровой короне предоставляется следующими элементами:

  • WKCrownSequencer — предоставляет доступ к поворотам в секунду.
  • WKCrownDelegate — предоставляет доступ к событиям смены разностных событий.

Повороты в секунду

Доступ к поворотам в секунду из цифровой короны полезен при работе с анимациями на основе физики. Чтобы получить доступ к поворотам в секунду, используйте CrownSequencer свойство WKInterfaceController расширения watch. Например:

var rotationsPerSecond = CrownSequencer.RotationsPerSecond;

Сменные разностные данные

Используйте разностные значения поворота из цифровой короны, чтобы подсчитать количество поворотов. CrownDidRotate Используйте метод WKCrownDelegate переопределения для доступа к сменным разностям. Например:

using System;
using WatchKit;
using Foundation;

namespace MonkeyWatch.MonkeySeeExtension
{
  public class CrownDelegate : WKCrownDelegate
  {
    #region Computed Properties
    public double AccumulatedRotations { get; set;}
    #endregion

    #region Constructors
    public CrownDelegate ()
    {
    }
    #endregion

    #region Override Methods
    public override void CrownDidRotate (WKCrownSequencer crownSequencer, double rotationalDelta)
    {
      base.CrownDidRotate (crownSequencer, rotationalDelta);

      // Accumulate rotations
      AccumulatedRotations += rotationalDelta;
    }
    #endregion
  }
}

Здесь приложение поддерживает накопительный элемент (AccumulatedRotations), чтобы определить количество поворотов. Одна полная смена цифровой короны равна накопленным разностным 1.0 с половиной поворота 0.5.

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

Знак (+/-) вращающегося разностного значения указывает направление, в которое пользователь обращается к Цифровой короне:

Знак вращающейся дельты указывает направление, в которое пользователь обращает цифровую корону.

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

Фокус цифровой короны

Как и любые другие элементы интерфейса, Digital Crown имеет концепцию Focus. Этот фокус можно сместить с Цифровой короны на другие элементы интерфейса на основе того, как пользователь взаимодействует с часовой связью.

Например, любой из следующих элементов управления может украсть фокус цифровой короны:

  • Picker
  • Ползунок
  • Контроллер прокрутки

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

Вертикальное разбиение по страницам

Стандартным способом перехода пользователя в представление таблицы в приложении watchOS является прокрутка до нужного фрагмента данных, коснитесь определенной строки, чтобы отобразить подробное представление, коснитесь кнопки "Назад", когда закончите просмотр сведений и повторите процесс для любых других сведений, которые они интересуют из таблицы:

Перемещение между таблицей и представлением сведений

Новые возможности для просмотраOS 3 разработчик может включить вертикальное разбиение на страницы в элементах управления "Представление таблиц". С включенной функцией пользователь может прокрутить строку табличного представления и коснитесь строки, чтобы просмотреть ее подробные сведения, как и раньше. Однако теперь они могут провести пальцем вверх, чтобы выбрать следующую строку в таблице или вниз, чтобы выбрать предыдущую строку (или использовать цифровую корону), все без необходимости сначала вернуться в представление таблицы:

Перемещение между таблицей и представлением сведений и прокруткой вверх и вниз для перемещения между другими строками

Чтобы включить этот режим, откройте раскадровки приложения watchOS в Xcode для редактирования, выберите представление таблицы и проверка поле "Вертикальные страницы детализации" проверка box:

Установите флажок проверка по страницам с вертикальной детализацией

Убедитесь, что таблица использует segues для отображения подробных представлений и сохранения изменений в раскадровки и возврата к Visual Studio для Mac для синхронизации.

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

// Segue into Vertical Paging and select the first row
MenuTable.PerformSegue (0);

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

Улучшения уведомлений

Уведомление является основной формой быстрого взаимодействия, которое пользователь обычно взаимодействует с watchOS и доступен с момента первого Apple Watch и watchOS 1.

Обычное быстрое взаимодействие с уведомлением выглядит следующим образом:

  1. Пользователь чувствует, что уведомление Haptic возникает при получении нового уведомления.
  2. Они поднимают запястье, чтобы увидеть интерфейс Short Look для уведомления.
  3. Если они продолжают держать запястье поднятым, watchOS автоматически переходит в интерфейс уведомлений long Look.

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

  • Для четко определенного и представленного уведомления пользователь ничего не сделает и просто отклонит уведомление.
  • Они также могут касаться уведомления, чтобы запустить приложение watchOS.
  • Для уведомления, поддерживающего пользовательские действия, пользователь может выбрать одно из пользовательских действий. Это может быть:
    • Действия переднего плана — они запускают приложение для выполнения действия.
    • Фоновые действия — всегда были перенаправлены в i Телефон в watchOS 2, но их можно перенаправить в watchApp в watchOS 3.

Новые возможности для watchOS 3:

  • Уведомление использует аналогичный API на всех платформах (iOS, watchOS, tvOS и macOS).
  • Локальное уведомление можно запланировать в Apple Watch.
  • Фоновое уведомление будет перенаправлено в расширение приложения, если они были запланированы на Apple Watch.

Планирование уведомлений и доставка

Уведомление от пользователя i Телефон будет пересылаться в Apple Watch, когда происходит следующее:

  • Экран i Телефон отключен.
  • Apple Watch носится и был разблокирован.

В watchOS 3 локальные уведомления можно запланировать на Apple Watch и доставляться только на часы. Разработчик должен запланировать соответствующее уведомление i Телефон, если оно требуется для приложения.

Включив один и тот же идентификатор уведомления в Apple Watch и i Телефон версии уведомлений, он предотвращает отображение повторяющихся уведомлений в часах. Версия уведомления Apple Watch будет иметь приоритет над версией i Телефон.

Так как watchOS 3 использует ту же UINotification платформу API, что и iOS 10, ознакомьтесь с нашей документацией по iOS 10 User Notification Framework для получения дополнительных сведений.

Использование SpriteKit и SceneKit

Теперь разработчик может использовать объекты SpritKit и SceneKit в дизайне пользовательского интерфейса приложения для просмотра 3D и трехмерной графики.

Добавлены два новых класса интерфейса для поддержки этой функции:

  • WKInterfaceSKScene — Для работы с графикой SpriteKit 2D.
  • WKInterfaceSCNScene — Для работы с трехмерной графикой SceneKit.

Чтобы использовать эти объекты, просто перетащите их на поверхность конструктора внутри раскадровки приложения наблюдения в конструкторе интерфейсов Xcode и используйте инспектор атрибутов для настройки их.

С этого момента работа с сценами SpriteKit или SceneKit работает так же, как и внутри приложения iOS. Приложение наблюдения будет представлено WKInterfaceSKScene путем вызова одного из Present методов. Для SceneKit просто задайте Scene свойство WKInterfaceSCNScene объекта.

Возможные осложнения

В watchOS 2 Apple представила сложности для сторонних приложений. В watchOS 3 Apple расширила возможности, которые разработчик может включить в WatchKit Complication.

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

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

Из-за этих новых функций Apple предлагает, что каждое приложение в Apple Watch также должно включать по крайней мере одно осложнение и, как это, все приложение Apple Watch теперь имеет осложнения.

Осложнения предоставляют следующие функции для приложения:

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

Уведомление с кратким представлением

Уведомление в Apple Watch предоставляет отличный настраиваемый способ быстро информировать пользователя о событиях или новых сведениях, таких как входящие сообщения или достижение цели в приложении для тренировки.

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

Теперь все уведомления поддерживаются следующим образом:

  • SpriteKit
  • SceneKit
  • Встроенное видео

Расширенный пользовательский интерфейс с помощью SpriteKit и SceneKit

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

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

Кроме того, spriteKit и SceneKit можно смешать со стандартными элементами пользовательского интерфейса WatchKit в дизайне пользовательского интерфейса приложения.

Простая навигация

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

Цифровая корона уникальна для Apple Watch и может использоваться различными способами для упрощения навигации. Например, приложение таймера может использовать цифровую корону для скрабирования с помощью доступных длин таймера.

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

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

Завершение быстрого взаимодействия

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

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

Схема приложения наблюдения, выполняющего сетевое подключение и совместное использование сведений со своим компаньоном i Телефон

  1. Пользователь выбирает элемент, который нужно приобрести на часы.
  2. Они касаются кнопки покупки.
  3. Приложение запускает сетевую транзакцию и отображает индикатор загрузки.
  4. Через некоторое время транзакция завершается, и приложение отображает соответствие покупки.
  5. Пользователь удаляет запястье и отключает приложение.

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

Используя предлагаемую модель Apple, ознакомьтесь с тем же быстрым взаимодействием снова:

Схема предлагаемых моделей Apples

  1. Пользователь выбирает элемент, который нужно приобрести на часы.
  2. Они касаются кнопки покупки.
  3. Приложение запускает сетевую транзакцию и отображает сообщение о том, что покупка успешно запущена.
  4. Пользователь удаляет запястье и отключает приложение.
  5. Когда транзакция успешно завершится некоторое время спустя, приложение отображает локальное уведомление, чтобы сообщить пользователю об успешной покупке.

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

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

Советы быстрого взаимодействия

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

Apple предлагает следующее:

  • Сосредоточьтесь на быстрых взаимодействиях, введя наиболее используемые функции приложения вперед.
  • Использование осложнений и уведомлений пользователей для работы с общими функциями и функциями.
  • Создайте богатый и понятный пользовательский интерфейс с помощью SceneKit и SpriteKit.
  • По возможности упростите навигацию в приложении.
  • Никогда не подождите пользователя, позвольте им удалить запястье и отключать приложение как можно скорее.

Итоги

В этой статье рассматриваются методы быстрого взаимодействия Apple, добавленные в watchOS 3 и как реализовать их в Xamarin.iOS для Apple Watch.