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

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
量子位
小众软件
小众软件
C
Cybersecurity and Infrastructure Security Agency CISA
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
Latest news
Latest news
Spread Privacy
Spread Privacy
C
Cyber Attacks, Cyber Crime and Cyber Security
NISL@THU
NISL@THU
T
Tor Project blog
Hacker News: Ask HN
Hacker News: Ask HN
V2EX - 技术
V2EX - 技术
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
K
Kaspersky official blog
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗
博客园 - 聂微东
Last Week in AI
Last Week in AI
爱范儿
爱范儿
腾讯CDC
博客园 - Franky
美团技术团队
J
Java Code Geeks
O
OpenAI News
L
Lohrmann on Cybersecurity
Simon Willison's Weblog
Simon Willison's Weblog
有赞技术团队
有赞技术团队
T
Threatpost
G
GRAHAM CLULEY
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
I
Intezer
N
News and Events Feed by Topic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
S
Security @ Cisco Blogs
Forbes - Security
Forbes - Security
N
News | PayPal Newsroom
Stack Overflow Blog
Stack Overflow Blog
Scott Helme
Scott Helme
H
Hacker News: Front Page
Cloudbric
Cloudbric

Comments for Michael Tsai

Michael Tsai - Blog - Dissecting Apple’s Sparse Image Format (ASIF) Michael Tsai - Blog - What to Do With a Hot Mac Michael Tsai - Blog - macOS California Adventure Michael Tsai - Blog - Shutting Down Notion Mail Michael Tsai - Blog - Export Control for Fable and Mythos Michael Tsai - Blog - Mac App Store Search Not Showing Mac Apps Michael Tsai - Blog - Boom Mobile Restructuring Michael Tsai - Blog - “If You Can’t Stand By a Feature, You Shouldn’t Launch It.” Michael Tsai - Blog - Apple Hardware Price Hikes Michael Tsai - Blog - Tony Krueger, RIP Michael Tsai - Blog - WebKit Always Enables the Copy Menu Item in Every App Michael Tsai - Blog - Xcode 27’s Device Hub Michael Tsai - Blog - Swift 6.4 Michael Tsai - Blog - RCS in iOS 27 Michael Tsai - Blog - SwiftData in appleOS 27 Michael Tsai - Blog - Bar None 1.0 Michael Tsai - Blog - CrashReportExtension Michael Tsai - Blog - Apple Clearing App Store Clutter Michael Tsai - Blog - Mandatory Apple Intelligence Michael Tsai - Blog - macOS Touch Michael Tsai - Blog - UIKit in iOS 27 Michael Tsai - Blog - Runaway Spotlight With Pages Document on iCloud Drive Michael Tsai - Blog - macOS 27 to Drop Support for AirPort and Time Capsule Backups Michael Tsai - Blog - WWDC 2026 Links Michael Tsai - Blog - SpaceX Acquires xAI, Goes Public, Acquires Cursor Michael Tsai - Blog - Apple Intelligence in appleOS 27 Michael Tsai - Blog - Apple Foundation Models in appleOS 27 Michael Tsai - Blog - Agentic Password Updates Michael Tsai - Blog - Photos AI in appleOS 27 Michael Tsai - Blog - AI-Generated Shortcuts Michael Tsai - Blog - Apple’s Dormant CUPS Michael Tsai - Blog - The End of Pinboard? Michael Tsai - Blog - Anticipating the Coming USB-C iPhone Backlash Michael Tsai - Blog - App Store Personalized Recommendations and Keylogging Michael Tsai - Blog - Safari 27 Announced Michael Tsai - Blog - Apple Creator Studio Now Shipping Michael Tsai - Blog - Rewriting Apple’s TrueType Hinting Interpreter in Swift Michael Tsai - Blog - Rewriting Notion in SwiftUI Michael Tsai - Blog - FastSpring Store Unexpectedly Offline Michael Tsai - Blog - Locked Out of Apple Account Due to Gift Card Michael Tsai - Blog - No Siri AI in EU Michael Tsai - Blog - Siri AI Announced Michael Tsai - Blog - Child Safety Features in appleOS 27 Michael Tsai - Blog - Golden Gate Window Corners Michael Tsai - Blog - Golden Gate Sidebars and Toolbars Michael Tsai - Blog - Golden Gate Menu Icons Michael Tsai - Blog - Liquid Glass 27 Icons Michael Tsai - Blog - Liquid Glass 27 Slider Michael Tsai - Blog - Glow Leopard Michael Tsai - Blog - Xcode 27 Announced Michael Tsai - Blog - macOS 27 Golden Gate Announced Michael Tsai - Blog - iPadOS 27 Announced Michael Tsai - Blog - watchOS 27 Announced Michael Tsai - Blog - WWDC 2026 Keynote Michael Tsai - Blog - Sirius Pomodoro Michael Tsai - Blog - WWDC 2026 Preview Michael Tsai - Blog - Xogot for Mac Beta Michael Tsai - Blog - Where Did SwiftUI Leave You Hanging? Michael Tsai - Blog - Fixing mediaanalysisd Storage and CPU Use Michael Tsai - Blog - Adobe Modifies Your Hosts File for Their Analytics Michael Tsai - Blog - WWDC 2026 Wish Lists Michael Tsai - Blog - macOS Needs Its Spaces Grid Back Michael Tsai - Blog - WhisperPad Rejected From the Mac App Store Michael Tsai - Blog - Restoring Contacts From a Time Machine Backup Michael Tsai - Blog - Bricking Microsoft Office 2019 Michael Tsai - Blog - No Bounty for Mysk Michael Tsai - Blog - fsck_hfs Cache Exhaustion Bug Michael Tsai - Blog - macOS 26.5.1 Michael Tsai - Blog - iOS 26.5.1 Michael Tsai - Blog - BBEdit 16 Michael Tsai - Blog - Nisus Probably Moribund Michael Tsai - Blog - Pair Networks Price Increase Michael Tsai - Blog - Taphouse 1.5 Michael Tsai - Blog - More App Store Ad Spots 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 - MailMate License Model: One Year Later 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 - Catalina Data Protections Break File Sharing Michael Tsai - Blog - Apple Asks Supreme Court to Review Epic Ruling Michael Tsai - Blog - Stats Visualization in Apple Sports 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 - Updating Shared Shortcuts Michael Tsai - Blog - Claude Desktop App Michael Tsai - Blog - OmniFocus 4.8.10 Michael Tsai - Blog - Chrome’s Huge weights.bin File Michael Tsai - Blog - Gemini App for Mac
Michael Tsai - Blog - SwiftUI in appleOS 27
Michael J. Tsai · 2026-06-20 · via Comments for Michael Tsai

macOS Golden Gate 27 Beta Release Notes:

AsyncImage now automatically caches downloaded images using HTTP caching protocols, allowing servers to control caching behavior via standard headers.

[…]

Xcode 27 introduces a new @State implementation that avoids this repeated evaluation. This new behavior back-deploys to iOS 17 aligned OSes. The new @State is implemented with a Swift macro. It is largely source compatible with the property wrapper version, with a few exceptions.

[…]

Text views now support TextRenderer.

[…]

In apps built with the 27.0 SDKs, the new ReadableDocument and WritableDocument protocols support asynchronous reading and writing, progress reporting, and direct access to document URLs. New DocumentGroup initializers that adopt these protocols let you disable document creation for editing-only apps and present custom UI before any document is opened.

[…]

TextField respects custom font and color styling applied to its prompt.

[…]

List accepts drops in two cases that previously didn’t work: drags with compatible transfer representations are accepted into reorderable content even when the .reorderableItem transfer type isn’t present, and a .dropDestination(…) modifier declared on a list item now performs the drop.

SwiftUI updates:

Build your project in Xcode 27 or later to construct type-agnostic content from closures that you mark with ContentBuilder, which serves as the unified replacement for type-specific builders like ToolbarContentBuilder and CommandsBuilder.

Add reordering by drag-and-drop in containers such as lists, stacks, grids, or custom layouts with reorderable() and reorderContainer(for:isEnabled:move:).

Add custom swipe actions to views in containers such as scroll views, stacks, grids, or custom layouts using swipeActions(edge:allowsFullSwipe:content:onPresentationChanged:) and swipeActionsContainer().

[…]

Use the visibilityPriority(_:) modifier to prioritize important toolbar actions so SwiftUI keeps them visible as space shrinks, moving lower-priority items to the overflow menu first.

[…]

Present an alert or confirmation dialog from an optional data item or error object, and use that data to produce the content and title[…]

What’s new in SwiftUI:

Explore the latest additions to SwiftUI and discover how they can improve your apps. We’ll introduce a new Document protocol with direct disk access and snapshot-based diffing for building high-performance apps; new APIs for reordering content in lists, grids, and sections; and toolbar enhancements including visibility priority and auto-minimizing behavior. We’ll also cover expanded presentation APIs — including swipe actions on any view — plus AsyncImage caching improvements and lazy state initialization for Observable types.

Use SwiftUI with AppKit and UIKit:

Discover how to incrementally adopt SwiftUI in your existing AppKit or UIKit app. We’ll show you how to use the Observation framework to automatically update your views, integrate SwiftUI components into an existing view hierarchy, and bring gesture recognizers into SwiftUI. We’ll also explore how to add complete SwiftUI scenes to your app without changing your overall architecture.

