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

Еще в 2009 году вряд ли кто-нибудь из моего окружения знал, что такое iPhone. Тогда он еще не достиг берегов Франции. Впервые я увидел его своими глазами в ресторане у моей тети (да, той, у которой был огромный iMac в гостиной). Она привезла его с собой, и я провел весь вечер с ним. Я помню, как меня поразила чувствительность экрана и насколько естественными были жесты мультитач. До тех пор сенсорные экраны означали резистивные технологии (знаете, эти сенсорные экраны, где вам приходилось нажимать очень сильно, чтобы что-либо сделать), и это явно не допускало такого плавного опыта. Вернувшись домой, я умолял родителей купить мне iPhone, а через несколько месяцев я с радостью получил iPhone 3G на день рождения.

Этому телефону не хватало ключевых функций, таких как видеокамера, и отправка MMS, но мне было все равно: пользовательский опыт намного опережал конкурентов, а в App Store было много потенциала на будущее.

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

Позвольте представить вам iOS Mogi.

Это Моги – красивая рыбацкая деревушка в окрестностях Нагасаки в Японии. Я сделал эту фотографию в прошлом году
Это Моги — красивая рыбацкая деревушка в окрестностях Нагасаки в Японии. Я сделал эту фотографию в прошлом году

«Привет, Siri, помоги мне»

Первая часть этой концепции сосредоточена на Siri. Здесь идея заключается не в создании новых команд, а в том, чтобы иначе отображать существующие голосовые запросы, которые хорошо работают (например, «Найди мне хороший ресторан поблизости» или «Покажи фотографии Японии, которые я сделал в прошлом году»), чтобы они стали еще полезнее для пользователя.

В iOS Mogi Siri была спроектирована на основе концепции, которую я называю параллельной помощью. Идея состоит в том, чтобы голосовой помощник был ненавязчивым (он не будет занимать весь экран, как он делает сегодня), контекстно-зависимым и мог делать что-то для пользователя в фоновом режиме, пока тот занят чем-то еще.

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

Использование Siri в Сообщениях
Использование Siri в Сообщениях
Во время использования приложений Siri принимает форму уведомления, чтобы быть менее навязчивой (если вызвать ее с экрана блокировки или на главном экране, она будет отображаться на весь экран).
Siri в iOS Mogi
Siri в iOS Mogi
В приведенном выше примере я прошу Siri показать мне фотографии Японии, поскольку хочу отправить фото моему другу Яннику. Как только запрос будет выполнен, результат отображается в уведомлении Siri, поэтому я могу продолжать делать то, что делаю, не прерываясь. Я могу свайпнуть вниз по уведомлению, чтобы увидеть больше, и выбрать фотографии для отправки.
Выбор фото перед их отправкой
Выбор фото перед их отправкой
Или я могу напрямую перетащить изображение из расширенного уведомления в приложение ниже (наконец, внося вклад в API перетаскивания на iPhone):
Перетаскивание фотографии из Siri в приложение «Сообщения». Чтобы отменить перетаскивание, перетащите объект на границы экрана
Перетаскивание фотографии из Siri в приложение «Сообщения». Чтобы отменить перетаскивание, перетащите объект на границы экрана
Если оно не использовалось какое-то время, уведомление сжимается к верху экрана:
Сжатие
Сжатие
И можно снова открыть его, смахнув вниз экрана (мы вернемся к нему позже):
Открытие Siri снова. Появляется последний запрос
Открытие Siri снова. Появляется последний запрос
Что действительно круто в новой Siri, так это то, что полученные результаты могут быть легко использованы в другом приложении:
При переключении между приложениями результат запроса остается доступным, поэтому его можно использовать снова
При переключении между приложениями результат запроса остается доступным, поэтому его можно использовать снова
Я считаю, что проектирование ненавязчивой Siri имеет много случаев использования и может реально выделиться на фоне конкурентов благодаря глубокой интеграции в ОС. Вот несколько примеров, чего можно было бы достичь с помощью новой Siri:
В ответ на «Найди рестораны поблизости». Коснитесь пузыря для получения дополнительной информации или перетащите его, чтобы поделиться им. Свайпните, чтобы увидеть другие рестораны поблизости
В ответ на «Найди рестораны поблизости». Коснитесь пузыря для получения дополнительной информации или перетащите его, чтобы поделиться им. Свайпните, чтобы увидеть другие рестораны поблизости

