myMail приложение Пример: Разработка для Apple Часы без устройства

Как вы написать полезное приложение для Apple

Наблюдать?Каким образом он отличается от кодирования для прошивкой?А что, если вы don’ т есть часы на руке, чтобы проверить с

Перед запуском Apple Наблюдать, наша команда IOS на myMail (один из самых популярных альтернативных приложений электронной почты для IOS) неустанно работал с симулятором для создания нового Apple Наблюдать приложение.Мы хотели, чтобы первые покупатели Apple Наблюдать, чтобы иметь возможность использовать myMail с первого дня. Что мы узнали через использование тренажера и создание app — в том числе Apple, Watch’ ы совместимости интерфейса, передачи данных между устройствами, а суровость тренажера-только развитие — описано ниже, и (мы надеемся) помогутРазработчики IOS добраться до результатов, быстрее, и избежать головной боли несколько вниз по дороге .

Разработка интерфейса для Apple Watch

Написание кода для Apple Наблюдать isn’ т очень отличается от написания кода для iOS, так как вся логика обрабатывается на iPhone.Но когда дело доходит до разработки пользовательского интерфейса, она становится все более сложным: новые классы были созданы для часов, классов, которые не используются в других странах.В настоящее время есть только 11 таких классов, но первая версия IOS didn’ т есть много возможностей либо.Мы знаем, некоторые из этих особенностей в геометрической прогрессии в следующих версиях, поэтому мы надеемся, что подобное будущее ожидает Apple Наблюдать SDK.В настоящее время, однако, here’ S, что реальность разработки пользовательского интерфейса для Apple Наблюдать выглядит .

Только Наблюдать компоненты Apple, можете быть Used

Here’ S очень первое разочарование вы столкнулись во время разработки пользовательского интерфейса для Watch: вы должны забыть все модные кнопки, анимации и экраны созданные ранее для iPhone.There’ нет способа, чтобы использовать их здесь, потому что только визуальные компоненты, специально для Apple, часы могут быть использованы в пользовательском интерфейсе .

Новый макет Model

Перед прошивкой 6, можно было определить конкретные координаты различных элементов и установить правила для изменения размера элементов, как экран протянул.Не так давно, компания Apple представила новую модель макета для своих телефонов под названием “ Авто | Layout__37, что позволило все эти правила, чтобы установить более гибко.You’ г ожидать, что можно было бы использовать Auto Layout для Apple Наблюдать, но ее SDK имеет совершенно новый макет model, что напоминает ту, что используется в Android SDK.Весь интерфейс состоит из контейнеров, которые заполнены элементы вертикально или horizontally __23 | | 1__22 .По прошивкой 9, с введением UIStackview, Этот макет model 2 была доступна на других устройствах .

Before (left) and after (right) hiding square and text
До (слева) и после (справа) прячется площади и текст .

Реорганизация прячась Elements

Apple Наблюдать имеет интересную особенность, что wasn’ т доступной в IOS SDK: при скрытии элемента, он doesn’ т просто исчезают с экрана — все остальные элементы имеют свое место, не оставляя пустое пространство,Благодаря этой функции, вы можете разместить несколько экранов на одном экране с возможностью динамически переключаться между ними .

Apple Наблюдать SDK предлагает несколько возможностей для переключения между экранами, в том числе анимированных всплывающих окон снизу и сбоку (UI многостраничного).There’ S также интересная альтернатива, хотя неофициальным и без документов, что позволяет поменять экраны без анимации, подражая переключения экранов, когда элементы скрыты .

Контекст Вместо интерфейса Controller

В то время как в IOS SDK, мы могли бы инициализировать UIViewController и назначать любые свойства к нему.В Apple Наблюдать SDK, в интерфейса controller (WKInterfaceController) создается в системе, и it’ S невозможно получить доступ it из кода.Вместо этого разработчики получили новый параметр, называемый context, который может быть передан на контроллер при отображении.Внутри контроллера, it’ ы, доступные в awakeWithContext метода.Через context, it’ S можно передать те же параметры, которые мы использовали, чтобы пройти во время создания, например, блоков, контроллер ребенок будет иметь для вызова для того, чтобы передать данные родительского контроллера, идентификатор электронной почте будет открыти так далее .

