Mac Catalyst
Используя Mac Catalyst для создания Mac-версии вашего приложения для iPad, вы делаете его доступным для новой аудитории и предоставляете уже существующим пользователям возможность наслаждаться им в новой среде.
Руководство разработчика см. В разделе "Создание версии вашего приложения для Mac".
Прежде чем начать
Большинство приложений для iPad являются отличными кандидатурами на адаптацию, но некоторые полагаются на функции iPad, которых нет на Mac. Например, если для основных функций вашего приложения требуются возможности iPad, такие как гироскоп, навигация, акселерометр или задняя камера, платформы iOS (HealthKit
или ARKit), то они могут не подойти для Mac.

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

  • Поддерживать многозадачность. Приложения, которые хорошо справляются с масштабированием интерфейса для поддержки режимов «Разделение на части», «Скольжение» и «Картинка в картинке», приближаются к конечной цели поддержки масштабируемого изменения размера окна, которого ожидают пользователи Mac.
  • Поддерживать перетаскивания. Если эта функция поддерживается в приложении для iPad, то перетаскивание будет доступно и для Mac.
  • Реагировать на сочетания клавиш, включая обычные сочетания клавиш MacOS. Несмотря на то, что клавиатура не всегда может быть доступной для приложения для iPad, пользователи iOS и macOS оценят использование сочетаний клавиш для оптимизации их взаимодействия с вашим приложением.
Планируйте улучшения для вашего
приложения Mac
Когда вы используете Mac Catalyst для создания версии своего приложения для Mac, вы получаете автоматическую поддержку основных функций Mac, таких как:

  • Системные настройки;
  • Ввод с клавиатуры, трекпада, мыши и сенсорной панели, включая фокусировку клавиш и навигацию с помощью клавиатуры;
  • Управление окнами;
  • Расширенное взаимодействие с текстом, включая копирование и вставку, а также контекстное меню для редактирования;
  • Управление файлами.

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

  • Разделенный вид;
  • Файловый браузер;
  • Просмотр активности;
  • Форма листа;
  • Контекстные действия.

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

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

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

Навигация. Многие приложения для iOS и macOS собирают данные одинаково, используя различные элементы управления и визуальные индикаторы, чтобы помочь людям понимать информацию и перемещаться по ней. Конкретные указания см. в разделе Понимание структуры приложений MacOS и допущений навигации.

Пользовательский ввод и взаимодействие. Несмотря на то, что iPad и Mac принимают пользовательский ввод данных с различных устройств (дисплей Multi-Touch, клавиатура, мышь и трекпад), сенсорные взаимодействия служат основой для условностей iOS, а взаимодействия с клавиатурой и мышью вызваны условностями macOS. Для получения дополнительной информации см. Пользовательские взаимодействия MacOS.

Масштабирование контента. Текст в MacOS-версии приложения для iPad выглядит так же, как и в iOS, поскольку шрифты SF доступны на обеих платформах. Тем не менее базовый размер шрифта в iOS составляет 17 пунктов, тогда как самый распространенный размер шрифта в macOS - 13 пунктов. Обеспечение соответствия текста, элементов интерфейса и среды отображения MacOS, происходит в iOS автоматически за счет уменьшения представления до 77%. Для получения соответствующих рекомендаций см. Типография.

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

  • Разделение одного столбца содержимого и действия на несколько столбцов.
  • Предоставление уровня доступности рядом с основным содержимым, а не внутри всплывающего окна
  • Одновременное использование двух и более уровней иерархии приложения
Для получения дополнительной информации см. раздел Допущения визуального дизайна.


Понимание структуры приложений MacOS и навигации.
Хорошо продуманная навигация приложения отражает структуру данных и поддерживает основное назначение приложения в соответствии с допущениями платформы. Чтобы пользователи MacOS чувствовали себя комфортно, вам необходимо перевести условные обозначения навигации iOS в эквивалентные условные обозначения macOS.


Большинство приложений для iPad используют либо прямую, либо иерархическую навигацию, а некоторые используют комбинацию обоих. Прямая навигация представляет области функциональности или категории данных как группы, которые всегда доступны. Например, Music и App Store используют прямую навигацию, чтобы предоставить пользователям постоянный доступ к областям высокого уровня, таким как: "Библиотека", "Для вас", "Обзор", "Сегодня" и "Игры". Иерархическая навигация представляет информацию в древовидном виде, по ней пользователи могут перемещаться, выбирая один элемент в интерфейсе до тех пор, пока не достигнут места назначения. Например, в настройках пользователи могут настроить замену текста, выбрав «Основные»> «Клавиатуры»> «Замена текста».


