Статьи

Создать собственное приложение Apple Watch для watchOS 2

В этом руководстве вы узнаете, как использовать новые API и функциональные возможности watchOS 2 для создания собственного приложения Apple Watch. Это включает в себя элементы интерфейса выбора, встроенную анимацию и контроллеры предупреждений.

На WWDC 2015 Apple объявила о первом крупном обновлении своей платформы Apple Watch watchOS 2 . Наряду со многими новыми функциями и улучшениями, наиболее важным аспектом этого обновления для разработчиков является возможность создавать собственные приложения Apple Watch. Эти собственные приложения работают лучше и предоставляют разработчикам доступ к новым функциям, включая цифровую корону, микрофон и датчики состояния.

В этом руководстве я покажу вам, как создать собственное приложение WatchKit, и кратко опишу некоторые новые API, доступные в watchOS 2. Я также покажу, как обновить существующее не родное приложение watchOS 1 до родного приложения watchOS 2. ,

Это руководство требует, чтобы вы работали с Xcode 7 на Mac под управлением OS X Yosemite (10.10) или более поздней версии. Это руководство основано на концепциях и API-интерфейсах WatchKit, доступных в watchOS 1. Если вы еще не знакомы с платформой WatchKit, начните с одного из наших вводных руководств по WatchKit .

Откройте Xcode и создайте новый проект. В Xcode 7 новый мастер проекта включает в себя watchOS раздел слева. Выберите приложение для iOS с шаблоном WatchKit App из раздела watchOS> Application . Нажмите Далее, чтобы продолжить.

Выбор шаблона

Заполните информацию, как показано на скриншоте ниже. Снимите флажки внизу, потому что они не понадобятся для этого урока.

Конфигурирование проекта

Завершите настройку проекта и посмотрите на папки, которые Xcode создал для нас. Вы должны увидеть три группы или папки в Project Navigator слева:

  • Папка Demo содержит исходные файлы и ресурсы приложения iOS.
  • В папке Demo WatchKit App находятся раскадровка и ресурсы приложения WatchKit.
  • Расширение Demo WatchKit включает в себя исходные файлы и ресурсы расширения WatchKit, так сказать мозги приложения WatchKit.

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

Выбор правильной схемы и симулятора

Нажмите кнопку воспроизведения, чтобы создать и запустить приложение. В доке вы должны увидеть две иконки симулятора. Одним из них является обычный iOS Simulator, а другим — Apple Watch Simulator.

Симулятор iOS слева и симулятор Apple Watch справа

Если пустой экран приложения Apple Watch не отображается автоматически в симуляторе Apple Watch, выполните следующие действия:

1. Перейдите к приложению Apple Watch на симуляторе iOS. Вы можете найти приложение Apple Watch на второй странице главного экрана.

Расположение приложения Apple Watch

2. Нажмите на Демо   ячейка табличного представления, как показано ниже.

Выберите ячейку представления демонстрационной таблицы

3. Включите переключатель « Показать приложение на Apple Watch», как показано ниже.

Показать приложение на Apple Watch

4. В Apple Watch Simulator перейдите на домашний экран, нажав Ctrl + Shift + H или выбрав Домой из Аппаратное меню Apple Watch Simulator.

Домашний экран Apple Watch

Если это не сработает сразу, включите и выключите переключатель iOS Simulator. Это также может помочь выйти из Xcode и снова запустить приложение WatchKit.

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

Начальный экран приложения

Пришло время начать использовать некоторые из новых API, представленных в watchOS 2. В Xcode откройте Interface.storyboard в папке приложения Demo WatchKit и добавьте следующие компоненты в сцену Interface Controller :

  • ползунок
  • сборщик
  • кнопка
Сцена контроллера интерфейса

Выберите ползунок и установите для его свойств Maximum и Steps значение 5 в Инспекторе атрибутов .

Атрибуты слайдера

Дважды нажмите кнопку и измените ее название на «Показать оповещение». Откройте Ассистент редактора, чтобы у вас была раскадровка слева, а содержимое InterfaceController.swift — справа. Создайте выход для ползунка, перетащив его с помощью ползунка в раскадровке в класс InterfaceController . Назовите слайдер розетки. Сделайте то же самое для сборщика и назовите сборщик розетки.

Создать розетки для слайдера и подборщика

Удерживая нажатой клавишу «Control», перетащите кнопку к InterfaceController справа, чтобы создать действие. Назовите действие showAlertPressed . Это действие будет выполнено, когда пользователь коснется кнопки.

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

Закройте редактор Assistant справа и откройте InterfaceController.swift в редакторе кода Xcode.

Ползунок и кнопка, добавленные в класс InterfaceController должны быть знакомы, если вы работали с платформой WatchKit. Сборщик, однако, является одним из новых элементов интерфейса, доступных в watchOS 2.

Средство выбора для Apple Watch представлено классом WKInterfacePicker . Он работает аналогично своему аналогу iOS, UIPickerView . Пользователи взаимодействуют с экземпляром WKInterfacePicker его, прокручивая объекты WKPickerItem с помощью цифровой короны, а затем снова нажимая, чтобы выбрать элемент. WKInterfacePicker может отображать элементы в одном из трех разных стилей:

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

Для этого урока вы создадите простой инструмент выбора стиля списка с текстовыми элементами. Добавьте следующий код в awakeWithContext(_:) класса InterfaceController :

01
02
03
04
05
06
07
08
09
10
11
override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)
     
    var pickerItems: [WKPickerItem] = []
    for i in 1…10 {
        let item = WKPickerItem()
        item.title = «Picker item \(i)»
        pickerItems.append(item)
    }
    self.picker.setItems(pickerItems)
}

Создайте и запустите ваше приложение. Вы увидите, что первые три элемента выбора видны.

Видимые элементы выбора

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

Выбор предметов выбора

Помимо новых элементов интерфейса и новых способов взаимодействия пользователей с приложениями Apple Watch, watchOS 2 поддерживает встроенную анимацию для объектов интерфейса WatchKit. Следующие атрибуты элементов интерфейса являются анимируемыми в приложениях watchOS 2:

  • альфа (непрозрачность)
  • ширина и высота
  • горизонтальное и вертикальное выравнивание
  • цвет фона и оттенок
  • контентные вставки для групп

Анимация выполняется с помощью одного WKInterfaceController экземпляра animateWithDuration(_:animations:) , animateWithDuration(_:animations:) . В качестве простого примера, вы собираетесь анимировать слайдер, заставляя его исчезать и сжиматься к верхней части экрана. Добавьте следующий код в метод willActivate класса InterfaceController :

1
2
3
4
5
6
7
8
override func willActivate() {
    super.willActivate()
     
    self.animateWithDuration(5) { () -> Void in
        self.slider.setHeight(0)
        self.slider.setAlpha(0)
    }
}

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

Добавление анимации в watchOS 2

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

watchOS 2 также позволяет приложениям представлять интерфейс оповещения, очень похожий на интерфейс UIAlertView или UIAlertController на iOS. Эти предупреждения отображаются путем вызова presentAlertControllerWithTitle(_:message:preferredStyle:actions:) WKInterfaceController presentAlertControllerWithTitle(_:message:preferredStyle:actions:) для экземпляра WKInterfaceController .

Параметры title и message этого метода являются строками, которые должны отображаться в интерфейсе оповещения. Третий параметр — это перечисление WKAlertControllerStyle :

  • Alert отображает лист предупреждения со сложенными кнопками и кнопкой отмены по умолчанию внизу.
  • SideBySideButtonsAlert отображает две кнопки рядом.
  • ActionSheet отображает одну или две пользовательские кнопки с кнопкой « Отмена» в верхнем левом углу.

Четвертый параметр — это массив объектов WKAlertAction , которые предоставляют детали для кнопок оповещений. Этот массив должен содержать как минимум один объект, а для SideBySideButtonsAlert он должен содержать два.

Объект WKAlertAction создается с заголовком, стилем ( WKAlertActionStyle.Default , WKAlertActionStyle.Cancel или WKAlertActionStyle.Destructive ) и блоком, который будет выполняться при WKAlertActionStyle.Destructive этого действия. Добавьте следующий код к действию кнопки showAlertPressed :

01
02
03
04
05
06
07
08
09
10
11
@IBAction func showAlertPressed() {
    let cancel = WKAlertAction(title: «Cancel», style: WKAlertActionStyle.Cancel, handler: { () -> Void in
         
    })
     
    let action = WKAlertAction(title: «Action», style: WKAlertActionStyle.Default, handler: { () -> Void in
         
    })
     
    self.presentAlertControllerWithTitle(«Alert», message: «Example watchOS 2 alert interface», preferredStyle: WKAlertControllerStyle.SideBySideButtonsAlert, actions: [cancel, action])
}

Создайте и запустите ваше приложение. Когда вы нажмете кнопку « Показать оповещение» , вы увидите анимированный интерфейс оповещения и отобразите два созданных вами действия.

Отображение простого предупреждения на watchOS 2

Когда вы открываете существующий проект Xcode с приложением WatchKit в Xcode 7, в навигаторе проблем слева появится следующее предупреждение:

Предупреждение проекта

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

Изменение настроек приложения WatchKit

Если вы нажмете Perform Changes , Xcode обновит ваше существующее приложение WatchKit для вас. После завершения обновления вы готовы собрать, протестировать и отправить собственное приложение для watchOS 2.

Новые API и функции, о которых вы узнали в этом руководстве, являются лишь верхушкой айсберга. Элементы интерфейса выбора, контроллеры предупреждений и встроенная анимация — это лишь некоторые из новых функций, которые вы можете использовать в своих приложениях Apple Watch на watchOS 2.

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