Что означает «золотое значение» 60 fps в контексте iOS?

«Что означает «золотое значение» 60 fps в контексте iOS?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

60 fps (кадров в секунду) — это стандартная частота обновления экрана большинства iOS-устройств. "Золотым" оно называется, потому что достижение стабильных 60 fps обеспечивает визуально плавный и отзывчивый интерфейс.

Техническое обоснование:

  • Дисплей обновляется каждые ~16.7 мс (1000 мс / 60 кадров).
  • Система должна уложить все вычисления для одного кадра (layout, draw, commit) в этот интервал.
  • Падение ниже 60 fps воспринимается как "лаги" (jank).

Как достичь и измерить 60 fps:

  1. Избегайте блокировок главного потока: Выносите тяжелые вычисления, сетевые запросы и работу с диском в фоновые очереди.
  2. Оптимизируйте рендеринг:
    // Вместо постоянных пересчетов в real-time:
    view.layer.cornerRadius = 10 // Дешево
    view.layer.shadowPath = UIBezierPath(rect: view.bounds).cgPath // Предвычисление тени — оптимизация
  3. Используйте инструменты:
    • Instruments > Core Animation: Проверяйте FPS и находите проблемные места (missed vsync, off-screen rendering).
    • Debug > Color Offscreen-Rendered Yellow: Подсвечивает дорогие слои.

Для устройств с ProMotion (120 Hz): Целью становится 120 fps. Используйте CADisplayLink с preferredFramesPerSecond для адаптации.