СпонсорствоВойтиОтправить
Блог

Mac с сенсорным экраном выходят 6 ноября. Вот что я бы проверил в своём приложении для Mac

Автор: Justinas Rolando, создатель MacPip

Короткий ответ

MacBook Pro с дисплеем PROLED XDR это первый Mac с сенсорным экраном, он выходит 6 ноября. Apple говорит, что macOS превращает касания в клики, поэтому большинство приложений уже работает. Чтобы приложение хорошо ощущалось под пальцем, сделайте области нажатия не меньше 36 pt, замените старое отслеживание мыши распознавателями жестов и проверьте всё, что находится в строке меню или в верхней части экрана.

28 октября Apple представила MacBook Pro с дисплеем PROLED XDR, и это первый Mac, которого можно коснуться. Он поступит в продажу пятница, 6 ноября. Я делаю небольшие приложения для Mac, поэтому мой первый вопрос был не «хочу ли я такой». Он был: «что будет с моими приложениями, когда по ним ткнут пальцем?»

Вот что я нашёл и что собираюсь проверить в своих приложениях на этой неделе.

Что изменилось

Так что вопрос не в том, заработает ли приложение. А в том, не покажется ли оно сломанным под пальцем. Клик по кнопке в 16 pt нормален на трекпаде и раздражает на большом пальце.

Что Apple советует разработчикам

Apple выложила страницу Get ready for Touch on Mac с тремя видео. Самое практичное из них, Bring Touch to your Mac app. Его примеры кода говорят, коротко:

  1. Увеличьте области нажатия минимум до 36 pt по каждой оси, когда ввод сенсорный. Для мыши ничего не меняется.
  2. Переходите от самодельного отслеживания мыши к распознавателям жестов. Если у вас есть цикл mouseDown, читающий события перетаскивания, пример заменяет его на NSPanGestureRecognizer с allowedTouchTypes, равным .direct.
  3. Решите, что делает один палец в прокручиваемых областях. На холсте, где один палец должен рисовать, пример задаёт для minimumNumberOfTouchesForScrolling значение 2.
  4. Отключайте системные жесты только там, где они мешают, с помощью disablesDirectTouchSystemGestures у окна или directTouchSystemGesturesDisabled() в SwiftUI.
  5. Сообщите, что приложение рассчитано на касания, с помощью ключа NSIsTouchNative в Info.plist.

Есть также Design for Touch on Mac и Bring Live Activities to Mac. Apple проводит две онлайн-лаборатории для групп с инженерами и дизайнерами: 18 ноября с 9 до 10 утра по тихоокеанскому времени и 19 ноября с 6 до 7 вечера по тихоокеанскому времени. Бета Xcode 27.3, которая идёт в комплекте, всё ещё была помечена «Скоро», когда я смотрел 3 ноября.

Что я проверил бы в своём приложении, по порядку

Это мои мнения, а не список Apple.

  1. Найдите самые маленькие элементы управления. Значки панели инструментов, маленькая шестерёнка, кнопка закрытия на своей панели, флажки в тесном окне настроек. Всё, что меньше 36 pt в любую сторону, исправляйте в первую очередь.
  2. Найдите то, что показывается только при наведении. Палец не наводится. Если кнопка удаления или подсказка появляются, только когда указатель над строкой, пользователь с сенсорным экраном может их не найти. Дайте им другой путь.
  3. Попробуйте каждое перетаскивание. Изменение порядка в списках, вытаскивание файлов из окна, изменение размера разделённого вида. Именно там обычно живёт самодельный код для мыши, поэтому там чаще всего что-то ощущается не так.
  4. Проверьте, что скрывает правый клик. Если действие есть только в контекстном меню, сделайте к нему и видимый путь.
  5. Если ваше приложение живёт в верхней части экрана, проверьте его там. У приложений в строке меню и рядом с вырезом появился новый сосед, Dynamic Island, и новый способ нажатия. Если вы делаете одно из приложений в строке меню на MacPip или что-то рядом с вырезом, самое время посмотреть.
  6. Понаблюдайте, как пользуется кто-то другой. Дайте Mac человеку, который никогда не видел ваше приложение, и ничего не говорите. Десять минут такого расскажут больше, чем любой список вроде этого.

Если у вас нет такого Mac, большую часть списка всё равно можно сделать. Шаги 1, 2 и 4 это внимательный осмотр собственных окон, а пример кода собирается с новым SDK, как только выйдет бета Xcode 27.3.

Стоит ли спешить?

Не думаю. Apple говорит, что касания превращаются в клики, это дорогие ноутбуки Pro, и сначала они поступят небольшой группе. Крупные области нажатия и меньше действий только при наведении помогают и тем, кто пользуется трекпадом, средствами доступности или большим внешним экраном, так что работа не пропадёт, даже если Mac с касаниями останутся нишевыми.

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

Пока вы тестируете

Новый Mac также хороший повод проверить скучные вещи. Ваша сборка универсальная или только для Apple silicon, и говорит ли об этом ваш сайт? Apple сообщает, что общая поддержка Rosetta 2 для приложений закончится после macOS 27, как писал MacRumors, так что у приложения только для Intel есть срок годности. Новая проверка универсального бинарного файла читает вывод lipo или file и говорит, на чём работает каждая часть. В чек-листе запуска по порядку собраны остальные скучные дела, а как отправить приложение для Mac описывает путь через магазин и прямую раздачу, если вы выпускаете обновление.

Если вы выпускаете обновление с поддержкой касаний, скажите об этом в примечаниях к выпуску и обновите описание своей карточки, чтобы те, кто ищет приложения для касаний, могли вас найти. А если вашего приложения ещё нет на MacPip, добавить его можно бесплатно.

Источники

Читайте дальше

Отправьте приложениеБесплатные инструменты для создателей