Animation

В Apple Наблюдать, возможности для создания анимации очень limited.Там нет CoreAnimation и UIKit рамки, которые позволяют нам создавать анимацию программно.Единственный способ, чтобы оживить что-нибудь в Apple Наблюдать это создать последовательность изображений, что-то вроде анимационного GIF .

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

Glance

Glance 3 является небольшой экран, который любая программа может создать для отображения соответствующей информации, как и количество непрочитанных писем и sender’ Имени последнего непрочитанному электронной почте.Это до пользователю выбрать, какие взгляды волю и не будет отображаться на экране.Чтобы увидеть взгляды, пользователь должен ударить снизу вверх на screen, то проведите пальцем влево или вправо, чтобы переключаться между взглядами на различные приложения.Когда на экране появляется взгляд показывает старую информацию во-первых, позволяет отображать его как можно быстрее.Программы, как правило, обновить свои взгляды с новыми данными примерно в одну секунду.Взгляды не могут быть прокручивается, так что они могут содержать только так много информации, сколько поместится на одном экране .

Xcode Interface Builder предлагает набор рекомендуемых стилей шрифтов.Раньше вы имели возможность выбрать системный шрифт, его размер и стиль (курсив, полужирный и т.д.).Теперь есть шрифт шаблонов, как органа и название.Шаблоны являются необязательными, но мы надеемся, разработчики будут использовать их, и что пользовательские интерфейсы скоро начинают выглядеть более равномерным .

Перекрытие Elements

В отличие от IOS, в Apple Наблюдать doesn’ т позволит элементы overlap.Единственный способ обойти это ограничение, чтобы установить группу фон в виде рисунка и вставить элемент в содержание группы.Мы использовали этот метод обхода в myMail приложение для отображения экрана нового уведомления по электронной почте: в sender’ Аватар, приостановленных с предметом и sender’ Имени (для текста, чтобы быть заметным, основной градиент добавлено) .

Apple Watch doesn’t allow elements to overlap
Apple Наблюдать за не позволяют элементы перекрываются.Единственный способ обойти это ограничение, чтобы установить группу фон в виде рисунка и вставить элемент в группу содержание .

Поддержка Приписывается Strings

Среди приятных особенностей мы были удивлены найти в Apple Наблюдать UI был поддержка приписываемые строки в labels __29 | 4 .Благодаря этой функции, мы можем отображения текста с по-разному отформатированный segments.Let’ возьмем взгляд, например: мы можем выделить часть текста с другой цвет и формат другую часть с большим размером шрифта .

Apple Watch UI supports attributed strings in labels
Apple Наблюдать интерфейс поддерживает отнести строки в метках.Напримермы можем выделить часть текста с другой цвет и формат другую часть с большим размером шрифта .

Цифровой Корона и силы Touch

Apple Наблюдать унаследовал колесо (венец) из обычных часов, назвав его цифровой crown 5 , и имеет новый жест под названием сила touch 6.It’ непонятно, как любой из этих элементов будет использоваться, и кажется, что даже их создатели в Apple, aren’ т, что, как использовать их .

Например, цифровой короны иногда используется для прокрутки списка, иногда для масштабирования, а иногда для перемещения между элементами раскадровки.Он также контролирует sliders __23 | | 7__8 , которая позволяет пользователю изменять различные значения, как размер текста.С цифровой crown’ ы поведение является вне developers’ управления, мы должны мириться с функциями, которые Apple, возлагает на него. Слайдеры можно управлять с помощью либо выстукивая изображений или через wheel.Иногда слайдер может быть внутри прокрутки экрана.В этом случае нужно сначала нажать ползунок для управления его с помощью колеса .

Example of using the crown: Apple Watch Settings, Brightness and Text Size
Пример использования корону: Apple Наблюдать Настройки, яркость и размер шрифта .

Сила прикосновения новая функция для прошивкой, который отвечает на сумму давления пользователь размещает на сенсорном экране.Когда часы крепко, он делает menu__8 текущего экрана | 8 появляются.Насколько сила касания, то, we’ твердо решили немного подождать — первый вариант myMail приложение doesn’ т включают силы сенсорный поддержку .

Caching

