惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
T
Tenable Blog
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
P
Proofpoint News Feed
A
About on SuperTechFans
P
Privacy International News Feed
月光博客
月光博客
雷峰网
雷峰网
S
Secure Thoughts
博客园 - 叶小钗
博客园 - 聂微东
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
The Cloudflare Blog
SecWiki News
SecWiki News
The Hacker News
The Hacker News
V
Vulnerabilities – Threatpost
罗磊的独立博客
A
Arctic Wolf
阮一峰的网络日志
阮一峰的网络日志
Know Your Adversary
Know Your Adversary
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
小众软件
小众软件
有赞技术团队
有赞技术团队
博客园 - 司徒正美
T
Tailwind CSS Blog
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
L
Lohrmann on Cybersecurity

Michael Tsai

Michael Tsai - Blog - Taphouse 1.5 Michael Tsai - Blog - StopTheMadness Pro 26 Michael Tsai - Blog - Mac External Display Support Reference Michael Tsai - Blog - Bartender Pro Michael Tsai - Blog - ARC Overhead in Swift Sorting Michael Tsai - Blog - Iris 1.0 Michael Tsai - Blog - Halide Mark III Michael Tsai - Blog - !Camera Michael Tsai - Blog - Project Indigo Michael Tsai - Blog - Unpro Camera Michael Tsai - Blog - Iris Rejected From the App Store Michael Tsai - Blog - OpenAI Model’s Proof of Erdős Unit Distance Problem Michael Tsai - Blog - Apps for YouTube℠™®•! Michael Tsai - Blog - Google’s Intelligent Search Box Michael Tsai - Blog - Apple Asks Supreme Court to Review Epic Ruling Michael Tsai - Blog - Stats Visualization in Apple Sports Michael Tsai - Blog - Cleve Moler, RIP Michael Tsai - Blog - Steve Jobs in Exile Michael Tsai - Blog - Leaving CloudKit Michael Tsai - Blog - Lawsuits Claim OpenAI and Perplexity Shared User Data for Advertising Michael Tsai - Blog - Inkwell Rejected From the App Store Michael Tsai - Blog - Hijacking Apps Using Archive Utility Michael Tsai - Blog - Core Data Lab 3.0 Michael Tsai - Blog - Updating Shared Shortcuts Michael Tsai - Blog - Apple vs. Indian Antitrust Regulator Michael Tsai - Blog - Apple’s 2026 Accessibility Feature Preview Michael Tsai - Blog - How Fake Contacts Can Fix Dictation’s Proper Noun Problems Michael Tsai - Blog - Fantastical at 15 Michael Tsai - Blog - Fortnite Returns to the App Store Except in Australia Michael Tsai - Blog - Kickstart 1.0 Michael Tsai - Blog - Apple Gift Card Scheme Michael Tsai - Blog - Claude Desktop App Michael Tsai - Blog - Memory Integrity Enforcement Exploit Michael Tsai - Blog - Hardening Firefox With Mythos Michael Tsai - Blog - Apple Developer App 11.0 Michael Tsai - Blog - OmniFocus 4.8.10 Michael Tsai - Blog - SwiftUI: @State and the Attribute Graph Michael Tsai - Blog - APFS Folder Clones Michael Tsai - Blog - Amazon Tokenmaxxing Michael Tsai - Blog - Chrome’s Huge weights.bin File Michael Tsai - Blog - OmniOutliner 6.1 Michael Tsai - Blog - Xcode 26.5 Michael Tsai - Blog - macOS 15.7.7 and macOS 14.8.7 Michael Tsai - Blog - iOS 18.7.9 and iPadOS 18.7.9 Michael Tsai - Blog - macOS 26.5 Michael Tsai - Blog - iOS 26.5 and iPadOS 26.5 Michael Tsai - Blog - watchOS 26.5 Michael Tsai - Blog - tvOS 26.5 Michael Tsai - Blog - visionOS 26.5 Michael Tsai - Blog - audioOS 26.5 Michael Tsai - Blog - Reddit Pushes Web Visitors to App Michael Tsai - Blog - Ask Jeeves Shuts Down Michael Tsai - Blog - Building Shopie for Mac With SwiftUI Michael Tsai - Blog - Apple Sued for Removing Rave App From Store Michael Tsai - Blog - Sendy 7 Michael Tsai - Blog - Arq Restore Notes Michael Tsai - Blog - iOS 27: Custom Wallet Passes Michael Tsai - Blog - Delayed Siri Features Settlement Michael Tsai - Blog - Software Brain Michael Tsai - Blog - macOS Text Replacement Export/Import Michael Tsai - Blog - The Problem With the Touch Bar Michael Tsai - Blog - GyazMail 1.8 Michael Tsai - Blog - 2026 Six Colors Apple in the Enterprise Report Card Michael Tsai - Blog - MacBook Neo and How the iPad Could Be Michael Tsai - Blog - Apple’s Q2 2026 Results Michael Tsai - Blog - Claude at Apple Michael Tsai - Blog - War on Adobe Michael Tsai - Blog - Photoshop’s “Modern” Spectrum User Interface Michael Tsai - Blog - Zig’s Anti-AI Contribution Policy Michael Tsai - Blog - Giving Up on the Vision Pro Michael Tsai - Blog - External Purchase Fee Stay Reversed Michael Tsai - Blog - Retcon 1.6 Michael Tsai - Blog - Acorn 8.5 Michael Tsai - Blog - California’s BASED Act Defeated Michael Tsai - Blog - Apple Invites 1.8 Michael Tsai - Blog - The Wide Range of Find My–Compatible Devices Michael Tsai - Blog - My Favorite Apple Accessory Michael Tsai - Blog - Fix iPhone Autocoreet Pleaese Michael Tsai - Blog - Git Tower 16 Michael Tsai - Blog - I Regret the Blood Pact I Have Made With iCloud Photos Michael Tsai - Blog - Mac Easter Eggs Michael Tsai - Blog - What’s That “Structured” in Structured Concurrency? Michael Tsai - Blog - Stolen Device Protection May Protect You From Accessing Your Own Device Michael Tsai - Blog - NetNewsWire 7.0.4 Michael Tsai - Blog - iOS 26.4.2 and iPadOS 26.4.2 Michael Tsai - Blog - Character in iPhone Password Removed From Keyboard Michael Tsai - Blog - Little Snitch for Linux Michael Tsai - Blog - 2025 Apple Vision Accessibility Report Card Michael Tsai - Blog - John Ternus Replaces Tim Cook Michael Tsai - Blog - The Quadrant Was Now Complete Michael Tsai - Blog - Filing the Sharp Edges Off a MacBook Michael Tsai - Blog - Copilot Everything Michael Tsai - Blog - Design for Repairability Michael Tsai - Blog - Fast Thumbnails With CGImageSource Michael Tsai - Blog - John Deere Right-to-Repair Settlement Michael Tsai - Blog - Globalstar Takeover Michael Tsai - Blog - Codex for Almost Everything Michael Tsai - Blog - Perplexity Personal Computer Michael Tsai - Blog - Xcode 26.4.1 Michael Tsai - Blog - Gemini App for Mac
Michael Tsai - Blog - SwiftData in appleOS 27
Michael J. Tsai · 2026-06-24 · via Michael Tsai

