Trevor Whittingham 6/23/2026

Fix SwiftUI Lazy Stack Jank Before You Switch To List

Read Original

This article explains why SwiftUI LazyVStack feeds can suffer from jank, such as jumping after rotation, losing row state, or hitching during scrolling. It identifies four root causes: incorrect size estimation, unstable row identity, dynamic subview counts, and discarded row state. The author provides a mental model for lazy stack behavior, including prefetching and size estimation, and uses a mixed-height feed example with article cards, a carousel, and hidden rows to demonstrate common pitfalls. The article emphasizes that many performance issues are not due to SwiftUI being slow but to coding mistakes, and offers guidance on fixing these before switching to List. It references modern SwiftUI scroll APIs from iOS 18/macOS 15 and WWDC26 insights, making it relevant for iOS developers optimizing custom feeds.

Fix SwiftUI Lazy Stack Jank Before You Switch To List

Comments

No comments yet

Be the first to share your thoughts!

Browser Extension

Get instant access to AllDevBlogs from your browser

Top of the Week

No top articles yet