Механизм кэширования изображения в Apple Наблюдать несколько странно, но вполне логично, если вспомнить, что часы приложение.Вкратце, он состоит из нескольких частей: основной (приложение “хозяин приложение”) и расширение WatchKit выполняемая на iPhone;и часы приложение, которое запускается прямо на SmartWatch .

Что происходит, когда изображение отображается на Watch’ ов экрана?Основная приложение запускает на iPhone и формизображение;он загружает его из Интернета, например.Затем изображение передается через Bluetooth или Wi-Fi в часы .

Это где Watch’ сек особенности начать.В обычном кэширования изображений, we’ D просто загрузить изображение, показать его пользователю, и сохранить его в файл, пока в следующий раз.Но на Apple Наблюдать, мы can’ т просто поместить изображение в файл на iPhone, потому что we’ D должны передать его обратно в часы каждый раз.Для таких случаев, there’ са 20MB кэш изображений, доступных на часы .

Интересно, it’ S можно поместить изображение в Watch’ ы cache, но только стандартный контроль можете получить его оттуда, и, насколько мы знаем, there’ S Нет прямой путь сказать, является ли изображениев кэш или нет.Один из способов заключается в использовании методов API: мы просим размеры файла с именем, как якобы в кэше изображения.Если мы получим размеры, мы знаем, it’ S есть.Если нет, то мы знаем, что мы должны загрузить это .

Отсутствие Из жизненным циклом приложений Notifications

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

Here’ S проблема: в отличие от приложения IOS с одной точки доступа, где все может быть инициализирован сразу, Apple Наблюдать приложение имеет три варианта доступа: взгляд, уведомления, а главное приложение.Но во всех трех случаях, запуск Смотреть приложение связано с отображением первого контроллера.Это позволяет нам использовать awakeWithContext метод .

@implementationMRWKContactsInterfaceController
  ‐ (void)awakeWithContext:(id)context {

   [superawakeWithContext:context];
    // Call app initialization code from your main interface controller's awakeWithContext method
    [MRWKInitializationextensionDidFinishLaunching];
    //...
    
  }

// Separate class where we store all initialization code for our watch extension
@implementation MRWKInitialization
  +(void)extensionDidFinishLaunching {
        
// Wrap initialization in dispatch_once to prevent calling it multiple times accidentaly

     staticdispatch_once_tonceToken;

     dispatch_once(&onceToken,^{

       // This is where we create our global object instances and initialize external SDKs

       [selfinternalExtensionDidFinishLaunching];

  });

} 

Кроме того, it’ S можно использовать initialize метод в один из классов расширения, который будет выполняться на первом ссылкой к этому классу .

Вы также можете использовать ленивый initialization, в которых объекты создаются только при they’ Re называют.Но это doesn’ т помощь со статистикой.Например, Шквал нужно точно знать, когда приложение было начато .

Взаимодействие с основными App

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

Открыть Родитель Application

There’ са новый API, +[WKInterfaceController openParentApplication:reply:], который позволяет ссылаться на основную приложение из Watch приложение.Это запускает основной приложение в background, выполняет требуемые действия и возвращает результат .

@implementation WKInterfaceController (MRWKParentApplicationActions)
+ (void)mrwk_markMessageIdAsRead:(NSString *)messageId
  accountName:(NSString *)accountName
  completionBlock:(MRWKParentApplicationActionsCompletionBlock)completionBlock {
  MRWKParentApplicationAction *action = [MRWKParentApplicationAction markAsReadActionWithMessageId:messageId
    accountName:accountName];
  [self openParentApplication:action.dictionary reply:^(NSDictionary *replyInfo, NSError *error) {
    if (completionBlock) {
      MRWKParentApplicationReplyInfo *info = [[MRWKParentApplicationReplyInfo alloc] initWithDictionary:replyInfo];
      completionBlock(info.success, error ?: info.error);
    }
  }];
}
@end 

Применение Groups

Второй способ получить Watch приложение и его коллегу, чтобы взаимодействовать с группами вне приложений.Под прошивкой, все приложения и расширения выполняются в отдельном sandboxes, ограниченных части файловой системы, которые могут быть доступны только те приложения или расширений.Ибо приложения использовать общие ресурсы или обмениваться файлами, есть группы приложений.Если хозяин приложение и расши …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.