Как правило, приложения iPad используют следующие элементы управления UIKit для реализации навигации:


  • Панель вкладок. Панель вкладок поддерживает прямую навигацию, отображая категории верхнего уровня в постоянной панели нижней части экрана.

  • Контроль страницы. Элемент управления страницей отображает точки внизу экрана, которые указывают положение текущей страницы в списке страниц.

  • Раздельное представление. Раздельное представление обеспечивает иерархическую навигацию путем основного и вторичного представления элементов и функций (подробное представление). Когда люди выбирают элемент в основном представлении, раздельное представление отображает содержимое, связанное с этим элементом во вторичном представлении.



Если вы используете панель вкладок в своем приложении для iPad, рассмотрите возможность использования сегментированного элемента управления или стиля фона боковой панели в контроллере с раздельным видом. Оба элемента схожи с допущениями о навигации в окнах в стиле Mac. Чтобы выбрать между этими пунктами, рассмотрите следующее:


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

  • На боковой панели отображается список элементов верхнего уровня, каждый из которых может раскрывать список зависимых элементов. Использование боковой панели упрощает навигацию, поэтому вы можете позволить пользователям просматривать содержимое каждой вкладки на боковой панели. Боковые панели - хороший выбор для отображения категорий определенных пользователем и приложением, которые не так часто меняются. Например, категории «Следующие» и «Предлагаемые» на боковой панели «Новости» не изменяются, даже если пользователи могут видоизменять перечисленные в каждой категории элементы.


Также вы можете комбинировать сегментированный элемент управления и боковую панель. Например, можно использовать сегментированный элемент управления для размещения вкладок и боковую панель для отображения содержимого каждой вкладки. Независимо от того, каким образом вы адаптируете панель вкладок, обязательно предоставьте пользователям быстрый доступ к содержимому каждой вкладки через меню MacOS View. Чтобы узнать больше о меню, см. Раздел «Вставка команд приложения в меню».


Если вы используете раздельное представление в приложении iPad, macOS автоматически переводит его в раздельное представление в версии Mac для вашего приложения. Главное представление является хорошим выбором для представления списка элементов на любой из платформ, которые могут различаться, например, списком почтовых ящиков, поскольку он позволяет включать метки и значки, а также поддерживает сортировку и фильтрацию. Однако, если ваша иерархия содержимого глубже двух уровней, средние уровни между главным представлением и текущим подробным представлением не будут отображаются в окне Mac. Чтобы люди могли отслеживать свои действия, включите кнопку «Назад», располагающуюся на панели инструментов.


Если вы используете элемент управления страницей или другой способ включения боковой навигации, предоставьте пользователям специальные элементы управления для просмотра страниц. Если вы используете данный тип боковой навигации, можете помочь пользователем перемещаться по страницам в вашем окне Mac, отображая кнопку «Следующая / Предыдущая» на панели инструментов и добавляя команды навигации в строки меню. Например, Stocks в macOS отображает как кнопку «Назад» на панели инструментов, так и команды «Следующая история» и «Предыдущая статья» в меню «Вид».


Если у вас есть несколько окон в приложении для iPad, то можно создать несколько окон и в версии MacOS. Кроме того, многие приложения MacOS позволяют открывать документы или другой контент на новой вкладке, а не в новом окне. Например, пользователи могут открывать новую веб-страницу для каждой вкладки в окне Safari или в файловой системе в окне Finder. Когда пользователи используют Системные настройки для вкладок, система моментально добавляет соответствующие пункты в меню приложения следующим образом: «Вид»> «Показать панель вкладок» и «Окно»> «Показать следующую вкладку».


Поддерживайте взаимодействия, разработанные для macOS, с пользователем
Постоянство выбора - фундаментальное различие между iOS и macOS во взаимодействии пользователя . Поскольку многие пользователи macOS ожидают, что будут управлять приложениями и системой, используя только клавиатуру, выбранное состояние объектов должно сохраняться, чтобы люди могли использовать одну последовательность нажатий клавиш для выбора объекта и вторую последовательность, чтобы воздействовать на него. В отличие от этого, пользователи iOS хотят воздействовать на объект, при этом не выбирая его, поэтому объекты не нуждаются в сохранении. Как правило, приложения для iOS не оптимизированы для взаимодействия с клавиатурой.

