Vedran Burojevic

2026

NavigationStack in production: deep links, programmatic navigation, and state that survivesHow to use NavigationStack for real apps: wiring deep links, managing programmatic navigation paths, and keeping state restoration reliable across interruptions.11 min readSwiftUI design handoff: turning Figma into maintainable UIHow designers and iOS engineers can turn Figma work into tokens, components, states, and interaction rules that survive implementation.11 min readState restoration on iOS: making interrupted flows reliableHow to preserve navigation, drafts, pending work, and user trust when iOS interrupts your app at the least convenient moment.9 min readSwiftUI forms that stay manageable as the product growsA maintainable SwiftUI form is not one giant view with thirty bindings and a prayer. Split by section ownership, keep drafts local, validate with intent, and stop letting product growth turn basic data entry into sludge.9 min readModeling app state so SwiftUI updates stay predictablePredictable SwiftUI starts with boring state boundaries: keep ownership clear, derive local view state instead of sharing giant models, and stop letting one write ripple through half the app.10 min readImage loading on iOS: caching, decoding, and the mistakes that make scrolling worseA practical image-loading setup for iOS: cache the right thing, decode off the main thread, control request churn, and stop blaming scrolling jank on the collection view.11 min readBuilding a SwiftUI design system without overengineering itA useful SwiftUI design system is not a giant abstraction layer. It is a small set of tokens, components, and rules that make product work faster without hiding the platform or freezing the app in theory.9 min readSnapshot testing in 2026: when it helps, when it lies, how to keep it saneSnapshot tests are useful when they protect stable UI or serialization contracts, but they become expensive noise the moment they start standing in for design review, product judgment, or weak lower-level tests.10 min readSwiftUI lists that don’t lag: identity, diffing, and avoiding layout thrashMost SwiftUI list “performance problems” are self-inflicted: unstable identity, accidental view churn, and heavy layout work in rows. Here’s how to make lists fast, measurable, and boring.7 min readSwiftUI animations that don’t glitch: transactions, explicit vs implicit, and performance-safe patternsA practical SwiftUI animation guide: how transactions actually work, why animations disappear, and how to ship smooth UI without expensive re-renders.4 min readSwiftUI Observation performance: stop unwanted re-renders and measure what mattersPractical patterns for @Observable, avoiding accidental invalidations, and proving performance wins with measurement (not vibes).5 min read
← All writing

Command menu

Navigate the site or run an action