SwiftData updates:

Section your query results by creating your query with a macro that takes a sectionBy parameter, as listed on the Additional query macros page.

Use types that conform to Codable in a model, including types you don’t control directly, by using the codable option for Schema.Attribute.

Receive real-time updates to models that match specified fetch criteria by using the ResultsObserver type.

Observe remote model changes with the HistoryObserver type.

What’s new in SwiftData:

Discover the latest enhancements to SwiftData. We’ll show you how to persist custom and third-party types using Codable, and group fetched data into sections in your SwiftUI app. We’ll also explore how to observe data store changes anywhere else using ResultsObserver and HistoryObserver, giving you the flexibility to drive powerful state objects and react precisely to model updates.

Again, there seems to be nothing new in Core Data this year, nor any communication about it. There’s still no interoperability for object IDs. The SwiftData changes seem fine but don’t really address the new framework’s deficiencies relative to Core Data. It seems like there are still basic problems with threading. I just don’t understand how Apple is deciding what to prioritize with this framework.

With SwiftUI, the bones seem questionable, but at least we can see that Apple is full steam ahead, with substantial progress to address limitations and pain points. SwiftData seemed to have better bones and is much less ambitious. Getting it right seemed like just a matter of follow through. But, for some inexplicable reason, it seems to lack the resources and/or urgency to reach its potential. And even though SwiftUI is clearly the chosen one, AppKit remains in development. Meanwhile, Core Data seems to be abandoned, even though SwiftData feels more like a side quest than a genuine attempt to supplant it.