Каким образом различия во взаимодействии могут повлиять на пользовательский опыт:

  • Пользователям macOS нужны кнопки «Далее» и «Предыдущий» вместо жестов iPad или трекпада, например, пролистывания страниц.

  • На Mac люди хотят использовать клавишу Delete или выбрать команду «Удалить» в меню, поэтому отображение кнопки «Удалить» в пользовательском интерфейсе обычно не требуется.

  • Пользователи iOS привыкли к тому, чтобы постоянно обновлять содержимое. А пользователи Mac хотят использовать команду меню: "Проверка на наличие нового контента".


По мере того, как вы переводите шаблоны взаимодействия с iPad на Mac, сосредоточьтесь на том, чтобы позволить людям управлять объектами в соответствии с допущениями платформы.


Ввод с клавиатуры

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

Если это имеет смысл, сделайте так, чтобы пользователи Mac могли легко использовать клавиатуру, мышь или трекпад одновременно.

Если вы реализуете UIKeyCommand в своем приложении для iPad, чтобы запрограммировать последовательности клавиш для команд, то MacOS-версия вашего приложения преобразует эти ярлыки в меню. Таким образом, вам следует сопоставить каждую основную область просмотра, т.е. каждую вкладку с сочетаниями клавиш ⌘1, ⌘2 и т. д.для отображения в меню «Вид» версии macOS вашего приложения.

Если в пользовательском интерфейсе приложения для iPad есть кнопка «Удалить», то рассмотрите возможность ее удаления из версии macOS и предоставления пользователям возможности применять клавишу «Удалить» или команду: «Правка»> «Удалить».


Жесты

Когда приложение для iPad работает в macOS, большинство жестов конвертируются автоматически. Например:
ПРИМЕЧАНИЕ РАЗРАБОТЧИКА
Касание двумя пальцами в жестах долгого нажатия и поворота отправляют в область под указателем, а не в область под каждым касанием.
Поместите команды приложения в меню
На Mac, строка меню в верхней части экрана, предоставляет для пользователей согласованное расположение команд, которые управляют как приложениями, так и системой. Строка меню содержит стандартные и пользовательские меню, предоставляемые текущим приложением к меню Apple, в котором перечислены доступные команды системного уровня. Пользователи Mac хотят, чтобы каждое приложение macOS сделало свои команды доступными в строке меню.


ПРИМЕЧАНИЕ РАЗРАБОТЧИКА
Вы должны использовать UICommand для представления каждой команды в вашем приложении iPad, чтобы эти команды можно было поместить в меню строки меню MacOS. Для поддержки сочетаний клавиш для команд используйте UIKeyCommand.


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

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

  • Имя приложения
  • Файл
  • Редактировать
  • Просмотреть
  • Окно
  • Помощь


ЗАМЕТКА
Большинство приложений macOS включают меню «Вид» и меню «Окно». Хотя эти меню могут показаться похожими, они имеют разные цели. Люди используют меню «Вид» для настройки внешнего вида окон приложений и перемещения между различными функциональными областями, в то время как меню «Окно» используется для навигации, организации и управления коллекцией окон в приложении. Чтобы узнать больше, см. Строки Меню.


Если некоторые действия вашего списка не имеют смысла в создании стандартных строках меню, можно добавить пользовательское меню. Приложения Mac часто добавляют пользовательские строки меню для команд, которые связаны либо с основным объектом приложения, либо с рабочим процессом основного приложения. Например, Mail в macOS использует меню «Сообщение» и «Почтовый ящик» для отображения команд, которые работают с основными объектами приложения. В отличие от этого, Keynote использует меню «Упорядочить» для отображения команд, связанных с основным рабочим процессом упорядочения объектов в слайде.

После того, как вы сгруппировали действия своего приложения в меню, необходимо упорядочить элементы в каждом меню таким образом, чтобы это приобрело смысл. Любое стандартное меню определяет рекомендуемый для элементов порядок, поэтому важно следовать порядку, который вы поддерживаете. Например, пользователи Mac хотят, чтобы меню «Файл» предоставило элементы в следующем порядке:

  • Новый…
  • Открыть…
  • Открыть недавние
  • Закрыть


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

Кроме того, в меню важно поддерживать сочетания клавиш для всех распространенных команд, чтобы можно было воспользоваться как пользователями Mac, так и пользователями iPad. Кроме сочетания клавиш для стандартных пунктов меню, вы также можете определить сочетания для пользовательских элементов. Если пользовательские пункты меню уместны, обязательно ознакомьтесь с руководством по созданию пользовательских сочетаний клавиш в разделе «Определение сочетаний клавиш».


Контекстные меню

Контекстные меню помогают людям обнаруживать действия, которые выполняются над объектом, не открывая меню строки. Если вы поддерживаете контекстные меню в приложении для iPad, система их автоматически преобразует и в версии MacOS.


Для того, чтобы пользователям Mac было удобнее, найдите дополнительные места для контекстных меню. Например, при наличии общих действий, добавьте контекстное меню, в котором они будут перечислены. Вы также можете добавить контекстное меню в позицию, которая представляет объект. Например, объекты папок в Finder поддерживают контекстные меню, которые предлагают действия, такие как: «Открыть в новой вкладке», «Переименовать» и «Дублировать».

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


Разметка

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

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


Подумайте о перемещении элементов управления из основного интерфейса вашего приложения для iPad на панель инструментов окна macOS. Кроме того, поместите команды, связанные с этими элементами управления в строки меню вашего приложения MacOS.


ЗАМЕТКА
В macOS кнопка панели инструментов всегда видна, но текущий контекст может сделать ее недоступной; в iOS кнопка панели инструментов всегда доступна, но текущий контекст может удалить ее с панели инструментов. Например, если ваше приложение для iPad содержит кнопку панели инструментов, которая работает только на одной вкладке, версия macOS отобразит эту кнопку как недоступную на всех других вкладках. Чтобы не запутать людей, лучше использовать кнопку «шестеренка» на панели инструментов, потому что элементы в меню кнопки шестеренки различаются в зависимости от текущего раздела приложения.



Переместите кнопки с левого или правого края экрана. На iPad размещение кнопок по среднему левому или среднему правому краю экрана может помочь людям добраться до них, но на Mac это эргономическое соображение неприменимо. Возможно, вы захотите переместить элементы управления в верхний или нижний край области содержимого или поместить их на панель инструментов окна macOS.


Цвет

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


Динамическая система цветов, разработанная для фонов iOS, автоматически применяется к соответсвующим эквивалентам в macOS, как показано ниже.


Другие семантически определенные цвета iOS, такие как: системные цвета, цвета меток и разделителей, сопоставляются с цветами MacOS по именам. Инструкции см. в разделе System Colors (macOS) и Dynamic System Colors (macOS).

Не раскрашивайте кнопки в строках таблицы. В приложении для iPad вы применяете оттенок для того, чтобы показать активность кнопок в строках таблицы, а в macOS тонированные кнопки в строках таблицы будут выглядеть неуместно.


Типографика

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

Убедитесь, что мелкий шрифт разборчив на Mac. Возможно вам придется увеличить размер шрифта наименьшего размера, который установлен для iPad, для того, чтобы текст оставался читаемым в версии MacOS. Обратите внимание, что динамический тип в macOS не поддерживается .


Пользовательские значки и символы

Создайте версию значка вашего приложения для MacOS. Привлекательные значки приложений MacOS заметно отличаются от значков приложений iOS. Например, значки macOS могут иметь непрямоугольную форму, часто перегибаются и поворачиваются. По умолчанию, macOS применяет тень к значку вашего приложения iOS, чтобы на Mac он выглядел естественно, но лучше всего разработать версию значка специально для Mac. Чтобы узнать больше о том, как выбрать дизайн для значка в приложении MacOS, см. «Значок приложения».

Создайте специфичные для платформы символы, если это необходимо. Если в вашем приложении для iPad используются пользовательские символы, создайте новые, более привычные для Mac. Xcode представляет собой отдельный каталог ресурсов для macOS, который можно использовать в вашем iPad приложении.


Настройки

Если в вашем приложении есть настройки, которые появляются в приложении «Настройки iOS», то macOS автоматически отображает эти же элементы в окне настроек в версии для Mac. По умолчанию, macOS добавляет кнопку панели инструментов в окно настроек для каждого элемента в iOS, предоставляя ему стандартный значок системных настроек и заголовок, который вы использовали для элемента в приложении «Настройки».

Пользователи Mac хотят, чтобы окно настроек появится, когда они выберут пункт меню «Настройки» в меню вашего приложения. Однако есть несколько способов для улучшения отображение элементов настроек и создания более похожих на Mac.

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

Сделайте управление переключателями проще для пользователей MacOS.
В отличие от приложений для iPad, macOS часто отображает предупреждение, когда кто-то использует переключатель для внесения изменений в Системные настройки. Кроме того, переключатель в настройках iOS может содержать небольшой объем текста, который предоставляет дополнительную информацию о том, как переключатель влияет на работу пользователя. В версии вашего приложения для Mac вы можете создать краткое описание для сопровождения переключателя macOS, а также указать контент, который будет отображаться в уведомлении о подтверждении. Руководство разработчика см. в разделе Отображение окна настроек.