TGViewer
easy_dev991 easy_dev991 @easy_dev991 · 617 subscribers
Post #267 636
easy_dev991 #ios #swiftui #performance Убираем лишние вычисления body в SwiftUI View
#ios #swiftui #equatable

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

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

Все, что нужно было сделать для исправления проблемы:


struct HTMLContentView: UIViewRepresentable, @preconcurrency Equatable {
static func == (lhs: HTMLContentView, rhs: HTMLContentView) -> Bool {
lhs.infopost == rhs.infopost && lhs.fontSize == rhs.fontSize
}
// остальной код
}


Это первый случай, когда мне пригодился протокол Equatable с момента публикации статьи об этом, и все же он пригодился 👌
  • 🔥 5
  • ❤ 2
More from @easy_dev991
  1. Oct 15, 2026#android #agent #openspec Если завтра все нейросети сломаются, мне будет не важно, потому…
  2. Oct 4, 2026#agent #opencode #question Чтобы ваш кастомный агент мог задавать вопросы как на скриншоте…
  3. Oct 3, 2026#ios #swift #swiftui #animation Чиним дрейф лоадера в SwiftUI
  4. Oct 1, 2026#agent #skill https://teletype.in/@easy_dev991/Vdp8kJPuWEg
  5. Sep 26, 2026#android #test #agent Делаю приложение-дневник тренировок для андроида, и агент пишет/гоня…
  6. Sep 21, 2026#agent #mcp #firebase Собирал сегодня данные по крашам из firebase, чтобы потом спланирова…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →