41554 blogs · [ { "id": "01a0dd13-7fcf-736e-bcf4-d7bc03732047", "title": "Swift's New if let Syntax - Cleaner Optional Unwrapping", "url": "https://www.sagarunagar.com/blog/swift-optional-binding-shorthand/", "published_at": "2026-09-26T00:00:00+00:00" }, { "id": "01a0bdfb-7249-7349-96b0-86bcb1fe2df0", "title": "Swift @discardableResult - Silence Unused Result Warnings", "url": "https://www.sagarunagar.com/blog/swift-discardableresult-attribute/", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a09540-b8bc-72bc-846c-00bf3cde926f", "title": "Designing for iPhone Duo - HIG Guide in 5 Minutes", "url": "https://www.sagarunagar.com/blog/iphone-duo-human-interface-guidelines/", "published_at": "2026-09-12T00:00:00+00:00" }, { "id": "01a087da-4628-7002-9b5b-44078b8da8f3", "title": "Conditional Breakpoints in Xcode - Debug Specific States Faster", "url": "https://www.sagarunagar.com/blog/xcode-conditional-breakpoints/", "published_at": "2026-09-05T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa44df16111", "title": "Fix Sluggish SwiftUI Previews Instantly With Static Mock Data", "url": "https://www.sagarunagar.com/blog/fix-sluggish-xcode-swiftui-previews-mock-data/", "published_at": "2026-08-29T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa44e2db980", "title": "SwiftUI geometryGroup() - Isolate View Geometry for Smooth Animations", "url": "https://www.sagarunagar.com/blog/swiftui-geometrygroup/", "published_at": "2026-08-22T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa44eaa3007", "title": "SwiftUI concentricCornerRadii in iOS 27 - Complete GeometryReader guide", "url": "https://www.sagarunagar.com/blog/swiftui-concentriccornerradii-ios-27/", "published_at": "2026-08-15T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa44f3f7072", "title": "SwiftUI Document APIs in 2027 Releases - Everything You Need to Know", "url": "https://www.sagarunagar.com/blog/swiftui-document-apis-2027-whats-new/", "published_at": "2026-08-08T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa4501e9db1", "title": "AsyncImage Finally Gets Caching in SwiftUI", "url": "https://www.sagarunagar.com/blog/asyncimage-caching-wwdc-2026/", "published_at": "2026-08-01T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa450c366f0", "title": "SwiftUI @ContentBuilder - Faster Type Checking in Xcode 27", "url": "https://www.sagarunagar.com/blog/swiftui-contentbuilder-xcode-27/", "published_at": "2026-07-25T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa451717656", "title": "SwiftUI Text Selection Improvements in iOS 27", "url": "https://www.sagarunagar.com/blog/swiftui-textselection-ios-27/", "published_at": "2026-07-18T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa451862f2f", "title": "Mastering SwiftUI Toolbar Overflow Menus in iOS 27", "url": "https://www.sagarunagar.com/blog/swiftui-toolbar-overflow-menu-api/", "published_at": "2026-07-11T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa451bf7076", "title": "SwiftUI .crossFade Navigation Transition in iOS 27", "url": "https://www.sagarunagar.com/blog/swiftui-crossfade-navigation-transition/", "published_at": "2026-07-04T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa452bc199f", "title": "Reordering Beyond List - SwiftUI iOS 27", "url": "https://www.sagarunagar.com/blog/swiftui-reorderable-lazy-layouts-ios-27/", "published_at": "2026-06-27T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa453557e93", "title": "SwiftUI's new item based presentations in iOS 27", "url": "https://www.sagarunagar.com/blog/swiftui-item-based-alert-confirmation-dialog/", "published_at": "2026-06-20T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa453b3830a", "title": "SwiftUI's New .prominent Tab in iOS 27 Is Not a Floating Action Button", "url": "https://www.sagarunagar.com/blog/swiftui-prominent-tab-is-not-a-floating-action-button/", "published_at": "2026-06-13T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa454272113", "title": "SwiftUI Localization Guide - Change Language Without Restarting the App", "url": "https://www.sagarunagar.com/blog/swiftui-app-language-switching-without-restart/", "published_at": "2026-06-06T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa454948c17", "title": "Swift Sendable Explained - Compile Time Data Race Prevention in Swift Concurrency", "url": "https://www.sagarunagar.com/blog/swift-sendable-compile-time-data-race-prevention/", "published_at": "2026-05-30T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa454c6ce25", "title": "Swift Task Lifecycle Management - Structured vs Unstructured Concurrency", "url": "https://www.sagarunagar.com/blog/swift-task-lifecycle-management/", "published_at": "2026-05-23T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45558f97a", "title": "ContentUnavailableView in SwiftUI - Complete Guide With Examples", "url": "https://www.sagarunagar.com/blog/contentunavailableview-swiftui/", "published_at": "2026-05-16T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa4559da08c", "title": "Accelerate Framework in Swift - Complete Guide to High-Performance Computing", "url": "https://www.sagarunagar.com/blog/accelerate-framework-swift-guide/", "published_at": "2026-05-09T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa4563705f9", "title": "Understanding 'indirect' keyword in Swift - Recursive Enums Explained Clearly", "url": "https://www.sagarunagar.com/blog/indirect-keyword-swift-recursive-enums/", "published_at": "2026-05-02T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa456ab420f", "title": "Understanding inout Parameters in Swift - How They Work and When to Use Them", "url": "https://www.sagarunagar.com/blog/swift-inout-parameters/", "published_at": "2026-04-25T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa4570ea2d4", "title": "associatedtype in Swift Explained - A Complete Guide with SwiftUI Examples", "url": "https://www.sagarunagar.com/blog/associatedtype-swift-explained-swiftui/", "published_at": "2026-04-18T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45735684a", "title": "Lazy Properties in Swift - Why They Don’t Always Work in SwiftUI", "url": "https://www.sagarunagar.com/blog/lazy-properties-swiftui-pitfalls/", "published_at": "2026-04-11T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa457f1e51f", "title": "Mutex in Swift - Protecting Shared Mutable State with Locks", "url": "https://www.sagarunagar.com/blog/swift-mutex-shared-mutable-state/", "published_at": "2026-04-04T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45817ac25", "title": "Animatable in SwiftUI Explained - Complete Guide with Examples & Deep Dive", "url": "https://www.sagarunagar.com/blog/swiftui-animatable-protocol-guide/", "published_at": "2026-03-28T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa458bcc4c0", "title": "Swift Algorithms - Apple’s Hidden Collection and Sequence APIs You Should Be Using", "url": "https://www.sagarunagar.com/blog/swift-algorithms-complete-guide/", "published_at": "2026-03-21T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45945a7c0", "title": "Swift some vs any - Understanding Opaque Types and Existential Types", "url": "https://www.sagarunagar.com/blog/swift-some-vs-any-opaque-existential-types/", "published_at": "2026-03-14T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45a17ad64", "title": "Thread Safety in Swift - Preventing Data Races with Locks, Queues, and Actors", "url": "https://www.sagarunagar.com/blog/thread-safety-in-swift/", "published_at": "2026-03-07T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45aedd9bd", "title": "Mastering Geometry in SwiftUI - GeometryReader, GeometryProxy & onGeometryChange", "url": "https://www.sagarunagar.com/blog/geometry-in-swiftui/", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45b7918c4", "title": "Static vs Dynamic Dispatch in Swift - How Method Dispatch Really Works", "url": "https://www.sagarunagar.com/blog/static-vs-dynamic-dispatch-swift/", "published_at": "2026-02-21T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45c244c08", "title": "Copy-on-Write(CoW) in Swift - How It Works and Why It Optimizes Memory", "url": "https://www.sagarunagar.com/blog/copy-on-write-swift/", "published_at": "2026-02-14T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45c2f0024", "title": "AsyncStream & AsyncThrowingStream in Swift - Real-Time Data Sync Explained", "url": "https://www.sagarunagar.com/blog/asyncstream-asyncthrowingstream-swift/", "published_at": "2026-02-04T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45c5fef43", "title": "Designing a Scalable App-Wide Theming System in SwiftUI", "url": "https://www.sagarunagar.com/blog/app-wide-theming-swiftui/", "published_at": "2026-01-26T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45cf815d9", "title": "SwiftUI Observation Framework Explained - Using @Observable in iOS 17", "url": "https://www.sagarunagar.com/blog/swiftui-observation-framework/", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45dc327ea", "title": "Xcode Templates Explained - Speed Up iOS Development by Eliminating Boilerplate", "url": "https://www.sagarunagar.com/blog/xcode-file-templates-ios-development/", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45e625314", "title": "InlineArray in Swift - Memory Efficient Fixed-Size Arrays", "url": "https://www.sagarunagar.com/blog/inlinearray-in-swift/", "published_at": "2026-01-06T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45e998f13", "title": "Zoom Navigation Transitions in SwiftUI", "url": "https://www.sagarunagar.com/blog/swiftui-zoom-navigation-transitions/", "published_at": "2025-12-29T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45ea7daab", "title": "SwiftUI Fonts Explained - System Styles, Modifiers and Accessibility", "url": "https://www.sagarunagar.com/blog/swiftui-fonts-guide/", "published_at": "2025-12-24T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45f302b3b", "title": "How to Create a Signature Canvas in iOS Using SwiftUI and PencilKit?", "url": "https://www.sagarunagar.com/blog/create-signature-canvas-in-ios/", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa45f3e0926", "title": "SwiftUI App Localization in Xcode — Easy, Scalable", "url": "https://www.sagarunagar.com/blog/swiftui-app-localization-in-xcode/", "published_at": "2025-08-13T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa460296a4b", "title": "How to add SegmentedControl in List that scrolls with a List in SwiftUI?", "url": "https://www.sagarunagar.com/blog/scrollable-segmentedcontrol-list/", "published_at": "2025-01-13T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa46090461d", "title": "Sign in with Apple - SwiftUI, MVVM", "url": "https://www.sagarunagar.com/blog/sign-in-with-apple-swiftui-mvvm/", "published_at": "2021-03-17T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa46135e66e", "title": "Understanding gradients using SwiftUI", "url": "https://www.sagarunagar.com/blog/understanding-gradients-using-swiftui/", "published_at": "2020-05-12T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa461c88841", "title": "Property wrappers in SwiftUI", "url": "https://www.sagarunagar.com/blog/property-wrappers-in-swiftui/", "published_at": "2020-02-03T00:00:00+00:00" }, { "id": "01a087da-4629-7365-9c91-0fa462aa8abb", "title": "Basic structure of SwiftUI project", "url": "https://www.sagarunagar.com/blog/basic-structure-of-swiftui-project/", "published_at": "2019-12-23T00:00:00+00:00" } ] posts Claim your blog
Back to sagarunagar.com
Blog · corpus.blog/blogs/sagarunagar.com/posts

sagarunagar.com

sagarunagar.com

2026

2025

2021

2020

2019