Что такое hang и hitch? Почему главный поток должен быть свободен?
Суть
Главный поток обрабатывает касания, выполняет ваш UI-код и готовит каждый кадр. Пока он занят, приложение не отвечает и не рисует. Проблемы отзывчивости делят на два вида:
- Hang (зависание) — главный поток не обрабатывает события заметное время: тап не срабатывает, скролл не начинается. Apple считает зависанием блокировку от 250 мс; пользователь замечает задержку уже около 100 мс.
- Hitch (рывок) — кадр сдан позже, чем должен был появиться на экране, и анимация или скролл дёргаются. Бюджет кадра — 16,7 мс при 60 Гц и 8,3 мс при 120 Гц (ProMotion).
Hitch'и измеряют как hitch time ratio — миллисекунды опоздания на секунду анимации. Ориентир Apple: до 5 мс/с — хорошо, 5–10 — заметно, больше 10 — плохо.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep