<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tips, Q&amp;A | Fatbobman&apos;s Blog</title><description>Quick Tips and Q&amp;A on Swift, SwiftUI, Core Data, and SwiftData | Fatbobman&apos;s Blog</description><link>https://fatbobman.com/en/snippet/</link><language>en</language><follow_challenge><feedId>102712961573183488</feedId><userId>60878761419746304</userId></follow_challenge><item><title>Why Child @State Won&apos;t Update from Parent in SwiftUI</title><link>https://fatbobman.com/en/snippet/why-child-state-won-not-update-from-parent-in-swiftui/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/why-child-state-won-not-update-from-parent-in-swiftui/</guid><description>Assigning values to @State in init usually fails on updates. Discover the mechanics of SwiftUI View Identity and the correct data flow patterns to fix this common issue.</description><pubDate>Thu, 18 Dec 2025 08:21:01 GMT</pubDate><content:encoded>&lt;p&gt;Assigning values to @State in init usually fails on updates. Discover the mechanics of SwiftUI View Identity and the correct data flow patterns to fix this common issue.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/why-child-state-won-not-update-from-parent-in-swiftui/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftui</category><author>Fatbobman</author></item><item><title>How to Batch Delete Data in SwiftData</title><link>https://fatbobman.com/en/snippet/how-to-batch-delete-data-in-swiftdata/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/how-to-batch-delete-data-in-swiftdata/</guid><description>Stop UI freezes when deleting large datasets. Learn how to use SwiftData&apos;s delete(model:where:) to bypass the ModelContext for high-performance cleaning.</description><pubDate>Wed, 17 Dec 2025 21:30:00 GMT</pubDate><content:encoded>&lt;p&gt;Stop UI freezes when deleting large datasets. Learn how to use SwiftData&apos;s delete(model:where:) to bypass the ModelContext for high-performance cleaning.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/how-to-batch-delete-data-in-swiftdata/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftdata</category><author>Fatbobman</author></item><item><title>Is Entity Inheritance Slowing Down Your SwiftData/CoreData App?</title><link>https://fatbobman.com/en/snippet/is-entity-inheritance-slowing-down-your-swiftdata-coredata-app/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/is-entity-inheritance-slowing-down-your-swiftdata-coredata-app/</guid><description>Core Data and SwiftData use Single Table Inheritance by default. Discover how the underlying SQLite implementation impacts performance and when you should avoid subclassing entities.</description><pubDate>Sat, 13 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Core Data and SwiftData use Single Table Inheritance by default. Discover how the underlying SQLite implementation impacts performance and when you should avoid subclassing entities.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/is-entity-inheritance-slowing-down-your-swiftdata-coredata-app/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>core data</category><category>swiftdata</category><author>Fatbobman</author></item><item><title>Formatting Person Height vs. Road Distance in Swift</title><link>https://fatbobman.com/en/snippet/formatting-person-height-vs-road-distance-in-swift/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/formatting-person-height-vs-road-distance-in-swift/</guid><description>Stop writing manual unit conversions. Learn how to use MeasurementFormatStyle&apos;s usage parameter to automatically display &quot;5 ft 11 in&quot; for height and &quot;5.9 ft&quot; for objects based on context.</description><pubDate>Fri, 12 Dec 2025 14:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Stop writing manual unit conversions. Learn how to use MeasurementFormatStyle&apos;s usage parameter to automatically display &quot;5 ft 11 in&quot; for height and &quot;5.9 ft&quot; for objects based on context.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/formatting-person-height-vs-road-distance-in-swift/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><author>Fatbobman</author></item><item><title>Swift 6 Thread Safety: Replace @unchecked Sendable with Mutex</title><link>https://fatbobman.com/en/snippet/replace-unchecked-sendable-with-mutex/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/replace-unchecked-sendable-with-mutex/</guid><description>Don&apos;t want to refactor everything to Actors? Learn how to use Swift 6&apos;s Mutex to build truly Sendable reference types with synchronous APIs, eliminating the risks of @unchecked Sendable.</description><pubDate>Fri, 12 Dec 2025 09:15:00 GMT</pubDate><content:encoded>&lt;p&gt;Don&apos;t want to refactor everything to Actors? Learn how to use Swift 6&apos;s Mutex to build truly Sendable reference types with synchronous APIs, eliminating the risks of @unchecked Sendable.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/replace-unchecked-sendable-with-mutex/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>concurrency</category><author>Fatbobman</author></item><item><title>CloudKit Debugging: How to View Data for Test Accounts</title><link>https://fatbobman.com/en/snippet/act-as-icloud-account/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/act-as-icloud-account/</guid><description>Data missing in CloudKit Console during testing? Learn how to use the &apos;Act As iCloud Account&apos; feature to inspect private databases for your test users and Sandbox accounts.</description><pubDate>Thu, 11 Dec 2025 21:30:00 GMT</pubDate><content:encoded>&lt;p&gt;Data missing in CloudKit Console during testing? Learn how to use the &apos;Act As iCloud Account&apos; feature to inspect private databases for your test users and Sandbox accounts.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/act-as-icloud-account/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>cloudkit</category><author>Fatbobman</author></item><item><title>Fixing Invisible Core Data/SwiftData Records in CloudKit Dashboard</title><link>https://fatbobman.com/en/snippet/show-records-in-cloudkit-dashboard/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/show-records-in-cloudkit-dashboard/</guid><description>Sync works, but the dashboard is empty? This common issue is caused by missing indexes. Learn how to add the `queryable` index to `recordName` to view and debug your data.</description><pubDate>Thu, 11 Dec 2025 00:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Sync works, but the dashboard is empty? This common issue is caused by missing indexes. Learn how to add the `queryable` index to `recordName` to view and debug your data.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/show-records-in-cloudkit-dashboard/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>cloudkit</category><category>core data</category><category>swiftdata</category><author>Fatbobman</author></item><item><title>Fixing GTM Events in Partytown: Forwarding dataLayer &amp; gtag</title><link>https://fatbobman.com/en/snippet/how-to-forward-custom-tag-events-to-gtm-running-inside-partytown/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/how-to-forward-custom-tag-events-to-gtm-running-inside-partytown/</guid><description>Did your GA4 events stop working after optimizing with Partytown? Learn how to configure the `forward` property in Astro to bridge `gtag` and `dataLayer.push` between the main thread and Web Workers.</description><pubDate>Mon, 08 Dec 2025 14:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Did your GA4 events stop working after optimizing with Partytown? Learn how to configure the `forward` property in Astro to bridge `gtag` and `dataLayer.push` between the main thread and Web Workers.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/how-to-forward-custom-tag-events-to-gtm-running-inside-partytown/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>web</category><category>performance</category><category>astro</category><author>Fatbobman</author></item><item><title>Faster Swift 6 Builds: Enabling SwiftSyntax Prebuilts</title><link>https://fatbobman.com/en/snippet/speed-up-compilation-with-prebuilt-swift-syntax/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/speed-up-compilation-with-prebuilt-swift-syntax/</guid><description>Is compiling Swift Macros slowing you down? Learn how to enable SwiftSyntax Prebuilts in Swift 6.1+ to significantly slash Xcode build times.</description><pubDate>Fri, 06 Jun 2025 00:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Is compiling Swift Macros slowing you down? Learn how to enable SwiftSyntax Prebuilts in Swift 6.1+ to significantly slash Xcode build times.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/speed-up-compilation-with-prebuilt-swift-syntax/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><author>Fatbobman</author></item><item><title>Swift package Access Level: Sharing Code Across Targets Securely</title><link>https://fatbobman.com/en/snippet/controlling-access-within-a-swift-package/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/controlling-access-within-a-swift-package/</guid><description>Learn how to share code between multiple Targets within a Swift Package without exposing it publicly. We explore the `package` access modifier to bridge the gap between `internal` and `public`.</description><pubDate>Thu, 08 May 2025 14:21:01 GMT</pubDate><content:encoded>&lt;p&gt;Learn how to share code between multiple Targets within a Swift Package without exposing it publicly. We explore the `package` access modifier to bridge the gap between `internal` and `public`.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/controlling-access-within-a-swift-package/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><author>Fatbobman</author></item><item><title>Fixing SwiftLint Configuration for Monorepos in VSCode &amp; Cursor</title><link>https://fatbobman.com/en/snippet/fixing-swiftlint-configuration-not-working-in-monorepo-projects/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/fixing-swiftlint-configuration-not-working-in-monorepo-projects/</guid><description>SwiftLint ignoring your root config in VSCode or Cursor? Learn how to set `configSearchPaths` and structure your Monorepo to share linting rules across multiple packages.</description><pubDate>Thu, 24 Apr 2025 14:20:00 GMT</pubDate><content:encoded>&lt;p&gt;SwiftLint ignoring your root config in VSCode or Cursor? Learn how to set `configSearchPaths` and structure your Monorepo to share linting rules across multiple packages.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/fixing-swiftlint-configuration-not-working-in-monorepo-projects/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>dev tools</category><author>Fatbobman</author></item><item><title>VSCode/Cursor Core Data: Manually Compiling xcdatamodeld for Tests</title><link>https://fatbobman.com/en/snippet/how-to-test-core-data-code-in-vscode-cursor/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/how-to-test-core-data-code-in-vscode-cursor/</guid><description>Core Data unit tests failing in VSCode or Cursor? Learn how to configure the Xcode toolchain and use `xcrun momc` to manually compile `.xcdatamodeld` files.</description><pubDate>Tue, 15 Apr 2025 14:21:01 GMT</pubDate><content:encoded>&lt;p&gt;Core Data unit tests failing in VSCode or Cursor? Learn how to configure the Xcode toolchain and use `xcrun momc` to manually compile `.xcdatamodeld` files.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/how-to-test-core-data-code-in-vscode-cursor/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>core data</category><author>Fatbobman</author></item><item><title>Using SwiftUI&apos;s @AppStorage with Arrays, Dates, and Custom Types</title><link>https://fatbobman.com/en/snippet/extending-supported-data-types-for-appstorage/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/extending-supported-data-types-for-appstorage/</guid><description>SwiftUI&apos;s @AppStorage defaults to basic types. Learn how to use RawRepresentable and JSON encoding to store Dates, Arrays, and custom structs in Swift 6.</description><pubDate>Fri, 24 Jan 2025 00:20:00 GMT</pubDate><content:encoded>&lt;p&gt;SwiftUI&apos;s @AppStorage defaults to basic types. Learn how to use RawRepresentable and JSON encoding to store Dates, Arrays, and custom structs in Swift 6.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/extending-supported-data-types-for-appstorage/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftui</category><author>Fatbobman</author></item><item><title>Fix: Algolia DocSearch Safari Scroll-to-Bottom Bug</title><link>https://fatbobman.com/en/snippet/fix-algolia-search-box-auto-scrolling-issue-in-safari/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/fix-algolia-search-box-auto-scrolling-issue-in-safari/</guid><description>Page scrolls to bottom when closing Algolia search on Safari? Fix this frustrating focus bug instantly with a simple one-line HTML hack.</description><pubDate>Thu, 23 Jan 2025 16:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Page scrolls to bottom when closing Algolia search on Safari? Fix this frustrating focus bug instantly with a simple one-line HTML hack.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/fix-algolia-search-box-auto-scrolling-issue-in-safari/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>web</category><author>Fatbobman</author></item><item><title>Fixing macOS SwiftData/Core Data Sync: The CloudKit.framework Issue</title><link>https://fatbobman.com/en/snippet/fix-synchronization-issues-for-macos-apps-using-core-dataswiftdata/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/fix-synchronization-issues-for-macos-apps-using-core-dataswiftdata/</guid><description>macOS app syncing in Debug but failing in TestFlight? The culprit is often a missing `CloudKit.framework`. Learn how to fix this silent SwiftData &amp; Core Data bug.</description><pubDate>Thu, 23 Jan 2025 00:20:00 GMT</pubDate><content:encoded>&lt;p&gt;macOS app syncing in Debug but failing in TestFlight? The culprit is often a missing `CloudKit.framework`. Learn how to fix this silent SwiftData &amp; Core Data bug.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/fix-synchronization-issues-for-macos-apps-using-core-dataswiftdata/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>cloudkit</category><category>swiftdata</category><category>core data</category><author>Fatbobman</author></item><item><title>4 Ways to Get View Size in SwiftUI: From GeometryReader to onGeometryChange</title><link>https://fatbobman.com/en/snippet/how-to-obtain-view-dimensions-in-swiftui/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/how-to-obtain-view-dimensions-in-swiftui/</guid><description>Still abusing GeometryReader? Discover 4 modern ways to measure view size in SwiftUI. We cover `onGeometryChange`, `visualEffect`, and `containerRelativeFrame` for efficient, responsive layouts in iOS 18+.</description><pubDate>Mon, 13 Jan 2025 17:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Still abusing GeometryReader? Discover 4 modern ways to measure view size in SwiftUI. We cover `onGeometryChange`, `visualEffect`, and `containerRelativeFrame` for efficient, responsive layouts in iOS 18+.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/how-to-obtain-view-dimensions-in-swiftui/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftui</category><author>Fatbobman</author></item><item><title>Disabling Animations in SwiftUI: Instant Transitions for Sheets &amp; NavigationStack</title><link>https://fatbobman.com/en/snippet/disable-transition-animations-for-sheet-and-navigationstack-in-swiftui/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/disable-transition-animations-for-sheet-and-navigationstack-in-swiftui/</guid><description>Need to skip transitions during Deep Links or state resets? Learn how to use `Transaction` and `disablesAnimations` to instantly present Sheets or push to a NavigationStack without animation.</description><pubDate>Sun, 12 Jan 2025 11:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Need to skip transitions during Deep Links or state resets? Learn how to use `Transaction` and `disablesAnimations` to instantly present Sheets or push to a NavigationStack without animation.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/disable-transition-animations-for-sheet-and-navigationstack-in-swiftui/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftui</category><author>Fatbobman</author></item><item><title>Mastering SwiftUI Animations: Implicit vs. Explicit Guide</title><link>https://fatbobman.com/en/snippet/swiftui-implicit-vs-explicit-animations/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/swiftui-implicit-vs-explicit-animations/</guid><description>Confused by `.animation` vs `withAnimation`? Master the core differences, priority rules, and Transaction mechanisms in SwiftUI to precisely control your UI state transitions.</description><pubDate>Sun, 12 Jan 2025 09:50:00 GMT</pubDate><content:encoded>&lt;p&gt;Confused by `.animation` vs `withAnimation`? Master the core differences, priority rules, and Transaction mechanisms in SwiftUI to precisely control your UI state transitions.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/swiftui-implicit-vs-explicit-animations/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftui</category><author>Fatbobman</author></item><item><title>Fixing Gesture Interruptions: @GestureState vs @State</title><link>https://fatbobman.com/en/snippet/differences-between-gesturestate-and-state-in-swiftui/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/differences-between-gesturestate-and-state-in-swiftui/</guid><description>Ever had your UI freeze when a gesture is interrupted? Discover why `onEnded` fails you and how `@GestureState` automatically handles system interruptions for smooth interactions.</description><pubDate>Sun, 12 Jan 2025 08:21:01 GMT</pubDate><content:encoded>&lt;p&gt;Ever had your UI freeze when a gesture is interrupted? Discover why `onEnded` fails you and how `@GestureState` automatically handles system interruptions for smooth interactions.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/differences-between-gesturestate-and-state-in-swiftui/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>swiftui</category><author>Fatbobman</author></item><item><title>Designing Models for CloudKit Sync: Core Data &amp; SwiftData Rules</title><link>https://fatbobman.com/en/snippet/rules-for-adapting-data-models-to-cloudkit/</link><guid isPermaLink="true">https://fatbobman.com/en/snippet/rules-for-adapting-data-models-to-cloudkit/</guid><description>Planning to enable CloudKit sync? Learn the strict data modeling rules—from banned unique constraints to mandatory optional relationships—and the &apos;add-only&apos; migration strategy to prevent sync failures.</description><pubDate>Sat, 11 Jan 2025 16:54:00 GMT</pubDate><content:encoded>&lt;p&gt;Planning to enable CloudKit sync? Learn the strict data modeling rules—from banned unique constraints to mandatory optional relationships—and the &apos;add-only&apos; migration strategy to prevent sync failures.&lt;/p&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&gt;&lt;a href=&quot;https://fatbobman.com/zh/snippet/rss.xml&quot;&gt;&lt;b&gt;订阅中文版 RSS&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   &lt;div style=&quot;margin-top: 20px;&quot;&gt;
                   &lt;p&quot;&gt;&lt;a href=&quot;https://fatbobman.com/en/snippet/rules-for-adapting-data-models-to-cloudkit/&quot;&gt;&lt;b&gt;Read More&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
                   &lt;/div&gt;
                   </content:encoded><category>computing</category><category>swift</category><category>learning</category><category>programming</category><category>swift-programming</category><category>ios-development</category><category>core data</category><category>swiftdata</category><category>cloudkit</category><author>Fatbobman</author></item></channel></rss>