Getir Sadık Çoban Aug 12, 2026

Modern SwiftUI Architecture: Building Scalable Listing Modules

Article Summary

Sadık Çoban from Getir just dropped a masterclass on migrating a massive e-commerce listing screen to SwiftUI while supporting iOS 15. The payoff? A 4.7× performance improvement in production.

Getir's iOS team rewrote their core product browsing experience—a several-thousand-line UIKit monolith—into composable SwiftUI modules. The challenge: support iOS 15 as the minimum target while building a foundation that could adopt iOS 17+ APIs later. This deep dive covers everything from lazy loading thousands of products to syncing subcategory chips with scroll position.

Key Takeaways

Critical Insight

A production-tested SwiftUI architecture that delivers 4.7× faster load times while supporting iOS 15 and providing clean upgrade paths to modern APIs.

The article reveals a clever feedback loop guard that prevents subcategory chips from fighting with scroll position updates—a subtle bug that most teams hit but few document publicly.

About This Article

Problem

Getir's UIKit screens had duplicate product card layouts across multiple variants. The scroll-to-section jumps relied on fragile manual contentOffset math. Time-to-interactive was over two seconds, which hurt conversion rates on their browsing experience.

Solution

Sadık Çoban's team built reusable atomic components like ProductCardView and HorizontalProductListView with clear separation of concerns. They then composed these into a List-driven architecture with precomputed row-based layouts. This eliminated the volatility of nested LazyVGrid and made scrollTo behavior reliable on iOS 15.

Impact

Heap memory usage only increased 15% while supporting three prefetched categories at once. P90 time-to-interactive dropped from 4.77 seconds to 1.62 seconds. Older devices saw the biggest improvements, which directly benefited the iOS 15-floor user base.