Проактивная Siri
Проактивная Siri. Если Siri обнаруживает адрес или определяет, что вы опаздываете, она появляется и позволяет вам предпринимать действия. В этом случае нажмите уведомление, чтобы отправить сообщение Крейгу, или смахните уведомление вниз, чтобы просмотреть варианты. Экран действия позволит пользователю выбирать между любимыми приложениями для обмена сообщениями
И даже больше. В iOS Mogi можно попросить Siri показывать страницы из приложения, работая в другом приложении. Так, например, я могу писать письмо и хочу добавить картинку, которую друг отправил мне в iMessage. Вот как это выглядело бы в iOS Mogi:
Открывайте разговор, когда пишите электронное письмо, благодаря Siri
Открывайте разговор, когда пишите электронное письмо, благодаря Siri
Это начало настоящей многозадачности на мобильном устройстве, и я думаю, что она более приспособлена к мобильным ограничениям, чем просто вертикальное разделение экрана на 2.

«Привет Siri, я хочу…»

Знаете, как иногда раздражает, когда вы пытаетесь отправить сообщение при помощи Siri, и в конечном итоге берете свой телефон и набираете текст? В iOS Mogi, вместо того, чтобы полностью полагаться на Siri, чтобы сделать что-то за вас, вы можете попросить ее помочь вам справиться быстрее. Больше не придется блуждать в интерфейсе, просто начните свое предложение с «Я хочу …», и Siri позволит вам сделать это, не отрываясь от текущей задачи (в iOS Mogi то, что вы делаете, действительно драгоценно).

Набор сообщения Яннику, во время написания электронного письма
Набор сообщения Яннику, во время написания электронного письма
И это работает прямо с экрана блокировки:
Отвечаю Яннику с экрана блокировки при помощи Siri
Отвечаю Яннику с экрана блокировки при помощи Siri

«Привет, Siri, прокрути немного вниз»

Поскольку теперь Siri совершенно не навязчива, появляются новые варианты ее использования. Один из них — действия Siri (Siri actions).

Действия Siri в основном претворяют в жизнь любые сенсорные жесты в голосовые команды. От тапа до скролла все теперь можно выполнять используя исключительно голосовые команды. Поэтому я могу, например, попросить Siri прокрутить список моих альбомов и открыть High as Hope от Florence + The Machine.

Навигация по Apple Music при помощи Siri
Навигация по Apple Music при помощи Siri
Элементарные варианты использования, подобные этому, ранее были невозможны, поскольку Siri занимала весь экран и не понимала контекста. Теперь, когда я пишу электронное письмо, я могу на ходу попросить Siri изменить получателя, изменить подпись или даже изменить стиль, пока пишу письмо:
Редактирование письма на ходу при помощи Siri
Редактирование письма на ходу при помощи Siri
Думаю, что это был бы огромный шаг вперед, в частности для людей с ограниченными возможностями. Действия Siri упростили бы им навигацию по ОС. Даже для остальных пользователей, думаю, это было бы действительно полезно. Например, когда руки заняты, при приготовлении пищи, или просто для облегчения выполнения некоторых повторяющихся задач (как видно выше в приложении «Почта»).

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

Я считаю, что действия Siri очень согласованы с первоначальным подходом Siri, который должен позволить пользователям выполнять простые действия при помощи голоса. Сделав Siri ненавязчивой, мы можем сделать шаг вперед.

Действия Siri также приносят с собой новую способность Siri: сохранение элементов из любого приложения, чтобы использовать их в другом. Откройте фотографию и скажите: «Сохранить эту фотографию», чтобы Siri ее сохранила.

Попросите Siri сохранить элементы, и она сохранит их для вас
Попросите Siri сохранить элементы, и она сохранит их для вас
Откройте другое приложение и перетащите фотографию из уведомления Siri в приложение:
Перетаскивание сохраненного изображения в Medium
Перетаскивание сохраненного изображения в Medium
Это также работает для копирования-вставки:
Когда контент копируется откуда-то, он появляется в уведомлении Siri
Когда контент копируется откуда-то, он появляется в уведомлении Siri, поэтому его можно легко использовать в другом месте. Смахните вниз по уведомлению, чтобы просмотреть все предыдущие сохраненные материалы, такие как текст, изображения или электронные письма
Просто тапните, чтобы вставить текст в текущем приложении, в котором находится курсор. Вы также можете перетащить контент куда захотите:
Вставка содержимого из приложения «Заметки» в Medium за секунду благодаря Siri
Вставка содержимого из приложения «Заметки» в Medium за секунду благодаря Siri
Вы можете попросить Siri показать вам все ваши сохраненные элементы сказав: «Покажи мне все сохраненные элементы»:
«Покажи мне мои сохраненные элементы», и Siri покажет их вам
Просто скажите: «Покажи мне мои сохраненные элементы», и Siri покажет их вам. Вы можете перетащить их в приложение ниже или коснуться их для редактирования перед использованием
Когда сохраненные элементы используются в другом месте, они исчезают из этого списка.

Вот такая вот новая Siri. А что, если бы мы применили те же принципы ненавязчивой многозадачности к другим областям ОС? Разумеется, новые жесты и визуальный код могут быть применены где угодно. Как мы можем это использовать? Прежде чем углубиться в эту идею, давайте посмотрим, можем ли мы улучшить опыт в той конкретной области, где я лично трачу много времени: Apple Maps.

Apple Maps

Не бросайте в меня помидоры, но мне действительно нравится приложение «Карты» от Apple. Хотя некоторые из его данных могут быть не столь надежными, особенно здесь, во Франции, я нахожу пользовательский опыт и интерфейс очень восхитительным. «Ящик» внизу, представленный в iOS 10, когда приложение было переработано, является блестящей идеей. Неудивительно, что мы стали замечать, как он появляется в других приложениях, например, Lyft.

Однако то, что меня беспокоит время от времени — это отсутствие понимания контекста, особенно при использовании транспортных систем. Более конкретно, когда я еду по линии метро, и пытаюсь получить новые направления, приложение «Карты» не знает, что я застрял на этой линии и дает мне указания, основанные исключительно на моем текущем местоположении, в то время, как оно должно основывать вычисления по моему текущему местоположению с учетом текущей ветки метро. Очень часто я получаю указания от начальных точек, которые недоступны оттуда, где я нахожусь на данный момент. С этой точки зрения навигация по Apple Maps становится бесполезной.

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

Когда Apple Maps обнаруживает, что пользователь находится на линии метрополитена
Когда Apple Maps обнаруживает, что пользователь находится на линии метрополитена
Приложение может спросить пользователя, действительно ли он находится на линии Кэйо. Запрос может быть отклонен путем свайпа вниз или, если указана правильная линия, но не направление, можно листать влево или вправо до тех пор, пока не будет найдено правильное направление. Как только пользователь подтвердит линию, на которой находится, Apple Maps рассчитает новые направления на основе этой информации:
Как только линия будет подтверждена, маршруты будут рассчитаны с использованием линии метро в качестве отправной точки
Как только линия будет подтверждена, маршруты будут рассчитаны с использованием линии метро в качестве отправной точки
3D Touch нажатие по маленькой черной кнопке, чтобы включить линейный вид ветки метро с вашим положением в реальном времени:
Линейный вид ветки метро с вашим положением в реальном времени
Линейный вид ветки метро с вашим положением в реальном времени
Почему я внезапно заговорил об Apple Maps и каким образом это согласуется с предыдущей частью статьи, вы можете спросить? Ну, вот в чем дело: iOS не хватает способов информировать пользователя о вещах, которые происходят сейчас. Думаю, что пользователи хотели бы легко отслеживать свой маршрут, делая что-то еще (например, играть или читать в метро), и они также должны иметь возможность быстро вернуться к Apple Maps (или их любимому навигационному приложению) без необходимости открывать App Switcher или возврата на домашний экран.

