Как SwiftUI понимает, что перерисовывать? Что такое identity и diffing?
Суть
SwiftUI хранит не ваши структуры, а attribute graph — дерево узлов с состоянием и зависимостями. При изменении зависимости (@State, прочитанное свойство @Observable-модели, @Environment) помечаются только зависимые узлы, их body пересчитывается, новое дерево сравнивается со старым (diffing), и в UIKit/Core Animation уходят только реальные изменения. Чтобы сопоставить старые и новые узлы, фреймворку нужна идентичность.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep