Что такое 3D Touch на iPhone
В обзорах мобильных устройств от Apple часто можно встретить такой термин как 3D Touch. Но, при этом далеко всегда объясняется, что такое 3D Touch, для чего эта технология используется в iPhone и как работает.
Что такое 3D Touch
3D Touch – это технология компании Apple, которая позволяет отслеживать разные уровни силы нажатия на сенсорный экран. 3D Touch была представлена осенью 2015 года и с тех пор используется во всех моделях iPhone.
Технология работает на основе датчиков, которые встроены непосредственно в сам экран мобильного устройства. Определение силы нажатия происходит благодаря измерению малейших изменений в расстоянии между стеклом экрана и уровнем подсветки. Также технология 3D Touch использует акселерометр и другие датчики. Используя всю эту информацию устройство может определить уровень силы нажатия и намерения пользователя.
Использование 3D Touch значительно расширяет возможности сенсорного управления мобильным устройством. Благодаря этой технологии кроме классических жестов (касание, смахивание, сведение и разведение пальцев и т.д.) можно использовать жесты с разным уровнем нажатия на экран, это позволяет пользователю взаимодействовать с контентом, не покидая текущее приложение. Например, можно нажать на страницу и увидеть ее превью, дальше можно усилить нажатие и перейти к полноценному просмотру.
Кроме этого, использование 3D Touch позволяет ускорить взаимодействие с приложениями. Пользователь может нажать на иконку приложения и с помощью усиленного нажатия сразу выбрать одно из предложенных действий. Таким образом можно позвонить абоненту из списка избранных контактов даже не открывая приложение «Телефон».
Как пользоваться 3D Touch
3D Touch можно использовать в разных ситуациях. Сейчас мы рассмотрим несколько наиболее показательных сценариев, в которых использование 3D Touch бывает реально очень полезным.
Быстрые действия. С помощью 3D Touch можно быстро включить какую-то функцию приложения, не тратя время на запуск самого приложения. Так, если с силой нажать на приложение «Messages», то появится список пользователей, с которыми вы общаетесь. Нажав на любого из этих пользователей, вы сразу перейдете к чату с данным пользователем. Подобные «быстрые действия» доступны и для многих других приложений.
Виджеты с информацией. В некоторых случаях вместе со списком быстрых действий на экране появляется небольшой виджет с информацией от приложения. Например, если с силой нажать на иконку приложения «Weather», то появится виджет с погодой и список быстрых действий.
Управление папками. Также быстрые действия доступны для папок с приложениями. Если с силой нажать на такую папку, то появится меню, с помощью которого можно будет переименовать папку или запустить одно из приложений.
Управление уведомлениями. Вы можете открыть Центр уведомлений и использовать 3D Touch на кнопке со знаком «Х». В результате появится кнопка, с помощью которой вы сможете удалить сразу все уведомления. Также вы можете использовать 3D Touch для предварительного просмотра контента, который упоминается в уведомлении.
Центр управления. 3D Touch работает и в Центре управления. Например, вы можете открыть Центр управления и с силой нажать на иконку фонарика. В результате появится меню, в котором можно будет выбрать режим работы. Кроме этого, в Центре управления 3D Touch можно использовать на иконке таймера, калькулятора и камеры.
Как видите, 3D Touch открывает множество дополнительных возможностей по управлению интерфейсом iPhone и позволяет сэкономить немало времени.
Как работает 3D Touch
В закладки
Наглядная работа 3D Touch.
Главным преимуществом представленных компанией Apple смартфонов iPhone 6s и iPhone 6s Plus перед своими предшественниками, стал экран, оснащенный технологий 3D Touch. Теперь смартфон распознает не только прикосновение, но и силу нажатия.
Как работает 3D Touch, наглядно продемонстрировали ребята из iDownloadBlog. Мы выполнили перевод и предлагаем вашему вниманию подробный экскурс по всем возможностям «чувствительного экрана».
В закладки
3D Touch на iPhone: что это, как пользоваться (все примеры), как включить и выключить
Если у вас iPhone 6s или более новая модель «яблочного» смартфона, вы наверняка знаете о такой функции, как 3D Touch. Если нет – это когда вы нажимаете на экран с усилием и появляется контекстное меню с дополнительными функциями. Но бьемся об заклад – вы используете далеко не все возможности 3D Touch! Узнать о функции больше и облегчить себе жизнь вам поможет эта статья.
Что такое функция 3D Touch (3Д тач)?
3D Touch – технология Apple позволяющая определять силу нажатия на дисплей. Благодаря этой функции, можно (при нажатии на экран iPhone с усилием) вызвать некоторые функции приложения без его запуска. Впервые 3Д тач появился в смартфонах iPhone 6s и iPhone 6s Plus. Работа технологии основана на другой разработке Apple под названием Force Touch, использованной в часах Apple Watch и на трекпадах ноутбуков Macbook.
На каких iPhone работает 3D Touch?
3D Touch поддерживается на iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus и iPhone X.
Как пользоваться 3D Touch (3Д тач) на iPhone?
Ниже вы найдете исчерпывающий список сценариев для применения 3D Touch.
1. Иконки приложений
Самое простое действие. Просто коснитесь иконки приложения сильнее, чем делаете это обычно. Перед вами откроются полезные шорткаты (кнопки быстрого доступа) к полезным и часто используемым функциям. Некоторые приложения выводят и мини-версию своего виджета.
Информация по тому, что даёт 3D Touch для отдельных приложений:
App Store – быстрый доступ к поиску по магазину, ввод кода iTunes, кнопка “Обновить все” и переход к Покупкам.
Музыка – виджет с недавно воспроизведенными песнями и поле поиска.
Safari – открытие новой вкладки, «приватная» вкладка, запуск панели закладок и Списка для чтения;
Телефон – быстрый доступ к 4 контактам, поиск и создание нового контакта.
Фото – виджет для вкладки «Воспоминания», и разделы недавно просмотренных фотографий, избранного и поиск.
iBooks – недавно открытые документы, книги и аудиокниги.
Погода – виджет с вашим текущим местоположением, шорткаты для добавления трех любимых городов.
Камера – шорткат для быстрого доступа к созданию селфи, портрета, записи видео, slo-mo и создания простой фотографии.
Календарь – виджет с предстоящими делами и шорткат для добавления новых ивентов.
Часы – шорткаты для быстрого создания будильника, запуска таймера или секундомера.
Карты – виджет с местом назначения, шорткаты для того, чтобы отметить и поделиться вашим местоположением.
Заметки – недавно открывавшиеся заметки, шорткаты для создания заметки, списка дел и зарисовки.
2. Открыть меню многозадачности
Лучше всего это получается тогда, когда на вашем iPhone нет чехла. Сделайте жест 3D Touch в левом углу экрана, дождитесь тактильного отклика и свайпните вправо. В результате откроется меню многозадачности с запущенными приложениями. Если вы продолжите свайпить вправо, то перейдете в последнюю из открытых программ.
3. Уведомления
Начиная с iOS 10 уведомления в мобильной операционке Apple стали интерактивными. Некоторые программы – например, Viber или Сообщения – после 3D Touch-жеста выводят на заблокированный экран большое превью пришедшего сообщения. 3D Touch вызывает и контекстное меню с дополнительными опциями по использованию – к примеру, ретвит в приложении Twitter.
3D Touch также позволяет быстро удалить все уведомления из Центра уведомлений – для этого нужно сделать жест и нажать на значок «х» в Центре.
4. Safari
Если сделать 3D Touch-нажатие по ссылке, появится всплывающее окно с информаций, имеющейся на этой странице (т.е. вы можете даже не переходить на другой сайт). Если вы все же захотите перейти, просто нажмите на экран сильнее или уберите палец с экрана. Apple называет эту функцию Peek and Pop. Название, конечно, смешное – но удобство вы оцените очень быстро. А в мессенджерах эта функция выводит на экран предпросмотр диалога.
5. Пункт управления
3D Touch-нажатие на регулировку звука открывает окно более точной регулировки:
Нажатие на мини-плееер открывает его в новом окне более подробно:
Фонарик меняет интенсивность освещения:
Кнопка Яркость позволяет менять интенсивность яркости экрана, а также выводит управление функциями Night Shift и True Tone:
Нажатие на Калькулятор позволяет скопировать последний результат:
Нажатие на кнопку Камера – позволяет быстро сделать селфи, записать видео или снять портрет:
Нажатие на карточку с беспроводными модулями раскрывает большее количество возможностей:
6. Клавиатура превращается в трекпад
Это одна из самых ценных возможностей 3D Touch. Если вам нужно поработать с курсором, просто коснитесь виртуальной клавиатуры iPhone с усилием – и она превратится в сенсорную панель-трекпад! Водите курсор по экрану в любую сторону – новоиспеченный “трекпад” всё поймет.
7. Папка с уведомлениями
Предположим, что на вашем iPhone есть папками с десятком приложений – и у нескольких из них имеется хотя бы одно уведомление. 3D Touch-жест по папке – и на экране выстроятся все программы с красным кружком над ними. Наведите палец на нужное название и отпустите его – приложение запустится немедленно.
8. Загрузка приложений
3D Touch-прикосновение к приложению, которое в данный момент загружает обновление из интернета, даст доступ к дополнительным опциям – приостановке загрузки или расстановке приоритетов (полезно, когда App Store обновляет сразу 30 приложений сразу, и вы хотите как можно скорее запустить одно из них).
9. Приложение Телефон
Нажатие на любой контакт выводит контекстное меню с полезными опциями – звонком через FaceTime, отправка E-mail или SMS. Удобно – не надо лишний раз лазить по менюшкам.
10. Музыка
Возможность вызвать контекстное меню по нажатию на любую песню.
11. Сообщения
Отправка эффектов в iMessage (“пузырей” и т.п.). Для этого необходимо сделать 3D Touch-нажатие по синей стрелочке «вверх».
Иконка контакта. Когда вы делаете 3D Touch-жест по иконке с контактом, выводится меню со всеми способами связи с человеком.
Превью беседы. Требуется прикосновение к иконке с диалогом между вами и нужным собеседником.
12. Сторонние приложения с удачной реализацией 3D Touch
Instagram. Всякий раз, когда вы видите миниатюру, нажмите на неё с усилием – и просмотрите полную версию контента.
WhatsApp. Выводит 4 последних чата и опцию для запуска новой беседы. Также есть вариант для отображения всех избранных сообщений, которые вы когда-либо помечали «звездочкой».
Telegram. Виджет с последними чатами, а также шоткаты Поиска, нового сообщения, съемки фото или видео и т.д.
Runtastic. Виджет статистики последних тренировок, а также шорткаты для быстрого доступа.
Яблык. Официальное приложение нашего сайта предлагает быстрый переход по самым популярным разделам yablyk.com.
Настройка 3D Touch «под себя»
Если вы считаете, что использование 3D Touch требует слишком больших физических усилий – вовсе необязательно отказываться от функции! Её можно настроить так, как вам нравится. Для этого откройте Настройки, выберите Основные, затем Универсальный доступ и 3D Touch, после чего установите подходящую силу нажатия (чувствительность).
Используйте 3D Touch
С каждым годом владельцы iPhone все активнее пользуются функцией 3D Touch. И в этом нет ничего удивительного – после непродолжительного периода привыкания вы просто не сможете обходиться без 3D Touch, ведь это на самом деле очень удобная и экономящая много времени «фича». Не откладывайте знакомство с ней в долгий ящик – попробуйте прямо сейчас!
Как отключить 3D Touch
Если вы так и не смогли привыкнуть к использованию технологии 3D Touch – переключите одноименный тумблер, находящийся по пути Настройки -> Основные -> Универсальный доступ, в положение Выключено.
Введение в 3D Touch
С выходом iPhone 6s и iPhone 6s Plus компания Apple представила нам совершенно новый способ взаимодействия с нашими телефонами: жест сильного нажатия. Как вы знаете, эта функция уже доступна на Apple Watch и MacBook и в MacBook Pro под названием Force Touch. Это — буквально — добавило новое понятие к пользовательскому интерфейсу.
Если вы задаетесь вопросом, почему Force Touch было переименовано на 3D Touch для iPhone, тогда вы не одни такой. Вскоре после того, как Крейг Федериги (Craig Federighi), который также был явно озадачен названием, представил эту новую возможность, возникло много догадок. Чем не устроило название Force Touch? Слишком много шуток из Звездных войн?
Но есть разница! Очевидно, что Force Touch может распознать только сильное нажатие, тогда как функция 3D Touch более чувствительная и может выделить несколько уровней нажатий на основе того, как сильно вы нажимаете.
Хотя изменения могут показаться незначительными, именно они позволяют разработчикам сделать измерения на iPhone более точными. Возьмите это приложение Gravity, например, которое превращает ваш iPhone в цифровые весы с помощью Force Touch. Хотя оно и было отклонено компанией Apple по неясным причинам, идея замечательная. Таким образом, чтобы показать вам, как работает 3D Touch, давайте попробуем сделать похожее приложение!
Давайте начнем
Для начала скачайте этот шаблон проекта, который я создал. По сути, это просто пустое приложение создание на основе шаблона Single View iPhone application. Я создал проект разместил (UILabels & UIImage) и подключил IBOutlets в ViewController.swift.
Дизайн нашего приложения довольно прост: у нас есть один контроллер с 2 метками: одна это заголовок и вторая метка, которая показывает процент силы нажатия на экран iPhone.
Давайте начнем разработку! На iPhone 6s и 6s Plus у объектов UITouch есть два новых свойства типа CGFloat, под названием force и maximumPossibleForce. Force представляет, то насколько сильным является касание, где 1.0 означает среднее касание. MaximumPossibleForce показывает максимальную силу для касания.
Всякий раз, когда пользователь нажимает на сенсор, вызывается метод touchesBegan, а затем touchesMoved, если пользователь водит своим пальцем по экрану, то тогда вызывается touchedCancelled или TouchesEnded в зависимости от ситуации. Для наших целей метод touchesMoved является единственным способом, который нам нужен. TouchesMoved имеет два параметра: touches (касания) и event (событие). Касания — набор (неупорядоченный набор различных объектов) объектов UITouch. Для касания должен быть точно один объект UITouch, но мы можем быть не достаточно осторожными, поэтому настоятельно рекомендуется проверить, равен ли touches.first (первый объект UITouch сенсорного набора) nil при помощи дополнительной привязки. Вставьте следующий метод в ViewController.swift:
В помощью оператора if мы проверяем, поддерживает ли устройство 3D Touch. Эта часть необязательна, если вы делаете этот проект для удовольствия. Однако если вы собираетесь опубликовать приложение в App Store, это является обязательным требованием, выполнение проверки, так как более старые устройства такие как iPhone 6 не поддерживают 3D Touch.
Обратите внимание на то, что я также проверял, запускается ли устройство на iOS 9.0 или более поздних версиях. Я делаю это с помощью нового синтаксиса #available, представленного в Swift 2.0. Если Вы хотите узнать больше о новых функциях и возможностях в Swift 2.0, я рекомендую вам прочитать эту статью. Снова эта проверка необязательна, если ваша целевая платформа для приложения 9.0 или выше.
Чтобы получить силу нажатия в процентах, просто разделите силу касания на максимальную силу (т.е. touch.maximumPossibleForce), которая является максимально возможной силой нажатия. Тогда обновите текст метки. Вы можете обновить метод следующим образом:
Если запустите приложение на iPhone 6s/6s Plus, оно должно показать силу нажатия в процентах при нажатии на экран. Однако так как мы делаем шкалу, возможно вы захотите добавить количество граммов, которые вы взвешиваете на своем iPhone. Согласно Райану Маклиду, датчик взвесит максимальный веса
385g. Таким образом maximumPossibleForce соответствует 385 граммам (приблизительно 3.8 Ньютона). Путем нехитрых вычислений, вы можете конвертировать % силы в граммы. Все, что нам нужно сделать, это умножить процент силы нажатия на 385. Для объектов весом 385 граммов или больше, мы просто изменяем метку на “385+ grams”.
Теперь обновите метод, используя следующий фрагмент кода:
Круто! Вы сделали свое Digital Scale приложения.
На данный момент приложение не сбрасывает вес до нуля после того, как вы убираете предмет или прекращаете касаться вашего экрана. Вы можете реализовать touchesEnded метод, чтобы сбросить метку.
Быстрые действия на главном экране
Еще одно отличное использование 3D Touch — это быстрые действия на главном экране. Quick Actions дают пользователям меню для перехода к каталогу вашего приложения напрямую. Просто сильно нажмите на значок программы, и вы увидите меню. С появлением технологий 3D Touch, такие приложения как Twitter и Instagram и некоторые других приложения, показали как используют эту новую функцию.
- UIApplicationShortcutItemType (обязательно): строка, которая идентифицирует быстрое действие. Обратите внимание, что эта строка должна быть уникальной, определенно для приложения. Хорошая идея состоит в том, чтобы добавить префикс с помощью Вашего идентификатора или некоторых других хитростями для того что бы сделать уникальную строку.
- UIApplicationShortcutItemTitle (обязательно): строка, представляет заголовок для Quick Action который показывается пользователю. Примером может быть “Show last picture taken”.
- UIApplicationShortcutItemSubtitle (необязательно): строка для названия вашего Quick Action. Примером может быть“Last picture taken yesterday”. Если вы хотите добавить иконку для Quick Action, у вас есть два варианта: системная иконка от Apple или пользовательская иконка.
- UIApplicationShortcutItemIconType (необязательно): строка, указывающая, какая системная иконка будет отображаться рядом с Quick Action.
- UIApplicationShortcutItemIconFile (необязательно): строка, указывающая, какая пользовательская иконка будет отображаться рядом с Quick Action.
- UIApplicationShortcutItemUserInfo (необязательно): словарь, содержащий некоторую дополнительную информацию, которую вы хотите выполнить с помощью Quick Action.
Обратите внимание, что я использовал ‘$(PRODUCT_BUNDLE_IDENTIFIER)’ вместо ‘com.appcoda.Scale’ или любой другой идентификатор, который вы используете. Это в целях безопасности: если, по какой-либо причине, я изменю Bundle ID в ‘General’, то будет затронут весь проект и идентификатор будет изменен везде. В противном случае, мне придется менять его везде вручную. В вашем файле info.plist, вы можете увидеть, что ключ Bundle Identifier использует тот же подход: ‘$(PRODUCT_BUNDLE_IDENTIFIER)‘ описывает путь к идентификатору вашего проекта.
Последнее, что осталось сделать, это реализовать Quick action, когда пользователь запускает его. Главная работа обрабатываются в AppDelegate.swift в методе performActionForShortcutItem. Когда Quick Action активируется, вызовется метод. Поэтому вы должны реализовывать этот метод для обработки быстрых действий:
Как ожидается, вызовите обработчик и передадите в него нулевое значение, в зависимости от успеха/отказа быстрого действия. Здесь мы создаем отдельную функцию handleQuickAction, чтобы обработать действие. Отличным способом для представления нескольких случаев Quick Action является использование перечислений с помощью ‘UIApplicationShortcutItemType’ в качестве необработанного значения. Объявите перечисление и реализуйте метод handleQuickAction, как показано ниже, чтобы задать цвет фона синим, когда приложение будет запущено посредством быстрого действия:
Это довольно просто. Если вы теперь запустите приложение и запустите его через быстрые действия, фон станет синим.
О чем же нужно не забыть?
Есть один моментом, который следует учитывать. С точки зрения последовательности запуска есть различие между приложением, которое запускается, и приложением, которое возобновляется с помощью Quick Action. Так как Вы знаете, когда приложение запускается, вызываются методы willFinishLaunchingWithOptions затем метод anddidFinishLaunchingWithOptions. Но когда приложение возобновляется путем Quick Actions, то он лишь провоцирует выполнение метода performActionForShortcutItem.
Если Вы посмотрите на метод didFinishLaunchingWithOptions, то вы увидите, что у нас есть строка кода, чтобы установить цвет фона белым. Он используется, когда приложение запускается обычно, через иконку приложения.
Вот откуда исходит проблема: при запуске приложения с помощью быстрое действие, вызываются willFinish, didFinish, а затем performActionForShortcutItem. Поэтому сначала устанавливается белый цвет фона, а затем меняется на синий. Очевидно, Вы не хотите устанавливать цвет фона белым, когда пользователь запускает приложение с помощью быстрых действий.
Чтобы решить эту проблему, мы должны осуществить проверку в методе didFinishLaunchingWithOptions:
Чтобы определить, запущено ли приложение посредством Quick Action, Вы можете проверить функциональную клавишу запуска UIApplicationLaunchOptionsShortcutItemKey. Объект UIApplicationShortcutItem доступен как значение функциональной клавиши запуска. Если приложение запущено путем Quick Action, мы просто вызываем handleQuickAction, чтобы изменить фон на синий.
Поскольку мы уже обработали быстрое действие в didFinishLaunchingWithOptions, мы не хотим вызывать performActionForShortcutItem, чтобы выполнить handleQuickAction снова. Потому мы возвращаем значение false, сообщая системе не вызывать метод performActionForShortcutItem.
Вот и все! Вы можете теперь протестировать приложение. Quick Action должно работать отлично.
3D Touch — отличный способ добавления удобных и приятных функций к Вашему приложению. Однако Вы должны знать, что не все устройства поддерживают 3D Touch, хотя это может измениться в будущем.
После прочтения этой статьи вы сможете добавлять Quick Actions к вашему iOS приложению и определять силу касания.
Для сравнения вы можете загрузить полный проект Xcode. Не забудьте поделиться мыслями в комментариях об этом руководстве и 3D Touch.