В ответ на эту проблему позвольте мне представить вам Live Notifications.

Live Notifications или многозадачность мобильных устройств

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

Вот таймер:

Home iOS

Во время телефонного звонка/ звонка в Facetime:

Время в iOS

Вот навигации по картам:

Навигация по картам iOS

Почему сторонние приложения, такие как Google Maps или Waze, также не могут контролировать экран блокировки?
Да, это экран блокировки. Это определенно похоже на хак. Почему сторонние приложения, такие как Google Maps или Waze, также не могут контролировать экран блокировки?
Когда телефон используется в качестве точки доступа:

Когда телефон используется в качестве точки доступа

Когда записывается экран или памятка:

Когда записывается экран или памятка

И… вот и все (я не добавил музыкальный проигрыватель в этот список, так как он обрабатывается несколько иначе, и я не вижу причин его изменять).

Как насчет того, когда Uber в пути? Когда должны доставить еду? Когда видео воспроизводится на Youtube или Netflix? Или когда… мы используем транспорт и нам нужно легко отслеживать маршрут? (?)

Хорошо, что Apple сделала телефонные звонки или маршруты приложения «Карты» легкодоступными (в строке состояния или на экране блокировки). Однако, способы сделать это слишком ограниченны (ограничены несколькими нативными приложениями, и никакое действие не может быть запущено без открытия соответствующего приложения), они должны быть доступны в любом месте и в любое время без прерывания текущей задачи. А некоторые из них визуально не согласованны и хорошо интегрированы в систему. Вкратце, они больше походят на быстрое решение, которое взламывает систему, чем истинную функцию, и должно быть лучшее и более элегантное решение для решения этих и других вопросов (оно также должно быть открыто для сторонних приложений!).

Live Notifications были разработаны для решения этой проблемы.

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

Live Notification iOS
Проверка маршрута во время чтения благодаря Live Notification. Через некоторое время без взаимодействия синяя полоска исчезает. Кроме того, название приложения в Live Notification можно изменить, чтобы больше узнать о ситуации (здесь «Карты Apple» были изменены на «Нахождение на линии Кэйо»)
Чтобы взглянуть на свое текущее положение на линии метро, пользователю просто нужно перетащить вниз небольшую полоску в верхней части экрана.

Чтобы открыть Центр уведомлений, потяните дальше:

Live Notification открыто
Вы должны думать об этом жесте, как о старом iOS 10: вы немного тяните верх, вы чувствуете тактильную обратную связь, чтобы вы знали, что ваше Live Notification открыто, и если вы тяните дальше, вы открываете Центр уведомлений
И точно так же, через несколько секунд и не выходя из приложения iBooks, пользователь может знать, где он находится на линии метро, и не пропустить свою остановку.

Эти жесты должны быть вам знакомы. Они аналогичны жестам для Siri. На самом деле, в iOS Mogi, Siri также является Live Notification. Итак, все жесты, которые были введены ранее, также доступны для других задач.

Например, в этом случае пользователь может перетащить Live Notification, чтобы показать свое положение на карте в реальном времени. Он также может инициировать действия прямо оттуда:

