TGViewer
MobDev Portal | Мобильная Разработка MobDev Portal | Мобильная Разработка @mobdevportal · 5.39K subscribers
Post #496 2.31K
Челлендж 120FPS в SwiftUI: производительность LazyVStack

LazyVStack — это подход, рекомендуемый Apple для скроллируемых лент. Ленивые стеки подгружают и рендерят свои сабвью по требованию, когда они приближаются к вьюпорту (видимой на экране части вашего лейаута).

Трейс в Instruments при загрузке и скролле выглядит гораздо «здоровее». На нём видно, что VSync стабильно укладывается в целевые 16,67 мс на кадр для 60fps, даже в режиме энергосбережения.

При скролле вниз через сотни элементов мы получаем лишь несколько совсем незначительных просадок фреймрейта, но без лагов. С точки зрения SwiftUI, на экране одновременно находится всего несколько айтемов, поэтому всё можно без проблем посчитать и отрендерить в те миллисекунды, что есть между кадрами.

Использование памяти у LazyVStack достаточно стабильное. Оно немного подскакивало, когда я скроллил очень быстро, но не было резких всплесков: данные вью выкидывались из памяти по мере того, как они уходили за пределы вьюпорта.

Полную статью смотрите здесь

👉 @MobDevPortal
  • ❤ 5
  • 👍 2
More from @mobdevportal
  1. Aug 25, 2026Совет по SwiftUI Используйте role у кнопок, чтобы явно указать SwiftUI, какое действие вып…
  2. Aug 25, 2026Пикер реакций в стиле Apple Music на SwiftUI https://youtu.be/fHV6YiodOi4 👉 @MobDevPortal
  3. Aug 8, 2026Совет по SwiftUI В iOS 26+ используйте SubscriptionOfferView, чтобы отображать компактное…
  4. Aug 8, 2026Интерактивный слайдер таймлайна из приложения Apple Sports на SwiftUI https://youtu.be/TAd…
  5. Jul 28, 2026Сворачиваемая панель вкладок как в приложении Instagram на SwiftUI https://youtu.be/691o2F…
  6. Jul 28, 2026Совет по SwiftUI Используйте contentMargins(), чтобы задать кастомные отступы вокруг конте…
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 →