DMV Genius · iOS · EE-2019

Dynamic Type

Экран Today и флоу квиза следуют системному размеру текста. Что поменялось и как экраны выглядят на Large, xxxL и AX2.

ModernTodayView

Экран Today: как поменялись ячейки

Today стал первым экраном с поддержкой. Весь текст идёт через токены, картинки и иконки через adaptiveFrame, отступы между строками через @AdaptiveMetric. Таб-бар и навбар остаются системными.

Large · xxxL · AX2

Today во всю длину

Весь экран без обрезки, в одинаковую ширину. Подписи колонок прилипают к верху, пока листаете. В режиме «Окно iPhone» три экрана прокручиваются вместе: так видно, сколько помещается на одном экране телефона.

TestCoordinator

Флоу квиза

Классический квиз, который открывается с Today: вопрос, результаты теста и экзамена, демо-лимит и разбор ответов. Здесь пришлось переделать больше: у экранов фиксированные шапка и футер, и на крупном тексте контент между ними перестал помещаться.

Вопрос

  • Прокручивается весь контент: картинка, вопрос и ответы. Раньше прокручивались только ответы, и на крупном тексте вопрос с картинкой занимали весь экран. Затухание снизу показывает, что есть продолжение.
  • Картинка вопроса не зависит от размера текста: широкая встаёт на всю ширину.
  • Иконки шапки растут до AX1. Толщина прогресс-бара и скругление следуют за цифрами счётчика, бар центрирован по строке счётчика, «PROGRESS SAVED» стоит под ним.
  • Индикатор ответа растёт до AX1, подсказка под ответом отступает на его ширину.
  • Кнопки подсказок с AX1 встают в столбец. Текст кнопок Next, Skip и Check растёт до AX1.

Результаты

  • Новый порядок на крупном тексте: заголовок, шкала, потом описание. Результат виден без прокрутки, утешительный текст идёт следом.
  • Стрелки на шкале: «Passing score ↓» указывает точно на пунктирную отметку, «63% ↑» на конец заполнения. Метки не выходят за края шкалы.
  • Полицейскому меньший приоритет: он уменьшается обратно росту текста, на AX2 до 0,52, и освобождает место.
  • Кнопки в вертикальный стек с xxxL.
  • Ссылка «or work on your N missed questions» всегда в одну компактную строку: она растёт только до xL.
  • Контент прокручивается, снизу затухание.

Демо-лимит и разбор

  • Демо-лимит: полицейский уменьшается так же, как на результатах, контент прокручивается с затуханием, текст кнопки растёт до AX1.
  • Разбор ответов: с AX1 вопрос показывается целиком, без лимита в три строки. Превью картинки растёт по Title 2 до AX1.
  • Точки «Correct / Incorrect» и иконки статусов растут вместе с текстом.
Large · xxxL · AX2

Квиз: три размера

Кадры размером с экран iPhone: шапка и футер на месте, остальное прокручивается. Кнопка ⤢ у подписи увеличивает кадр.

Рендеры сделаны через Xcode Previews (MCP) на ширине 402 pt. Today для превью собран из компонентов ElelKit на моковых данных, длинные экраны склеены из кусков по 500 pt. Обложки учебных материалов в превью серые: в приложении они приходят с сервера.

Правила и инструменты описаны в InHouseFramework/ElelKit/docs/DYNAMIC_TYPE.md.