Когда Live Notification открыто, показывается положение на карте в реальном времени
Когда Live Notification открыто, показывается положение на карте в реальном времени. (Я лично никогда не считал удобным 3D Touch элемент, расположенный в верхней части экрана. Я предпочитаю старый добрый свайп, особенно сейчас, когда iPhone больше, чем когда-либо. Тем не менее, 3D Touching уведомления в Центре уведомлений имеют смысл, поскольку там они более доступны)
Если пользователи захотят, они также могут нажать на Live Notification, как на обычное уведомление, чтобы открыть соответствующее приложение:
Открытие Apple Maps простым нажатием
Открытие Apple Maps простым нажатием
Live Notifications — это естественная эволюция Rich Notifications, представленных в iOS 10. Теперь, как никогда, они ощущаются мини-приложениями.

Как запускать Live Notifications? Ничего не надо делать. Приложения определяют, запускать ли Live Notifications или нет, в зависимости от ситуации. Когда активируется Live Notification, происходит это:

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

Вот несколько примеров того, как процессы, происходящие в фоновом режиме, могут обрабатываться ОС благодаря Live Notifications:

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

Благодаря Live Notifications, Uber может сообщить вам в реальном времени, когда ваш водитель прибудет
Благодаря Live Notifications, Uber может сообщить вам в реальном времени, когда ваш водитель прибудет, даже если вы не находитесь в приложении Uber. Обратите внимание, что стиль Live Notification может быть настроен разработчиками в соответствии с эстетикой их приложений
Проверка маршрута в Картах Google
Проверка маршрута в Картах Google при написании заметки (заметки находятся в фоновом режиме, а Live Notification расширено)

Live Notification «Сейчас читают» от Medium
Live Notification «Сейчас читают» от Medium. (Уважаемая команда Medium, если вы читаете это, пожалуйста, добавьте функцию, продолжения чтения статьи с того места, где мы остановились!)
Live Notifications также могут использоваться для быстрого обмена информацией:
Live Notification «Сейчас читают» от Medium всплывает
Live Notification «Сейчас читают» от Medium всплывает, когда Medium закрыт. Затем вы можете поделиться статьей с помощью простого перетаскивания
То же самое для скриншотов, которыми теперь можно поделиться простым перетаскиванием:
Делитесь скриншотами простым перетаскиванием
Делитесь скриншотами простым перетаскиванием
При одновременном запуске нескольких Live Notifications они складываются в стек в стиле iOS 12:
Несколько Live Notifications сразу
Несколько Live Notifications сразу
Их можно легко упорядочить при помощи перетаскивания, чтобы ваше любимое Live Notification было поверх остальных:
Коснитесь сгруппированных Live Notifications
Коснитесь сгруппированных Live Notifications и перегруппируйте их при помощи перетаскивания. Вы также можете просто взглянуть на все свои Live Notifications в этом не сгруппированном представлении
И, разумеется, Live Notifications также доступны непосредственно с экрана блокировки, поэтому вам легко увидеть маршрут или вернуться туда, где вы были:
Чтение статьи на Medium, когда едешь по линии Кэйо токийского метро
Чтение статьи на Medium, когда едешь по линии Кэйо токийского метро. На экране блокировки разработчики могут выбрать, чтобы их Live Notifications расширялись по умолчанию, например, для маршрутов, где важно иметь указания. (Я также немного обновил стиль экрана блокировки в соответствии с новым более ярким стилем iOS)

В заключение

Вот такая вот iOS Mogi. iOS Mogi — это третья итерация концепции, которую я начал около 2 лет назад (тогда же я начал работать над macOS Newton). Тогда она называлась iOS Fuji.

С самого начала я хотел найти элегантный способ реализовать многозадачность на мобильном телефоне, и разделение экрана никогда не было для меня вариантом. Я хотел что-то более согласованное с мобильным подходом, и, надеюсь, вы сочтете Live Notifications хорошим шагом в этом направлении.

Как всегда, приветствуются лайки и комментарии 🙂