Dive into lazy stacks and scrolling with SwiftUI:

Discover the inner workings of lazy stacks in SwiftUI. We’ll explore how LazyVStack and LazyHStack estimate sizes, lazily load subviews, and prefetch content to deliver smooth scrolling experiences. We’ll also cover advanced performance optimizations, state management best practices, and tips for precise programmatic scrolling. To get the most out of this session, we recommend basic familiarity with SwiftUI layout using stacks.

Compose advanced graphics effects with SwiftUI:

Discover how to craft rich, custom experiences by creatively composing SwiftUI layout and graphics APIs. We’ll show you how to break down complex designs and use a creative pipeline to chain simple building blocks together. Learn how to draw with layer shaders, animate with timelines, and anchor views with alignment guides.

Build powerful drag and drop in SwiftUI:

Follow along as we build a game of Solitaire to explore the latest drag-and-drop capabilities in SwiftUI. We’ll show you how to use the new reordering API to let people arrange content, implement drag containers to move multiple items at once, and customize the drag-and-drop lifecycle to fit your app’s rules.

There are also a bunch of labs.

Natalia Panferova:

Up until now it was a property wrapper conforming to the DynamicProperty protocol, but in Xcode 27 it becomes a Swift macro. In this post we will look at what the change means for @Observable models stored in @State.

Malcolm Hall:

Only took 3 years lol!

Majid Jabrayilov:

SwiftUI also introduces a new prominent tab role. You can use the prominent role for trailing-separated tabs, similar to search.

[…]

Document-based apps get a refreshed look and feel, along with a performance boost. It looks like Xcode has started using these improvements, which might explain why we see so much work around document-based apps this year. And finally, Xcode introduces SwiftUI Specialist and What’s New in SwiftUI skills for agentic coding in Xcode.

Fatbobman:

For me, the biggest change in SwiftUI comes from its comprehensive support for document-based apps. It not only adds a large number of new APIs, but also shifts the mental model toward “observable document objects + asynchronous snapshots + dedicated readers / writers.” This is clearly better suited to complex document apps, and it also aligns more closely with the overall evolution of modern Swift around Observation and Concurrency.

The sessions also mentioned that SwiftUI continues to optimize layout- and container-related implementations, bringing noticeable performance improvements in some scenarios. This is an improvement developers have urgently needed. However, SwiftUI still does not provide the ability to create custom Lazy containers, which remains a clear disappointment.

Natalia Panferova:

iOS 27 introduces new reordering APIs that work with any container. We can mark dynamic content with reorderable() and define the scope of the interaction with reorderContainer(for:). SwiftUI handles the drag preview, insertion placeholder, and drop animation, while our code applies the resulting change to the model.

SwiftUI’s drag container APIs are also now available on iPhone and iPad, after previously being limited to macOS. They let us make items in a collection draggable without making the collection reorderable, and include multiple selected items in the same drag. The APIs also support lazy generation of transferable values and drag-session observation.

robb:

I love the new #SwiftUI Text selection but without a way to make selection span multiple Texts in a group, it doesn’t really address our needs at Linear – here’s hoping we see an update in a later seed 🤞

Natalia Panferova:

The NavigationTransition protocol has been available in SwiftUI since iOS 18, letting us control how views animate when pushed onto a NavigationStack and when presenting sheets and full-screen covers. We specify the transition using the navigationTransition(_:) modifier on the destination or presented view, and SwiftUI uses it instead of the default animation for that context. Before iOS 27, SwiftUI provided two built-in conforming types: AutomaticNavigationTransition, used via the automatic static value, which defers to the system default for the current context, and ZoomNavigationTransition, used via zoom(sourceID:in:), which animates the presented view expanding from a source view marked with matchedTransitionSource(). iOS 27 introduces CrossFadeNavigationTransition, a new built-in transition that cross-fades between views without requiring a source, and adds AnyNavigationTransition, a type eraser that lets us select a transition at runtime.

Kyle Howells:

The last few years watching WWDC has been a mixed experience for me, because I honestly believe Swift and SwiftUI are actively either bad or being made worst.

Yet every year, the problems I have with them are doubled down on, not improved.

Kyle-Ye:

The FB21333309 cache bug I submitted is now confirmed to be fixed on iOS 27.

Instead of introducing a new CacheKey like I suggested, SwiftUI team choose to move the intensity payload out of the FeedbackType enum to a new Payload enum and add a new payload var to SensoryFeedback storage.

dasdom:

A few weeks ago I realised that most iOS jobs require knowledge of SwiftUI. So I started to rebuild my Mastodon client in SwiftUI. Then I got an offer for a new job and accepted it. This means I can get back to working on the ObjC version. Feels good. :)

Previously:

Comments