The implicit message, for those who have build the core of their app on top of Apple’s old persistence framework, seems to be that Apple is not looking out for their needs. Core Data will surely get maintenance to the extent that Apple’s own apps need it, but there’s no evidence of a future or even a migration plan. The answer, I guess, is third-party frameworks, but that’s not an easy migration, either, since none is even as close a match as SwiftData.

Add persistence with SwiftData:

Experience SwiftData in action as we add persistence to an existing app. We’ll show you how to define your data models and seamlessly integrate persistent data with SwiftUI. You’ll also learn foundational skills for managing your app’s state using this expressive, declarative API.

SwiftData Group Lab:

Join us online for a deep dive into WWDC26 with Apple engineers and designers to ask questions, get advice, and follow the discussion about the week’s biggest SwiftData announcements.

macOS Golden Gate 27 Beta Release Notes:

Fixed: You might experience a deadlock for @Query when saving a ModelContext on a background actor while scheduling new async tasks for a ModelActor.

Paul Hudson:

I am so pleased to say these words: IT IS A BIG YEAR FOR SWIFTDATA! 🎉

Mohammad Azam:

SwiftData predicates can now work directly with enum values, resulting in cleaner models and simpler query code.

[…]

In iOS 27, Apple introduced support for compound predicates through the Predicate(all:) and Predicate(any:) initializers, making it easier to build queries dynamically based on user input.

I’m not sure why that took so long.

The framework is gradually moving beyond simple demos and becoming easier to use in larger, more sophisticated projects.

[…]

iOS 27 is the first release where many of the framework’s early rough edges have started to disappear.

Matt Massicotte:

Results of my now-yearly check to see if SwiftData’s ModelActor continues to sometimes run code on the main thread: yes it does

Fatbobman:

Compared with @Query gaining support for section fetches, and ResultsObserver enabling observation of query result changes outside views, I am more interested in @Attribute(.codable). It provides a clearer storage intent and gives developers a way to avoid falling into the black box of composition.

Of course, @Attribute(.codable) is not a silver bullet. It is more like a clearly defined escape hatch SwiftData provides for opaque Codable types: suitable for storing external types that you cannot model yourself, but still genuinely need to persist. The cost is that this content cannot participate in SwiftData’s predicate, sort, or migration awareness. Precisely for this reason, its value lies not in being “more powerful,” but in being “more explicit.”

However, SwiftData still does not provide cloud syncing for public / shared data, nor have I seen a clearer signal of performance improvements. These issues will continue to limit its adoption. For many developers, SwiftData this year feels more like it is filling key gaps rather than making a leap significant enough to fundamentally change confidence in it.

Helge Heß:

Codable types in SwiftData seem pretty lame given that SQLite absolutely does have JSON support and does support queries on it?

But the funnier thing in the MKMapItem.Identifier example is that MKMapItem.Identifier is a RawRepresentable==String, so it could actually be stored as a String in the store.

Previously:

Comments