❌

Normal view

How to Make a MacOS 27 Golden Gate Virtual Machine with VirtualBuddy

5 August 2026 at 03:20

If you’re curious about testing out MacOS 27 Golden Gate beta but you aren’t ready for the full commitment of installing it as your primary operating system, the simplest and safest way to run MacOS 27 Golden Gate beta is within a virtual machine. While one of our authors dove right into MacOS 27 Golden ... Read More

The post How to Make a MacOS 27 Golden Gate Virtual Machine with VirtualBuddy appeared first on OS X Daily.

Golden Gate Application Support Protection

24 July 2026 at 19:07

Wojciech Reguła:

Looks like moving the user’s TCC db to /private/var/containers/Data/ProtectedSystem/[UUID]/Data/Library/Application Support/com.apple.TCC/ was not the only change in the whole privacy castle of macOS 27. (What btw was a great move as now attackers with full disk access permissions can’t modify your privacy settings)

macOS 27 quietly ships a new privacy mechanism I hadn’t seen documented anywhere: it extends the com.apple.macl protection that has always guarded sandboxed apps’ ~/Library/Containers/<bundle-id>/Data folders to a hand-picked set of non-sandboxed apps’ ~/Library/Application Support/<name> folders too. I noticed it by accident — Firefox’s profile folder was suddenly inaccessible from Terminal, while MacPass, a password manager sitting right next to it, was wide open. That asymmetry didn’t sit well with me, so I pulled the thread. It ends in a hardcoded app allowlist baked into /usr/libexec/sandboxd (thx @ciphwall for the hint), meant to be updated live via XProtect.

Previously:

Apple Opens Public Betas for OS 27

20 July 2026 at 23:05
Ready for a glimpse into our future as Apple users? Public betas for macOS 27 Golden Gate, iOS 27, iPadOS 27, and other major Apple operating systems are now available—but beware of bugs and be sure to back up your devices first.

macOS Hidden Treasures: Typing Exotic Characters

The Real System Requirements for OS 27

20 July 2026 at 22:38
Apple has finally completed its silicon transition: macOS 27 drops all Intel-based Macs, and iPadOS 27 and watchOS 27 each leave five models by the wayside, whereas the iPhone compatibility list remains unchanged.

macOS Hidden Treasures: Quick Look

Siri AI Beta

20 July 2026 at 16:27

Federico Viticci (Mastodon):

The AI frontier from the two big labs (and – we have to be honest with the numbers here – probably SpaceXAI and Meta now, too) is in a completely different league at the moment. I spent my first couple of weeks with Siri AI trying to convince myself that I could replace Codex with Siri AI, and that was the wrong approach. There is a potential future in which Siri AI can become a more proactive and capable agent, but that’s not what Apple is shipping this year.

[…]

Siri AI is a dramatically better Siri for typical Siri stuff. The new Siri understands your commands and nuanced requests better because of the LLMs behind it; it can often perform multiple requests in one go (such as setting multiple timers with one command); the new expressive (and customizable!) voices sound great, and they’re terrific at reading and summarizing notifications. Apple’s first advantage compared to other chatbots is right here: only Siri can integrate with the iPhone and iPad to this extent, so even if the Foundation models aren’t as smart as the competition, Siri can do a lot more for most people on their devices because neither OpenAI nor Anthropic have OSes they can control.

[…]

The biggest issue I’ve encountered is the inconsistency of it all. Very often, the new Siri AI still replies with a generic “Uh oh, something went wrong“ error that doesn’t explain what the error was or why it happened. Sometimes, I ask a question via voice, and it errors out, but then a few seconds later, I type the same question in the app, and it’s fine.

[…]

My problem is that, right now with Apple’s own apps, both the index and Siri’s ability to perform actions are very inconsistent. The assistant hallucinates abilities it doesn’t have, and it frequently just doesn’t work.

Dan Moren:

The good news is that Siri AI is capable: impressively so, at times. In the lowest of low bars, it certainly beats the pants off the previous incarnation of Siri, but its access to your own personal data and all of the app on your phone also unlocks a host of new possibilities.

But it’s also not without the pitfalls that underlie all LLM-powered chatbots: errors in understanding, hallucinations, and so on.

[…]

The app itself is pretty barebones, letting you view those conversations in List or Grid layouts, select multiple conversations to delete them, and pin or rename any single conversation. In Settings : Siri, you can choose to either open to the overview or to a new conversation and decide whether old conversations are kept for 30 days, 1 year, or forever. It’s a little strange that one-off queries (“What’s the average height of the Norwegian World Cup team?”) are stored alongside more involved conversations (“Can you help me build a specific RSS feed for this site?”); I also ended up with a few orphan blank “New conversations” which I deleted, but it’d be nice if you could filter to find those. Conversations are fully searchable and sync between devices via iCloud.

John Voorhees:

Despite the current limitations, if you use chatbots as a replacement for Google Search, you’ll probably have a good experience with the new Siri app. That’s because even in these early betas, if you ask Siri something like, “Give me a day trip itinerary for a trip to Chicago this Saturday,” you’re likely to get good but pretty middle-of-the-road recommendations. From there, though, you can drill down with follow-up queries to get something more in line with your tastes. The results include source links you can follow, too. Given the ad-strewn mess that web search has become, using Siri for this sort of thing is a meaningfully better experience.

The one caveat on Siri’s world knowledge is that it’s roughly 2-3 weeks stale in some places.

[…]

A good example is Music. You can prompt Siri to play a song, but most of the rich metadata in the app isn’t exposed to Siri, which is a shame because it is exposed elsewhere, for example to AppleScript.

Previously:

Update (2026-08-04): Benjamin Mayo:

Thanks to the top-to-bottom revamp that is Siri AI, Siri is reliably intelligent. Finally. We are still in the midst of beta season, and Apple is yet to confirm whether Siri AI will formally launch with iOS 27 in September or sometime later in the year, but the feature is up to scratch. There are bugs and glitches and edge-case quirks, but on the whole, it wipes the floor with old Siri and is competent enough to supplant my everyday usage of other chatbots too.

[…]

Siri AI can get a snapshot of what’s on screen, but it cannot control the UI for you autonomously. As such, if you ask it to do something outside of its library of available app actions, it will say it can’t do that. Often, it can quote the relevant steps for you to do it yourself, but obviously that falls short of the ideal experience. This feels a bit lacklustre to people already embracing AI agents en masse. Claude and Codex on Mac do not hit these walls; they are all too keen to move your mouse for you and run terminal commands until the job is done.

Previously:

Apple Intelligence to Launch in China

17 July 2026 at 22:16

Hartley Charlton:

Reuters reports that China’s Cyberspace Administration registered Apple’s on-device generative AI service this week, putting it on a list of newly cleared providers that also includes homegrown systems from Chinese phone makers.

An unnamed source told the outlet that Apple’s AI features in the country will draw on models from both Baidu and Alibaba.

William Gallagher:

China has complex requirements for regulatory approval, and sufficiently so that US firms typically need to involve a local partner.

John Gruber:

This isn’t about Siri AI, announced last month at WWDC for iOS 27 — this is the initial approval for Apple Intelligence, which was announced two years ago and rolled out in iOS 18.

Previously:

Golden Gate Squircle Jail

16 July 2026 at 20:43

Paul Kafasis:

With last year’s release of MacOS 26 (Tahoe), Apple made a mess of app icons. In the first betas of MacOS 27 (Golden Gate), however, there are signs of a turnaround. We’re urging Apple to continue making improvements, by restoring the ability for MacOS app icons to have distinct shapes.

[…]

After decades of beautiful, memorable Mac icons in varying shapes, Tahoe flattened personality to obtain bland uniformity. The platform is worse for it.

Past icons weren’t just more expressive. They were also more usable. Having distinct shapes provided a useful way to tell icons apart. Tahoe eliminates that cue by forcing everything into the same squircle, leaving color as the primary way to tell icons apart at a glance.

Jason Snell:

Kafasis makes the important point that uniform shapes make it more difficult for users, especially those with vision issues including color deficiency, to differentiate between icons.

John Siracusa:

Squircle Jail is the worst design-related thing Apple has ever done to Mac developers, and probably the worst icon-related thing it has ever done, period. Incredibly developer-hostile.

If squircled icons are actually better, then let that design win in the market. That’s how we transitioned from the classic Mac OS icon style to the more photorealistic Mac OS X icon style. Developers adopted it because they wanted to, and because users desired it.

John Gruber (Mastodon):

The squircles, I will point out, are not in and of themselves the problem. The problem would be the same with any mandated shape, like, e.g., VisionOS’s circles.

[…]

I can’t think of any other design crime Apple has ever foisted on Mac developers that I’d argue (with Siracusa) was worse.

[…]

It’s like Apple decided every single one of its own apps must wear a stupid-looking hat, and they put those stupid-looking hats on third-party apps too, whether the developers of those apps want them or not. Scratch that. Not hats but helmets.

[…]

Just the mere silhouette of the old Keynote icon is more recognizable, and thus more iconic, than any icon on any platform from Apple today.

Jeff Johnson:

The traffic sign analogy hits me personally, because the StopTheMadness icon used to be shaped like a stop sign, but I was practically forced into making it a generic road sign.

Gus Mueller:

I get why Apple did it, but I think it’s completely wrong for the Mac.

Marcin Wichary:

On his blog, Jim Nielsen writes how Apple filed away so much expression by forcing rigid icon bureaucracy in macOS. Nielsen focuses mostly on distinctiveness; previously, you could make the icon unique by its general shape or the shape of its contents, but one of these two levers has now been taken away[…]

[…]

However, one also can’t help but notice how ugly and amateurish the Creator Studio icons are, so it all feels absolutely like a net negative – the new system took something away and the proposed replacement feels low quality[…]

Rui Carmo:

I, too, find the squircles aesthetically offensive and utterly pointless.

[…]

The part that genuinely breaks my brain, though, is that I now find icons on Linux more distinctive than on macOS, which would be impossible for my ten-year-ago self to believe. The platform that built its reputation on craft and visual identity has spent a year sanding it off, while the one everyone used to mock for its inconsistency is where individuality survives.

Jeff Johnson:

The subliminal, Orwellian message of the squircle jail is that all software is subservient to Apple, merely accessories to Apple devices, interchangeable cogs in the machine.

Mario Guzmán:

Had to grab the rest of the icons from #MacOSX Leopard. Gosh, they’re so, so pretty. So finely crafted. Gorgeous. Love it.

Dr. Drang:

I agree, but Apple’s 50th anniversary has gotten me thinking a lot lately about the early days of the Mac, so it’s only natural that my mind shifted to the highly constrained icons Mac applications had back then.

[…]

Many of the complaints about squircle jail are about the loss of icon elements that “stick out” from the rest of the design. As you can see, this idea was there from the very start; the hands stick out from the tilted rectangles.

John Gruber:

I never loved the hand on these icons. It felt too uniform. It functioned like a “this is an application” badge, but such a badge never felt necessary to me.

[…]

I think it’s less that Apple gave up on them and more that it came into focus that the “hand holding a pen over a diamond-shaped document” convention was intended for document-based apps. It signified “This is a creative tool that you use to create documents”. Apps that weren’t about creating document files — like Disk First Aid and Font/DA Mover — got different icons. Font/DA Mover’s truck icon in System 2 signified that you use this tool to move things. Disk First Aid’s ambulance was an obvious metaphor for repairing something unwell.

[…]

But the main thing about the “hand holding pen over diamond” convention was that it was only ever a convention.

John Gruber (Mastodon):

(a) I don’t think this is a good mandate for iOS either;

(b) it was always so for iOS, though, so it’s not like Apple has ever taken away rich creative icon shapes on the platform;

(c) MacOS is a far richer and more precise environment than iOS.

[…]

App icons on the iOS home screen are effectively simple buttons. I think it’s rather obvious that’s why they have had that squircle/roundsquare shape ever since the iPhone was announced in January 2007 (source). They’re one-tap launchers. App icons in MacOS are not mere buttons. You can drag them, move them, and drop things on them. You click them to select, and double-click to launch. They are richer objects that deserve a richer visual vocabulary. iOS is a world meant for fat-tipped Magic Markers and blunt safety scissors. MacOS is a world meant to support fine-tipped drafting pens and precision razor-sharp X-ACTO knives.

Louie Mantia (Mastodon):

While developers have submitted full-bleed square images for iOS app icons since 2008, for these new squircle icons in macOS 11, Apple provided a template to compose app icons in an image editing tool like Photoshop, with full control over the canvas beyond the suggested—but not required—squircle. This template made it easy-ish for designers to compose macOS app icons that were identical to or synonymous with an iOS app icon, while leaving the door open to continue using arbitrarily-shaped app icons on macOS.

[…]

The second type of Squircle Jail is more controversial, because these app icons were specifically drawn with the intention of fitting in. Overriding that intention feels like punishment for having done the right thing. App icons in a style that was recently encouraged by the system are now scaled down and put inside the squircle as if it were a container. Every icon that was utilizing the previous squircle shape suddenly looks much worse than before.

[…]

Instead of taking care to design and develop solutions specifically for Mac and iPhone, newer and bigger companies that don’t only make apps often ship apps with logo icons, rather than app icons. We’ve all seen it.

[…]

I would love if Apple provided a way for designers to poke outside that squircle boundary. Some of my favorite app icons did that. But also some of my least-favorite app icons ignored this shape entirely, when it was used for every system icon in the last five years. Whenever those apps showed up in my Dock, it was like a stain on my shirt I couldn’t get out.

John Gruber:

Ultimately this is what I object to with the squircle mandate. It favors the bottom of the heap by restricting the top. It makes bad icons mediocre but pushes great icons toward mediocrity too. That’s not The Macintosh Way.

Nick Heer:

Mantia touches on all the pragmatic reasons to unify the shape of icons in an operating system, all of which I have considered, and then drops the above paragraphs — and things started to make more sense to me. This is a different way to think about it. This is not a situation where a cleaner looks like a zesty beverage with toxic consequences. The shared general function of these icons does help communicate something and makes them less ambiguous in that sense.

But a broad category of functionality is only part of the story of an icon and — with respect to Mantia’s long and illustrious history of work in this area, and that of co-Parakeeter Luka Grafera — taking away a difference of shape also limits what an icon can communicate. It may not be a cleaning product that looks and is packaged like juice, but imagine if every consumable liquid was in identical bottles with only a different label.

Steve Troughton-Smith:

Louie’s squircle jail post just underscores that the squircle jail benefits 99% of apps, and is better for the platform overall. There is only ever a handful of apps that make great Mac app icons, and a withering number of ‘great Mac app icon designers’ — you can probably only name one or two left in the scene.

Jeff Johnson:

Mantia talks as if it were more important for apps to “belong to the Dock” than to allow Dock users to quickly select the right app in the list. That’s choosing form over functionality.

“The shape of apps is a squircle.” But Mac users already knew those were apps in the Dock!

See also: Accidental Tech Podcast.

Tyler Hall:

If you’re lucky enough to distribute an app outside the Mac App Store, you can break free of squircle jail using NSDockTilePlugIn. It’s not strictly the intended use-case of that API. And it’s not allowed in the Mac App Store, either. But it can solve the problem.

BasicAppleGuy:

If you recognize these icons, it’s probably time to schedule your routine back exam.

Previously:

Update (2026-07-17): Louie Mantia:

But my perspective right now is to be very pragmatic. The decision to mask all icons with squircles is a long-time coming. It was perhaps the most predictable thing to happen in Apple’s history. For 20 years, it’s been leading up to this.

I want to make nice things for macOS, whatever macOS is. And this is what it is.

Roger Wong:

Some of my favorite icons over the years have had interesting shapes, like the truck for Transmit, the vise for Compressor, or the cute bird for Twitteriffic.

[…]

But I also recall clicking some icons and not being able to select them. Why? Because I was inaccurate in my click and instead my cursor landed in the empty space just outside the shape.

[…]

If I recall correctly, developers could use a different mask for the click target to help users out. But I don’t think many did all the time, including Apple, which you can obviously see in the video above.

Louie Mantia:

I don’t want to step on toes regarding your new [StopTheMadness] icon which has great color— but I don’t understand why you elected to abandon the octagon as the outer shape. That’s a choice. You are not forced to abandon it. Why not do something like this?

I like this.

Nick Heer:

Losing some of the artistry in an icon makes it more difficult to distinguish between legitimate and well-crafted Mac apps, and everything else. It is not a perfect proxy, to be sure, and there are some very nice squircle icons. But it is nevertheless a unfortunate change that makes apps of varying levels of quality look more similar.

SpamSieve 3.3.1

15 July 2026 at 19:53

SpamSieve 3.3.1 is an update of my Mac e-mail spam filter that improves the filtering accuracy and includes various optimizations, fixes, and updates for macOS 27. Some interesting engineering issues were:

  • I’m still supporting macOS 10.13, but the app can now build with the macOS 12 deployment target in preparation for Xcode 27. The way Swift handles calling deprecated APIs remains annoying. You need workarounds like protocols to suppress a warning in a particular region of code. Often, I am updating to a newer API, but I want to continue using the old one on earlier versions of macOS. Right now I am heavily testing on macOS 26, so I would like to only deploy the new code there. Sometimes the initial versions of APIs are buggy, and I don’t want to have to retest every feature on every version. But Swift doesn’t like me to gate the calls to macOS 26 and later if the new API was actually introduced in, say, macOS 11.

  • The most risky update was probably switching to the Swift API for Scanner. This is tricky because the current scan position changes from being based on UTF-16 indexes to String.Index. And in some cases my code was intentionally scanning into the middle of a combining character. I was really glad to have extensive tests here.

  • Recent versions of Tahoe introduced a Core Data bug that broke save recovery (when invalid Unicode can’t be written to the database and we have to fix it up first). When the error comes in, SpamSieve looks under the NSDetailedErrorsKey key, but the value of this key is "NSDetailedErrorsKey" while the actual error info is under the key "NSDetailedErrors".

  • Database corruption combined with a Core Data bug and two Swift behaviors were causing crashes. The root problem, I think, is that in this situation Core Data neglects to set the error pointer for -[NSManagedObjectContext countForFetchRequest:error:]. Normally, Swift would detect this and throw a generic nilError. However, this method signals errors by returning NSNotFound instead of nil. It’s annotated as swift_error(nonnull_error), which I think means that Swift doesn’t even look at the return value, only the (unset) error. So my code was receiving NSNotFound on the non-error path, treating it as a real count, and doing some math with it, which (by default in Swift) leads to a crash if there’s overflow. Now my code checks for NSNotFound and uses Int.addingReportingOverflow().

  • I reimplemented Core Data batch fetching because of two problems with the fetchBatchSize option. First, it logs spurious errors when fetching from multiple stores at once. Second, it leads to high memory use. It will load objects in batches, but it never releases the earlier batches. You can manually refault objects that you no longer need, but it will still hold onto the full object shells, which can add up. My implementation only holds onto IDs, and it can fetch the IDs using a different context than the objects to push more work to background threads.

  • I’m now using String.makeContiguousUTF8() in various places to avoid slow iteration of bridged strings.

  • There was a regression where some menu code could crash on macOS 10.13. -[NSMenu setItemArray:] is only available on macOS 10.14 and later, whereas the getter is always available. With old Objective-C, the two methods could be annotated with separate availabilities. The Objective-C property syntax doesn’t allow this, so there’s no way for the compiler to flag calls where the setter is missing.

  • The AppleScript support works much better with large data sets. The key, I think, is to never return an array to Cocoa for a scripting property/element. First, if you give it a lazy array it will sometimes try to access all the elements even if it only needs a few. And, second, AppleScript will run out of memory if the array is too large. By using indexed accessors, you can maintain laziness and only convert one object to a descriptor at a time. By caching a batch-fetching collection, you can limit the number of fetches and respond quickly when AppleScript requests individual objects.

Previously:

macOS 27 Public Beta

14 July 2026 at 19:27

Juli Clover:

Apple today released the first public beta of macOS Golden Gate, expanding the macOS 27 beta test to non-developers. You can sign up to test the update on Apple’s beta website, and then download it by going to System Settings > General > Software Update and toggling on the macOS 27 beta.

Jason Snell:

The fact that there are more design changes in macOS than any of Apple’s other 27 updates speaks volumes about how broken many of the Tahoe design decisions were. Apple describes the design as “even more refined,” because in Apple marketing-speak, broken features are never remedied or fixed—past features are just improved. The truth is, Apple has rolled back numerous missteps and made changes to others to mitigate the issues they caused.

Antonio G. Di Benedetto:

The Golden Gate developer beta has proven stable in my everyday use on an M5 MacBook Air and M5 Max MacBook Pro, which is notable since dev betas often have side effects like tanking battery life or causing hardware to run hotter than normal.

[…]

Would I still prefer to go back to the flatter design of macOS Sequoia? Yes, unequivocally. But at least Liquid Glass is more tolerable and less distracting now.

John Voorhees:

Nowhere is the Snow Leopard of it all more apparent than in the hundreds of little changes made to improve the day-to-day use of your Mac. I’m not going to catalog them all here, but I’ve used Golden Gate on two different Macs at this point, and based on my experiences so far, the changes are meaningful.

Jeff Johnson:

This is the crazy Finder column view file selection dragging behavior I’m seeing in the latest Golden Gate developer beta.

Matthias Gansrigler-Hrad:

With the release of the macOS 27 Golden Gate public beta, can we finally submit Mac apps built with Xcode 27?

Previously:

Sunsetting CoreStorage

14 July 2026 at 19:26

Apple:

In macOS 28 and later, the Mac OS Extended file system format will be supported only for volumes (disks and other storage devices) that aren’t encrypted. For future macOS compatibility, either decrypt or reformat any encrypted Mac OS Extended volumes.

I think Apple removed the user interface for creating such volumes way back in Big Sur. It’s not really surprising that they’re going away, although only offering a year of warnings seems rather aggressive. Many people delay updating to major OS versions or wait until they get a new Mac. There will be users that switch to a Mac that can only run macOS 28 and get rid of their old one before realizing that some drive they haven’t connected in a while won’t mount.

The other surprising part is that Apple’s options—reformat or decrypt—are not great. During the initial transition to APFS, macOS would transparently convert an encrypted HFS+ boot volume to encrypted APFS without rewriting any data. This functionality is nominally still available via the diskutil apfs convert command, but Apple hasn’t mentioned this or built an automatic upgrader GUI.

[Decrypting] doesn’t apply to encrypted Time Machine backup disks.

It’s obvious why. The old Time Machine format with hard links is totally different from the new one based on APFS snapshots. But this means that you’ll either need to buy a new Time Machine drive for use with macOS 28 or delete your backup history. Even if you keep the old drive, you’ll need an older boot drive or an old Mac in order to be able to access it.

Previously:

Update (2026-07-24): Marcus Mendes:

Apple has now revised the page to add a third option, allowing users to convert an encrypted HFS+ volume directly to encrypted APFS without decrypting it first.

[…]

The company has also removed its previous instructions for decrypting the volume first, converting it to APFS without erasing it, and then optionally re-encrypting it.

Hammer:

Ignore Apple’s guidance and do not use Convert to APFS in Disk Utility for disk images.

The first encrypted HFS+ disk image I tried to convert that way failed and left me with an unusable disk image. If I didn’t have backups I’d have lost its contents.

It didn’t corrupt the disk images that I tried, but it didn’t work, either, instead failing with an error about expecting a GPT partitioning scheme.

Update (2026-07-28): Howard Oakley:

As encrypted disk images have never used CoreStorage, withdrawal of support for that has no impact on the continued use of any form of encrypted disk image, including those using HFS+ as their virtual file system.

This is a good point. Apple’s support page refers to “encrypted Mac OS Extended disks,” but the developer release notes refer to CoreStorage specifically. So this shouldn’t affect most encrypted disk images, which show up in Finder as unencrypted after mounting. The encryption is at the disk image level rather than at the file system level. However, I’m not sure that all encrypted disk images are safe. Presumably, a device image, which directly copies the blocks rather than the files, would still use CoreStorage.

Apple Sues OpenAI Over Trade Secrets

13 July 2026 at 20:02

Sarah Perez (PDF, Hacker News, MacRumors):

The iPhone maker alleges that this misconduct, which it says reveals a pattern of theft from OpenAI employees who previously worked at Apple, was directed by OpenAI’s senior leadership, including Chief Hardware Officer Tang Tan.

The lawsuit, which was filed in the U.S. District Court for the Northern District of California, accuses Tan of using Apple’s confidential project code names during OpenAI’s recruiting process, asking job candidates to bring in Apple hardware components to their interviews, coaching departing Apple employees on how to evade the company’s security procedures, and asking for details about the company’s unannounced products.

Apple’s allegations are detailed and shocking, and it sounds like they have a lot of evidence.

Chance Miller:

The lawsuit names Chang Liu and Tang Tan as two of the defendants. Tang Tan served as VP of product design at Apple, leading iPhone and Apple Watch product design. He departed the company in February 2024 to work with Jony Ive. Chang Liu, meanwhile, worked at Apple for eight years and was a senior system electrical engineer before departing to join OpenAI in January 2026.

Apple’s lawsuit also names OpenAI and io Products as defendants.

OpenAI’s hardware efforts are being led by Jony Ive, Apple’s former chief design officer.

[…]

Ive, Hankey, and Cannon are not personally mentioned anywhere in Apple’s initial filing today.

Emma Roth:

Here are the most surprising claims in Apple’s 41-page filing.

Marcus Mendes (MacRumors):

OpenAI’s Director of Strategic Communications, Drew Pusateri, took to X to comment on the company’s behalf.

In his post, he claims OpenAI has “no interest in other companies’ trade secrets,” adding that OpenAI remains “focused on building innovative technology that empowers people everywhere.”

This seems like a weak response, given that Apple says it reported its findings to OpenAI in February and never heard back. Presumably, they’ve already investigated but see the situation as serious enough that they need to say as little as possible.

It’s not clear to me the extent to which Apple believes the behavior was limited to the named defendants. It’s hard to believe that the rest of OpenAI’s leadership—including Altman and Ive—were unaware, given the scale of their recruiting from Apple. It’s equally hard to believe that they were aware and thought they could get away with it. I guess little from Altman would surprise me at this point. I’d like to believe that Ive wasn’t part of it, but then are we to believe that his former coworkers all kept him in the dark?

Nick Heer:

What is immediately notable about this whole thing is the myriad conflicts of interest. Apple, of course, has a current partnership with OpenAI to power Apple Intelligence features, something repeatedly mentioned on the previous version of its marketing webpage, and conspicuously absent on the current one.

But the history runs far deeper. Among the defendants in the suit is io Products — do not blame me for that capitalization choice — founded by Jony Ive and acquired by OpenAI last May. Total mentions of “Ive” in the body of this lawsuit? Zero. Also, one of the investors in Ive’s company was Emerson Collective, founded by Laurene Powell Jobs, and which now has equity in OpenAI. Neither Emerson nor Powell Jobs are defendants.

M.G. Siegler:

It all reads a bit as if Apple has been building up evidence of these allegations for some time and recently got their smoking gun. It’s not just nebulous “trade secrets” either, there are specific mentions down to “metal finishing techniques” that Apple apparently invented and protected.

It also comes a little less than a month after OpenAI was rumored to be threatening Apple with a lawsuit over the perceived failure of their deal to bake ChatGPT into the iPhone. As I wrote at the time, even just that threat was clearly not going to go over well in Cupertino.

John Gruber (Mastodon):

Footnote 13 on p. 15 states:

Apple and OpenAI have a commercial relationship involving the integration of OpenAI’s ChatGPT into Apple Intelligence. The companies have entered into a written agreement governing that integration. That agreement is not at issue here. OpenAI’s acts of trade secret misappropriation alleged herein do not arise from and have no connection to that agreement.

Be that as it may legally speaking, in practical terms it seems untenable for that Apple Intelligence partnership to continue after this.

Jason Snell:

All that bubbling-under-the-surface tension between Apple and OpenAI is now out in the open!

M.G. Siegler:

Namely, while Apple frames OpenAI – or at least its fledgling hardware division – as “rotten to its core” (interesting terminology!), they really only have a case against two and maybe three individuals. But they also clearly believe that if this case goes to trial, they will have a case against a lot more.

[…]

The parallels to the Anthony Levandowski situation after he left Google for Uber have been drawn.

[…]

It is interesting that Apple is not suing Yu-Ting “Alyssa” Peng, who is named in the suit as a co-conspirator with Liu while she was still employed at Apple, before she also subsequently went to work at OpenAI. Is it possible she’s cooperating or has cooperated with Apple in this investigation?

[…]

Even if these allegations are found to be untrue or embellished, can he reasonably stay at OpenAI now? And perhaps that’s the real outcome Apple is looking for here, as they clearly frame him as the ringleader of the 400-plus people who have come over to OpenAI from Apple.

Hartley Charlton:

OpenAI’s ambitions to build a hardware rival to the iPhone are already running into trouble because of Apple’s trade secret lawsuit, according to Bloomberg’s Mark Gurman, who argues the damage is showing up well before any court ruling.

[…]

The scale of the talent drain is a major part of why this matters to Apple. More than 400 former Apple employees now work at OpenAI, including former Apple design chief Jony Ive, and Gurman says the company poached so heavily from Apple’s iPhone product design group specifically that Apple had to rebuild parts of the team. Apple has responded with bigger retention bonuses and executives personally working to keep engineers from leaving.

Jeff Johnson:

OpenAI stole stuff? I can’t believe it! I thought they were done with stealing after they stole literally everything on the internet.

Colin Cornaby:

I’m sure there’s no problem with sending this company all your source code they pinky swear not to train on.

Steve Troughton-Smith:

I can’t believe this awful company solicited confidential information and stolen trade secrets, hiring from this other company while pretending to partner with them. ‘Rotten to the core’ indeed

😛

He’s referencing Apple doing this to Masimo. And, of course, Steve Jobs himself directed Apple to engage in illegal hiring practices.

Previously:

Update (2026-07-17): See also: Dithering.

Tim Hardwick (FT, Hacker News):

Apple has reportedly sent legal letters to dozens of former Apple employees now working at OpenAI, telling them to preserve potentially relevant documents and communications as it continues to pursue its trade secret lawsuit against the AI company.

Update (2026-08-06): Hartley Charlton (PDF):

OpenAI has asked a federal judge to dismiss Apple’s lawsuit accusing the AI company of stealing trade secrets, calling the allegations “meritless.”

Previously:

Apple Intelligence for Home’s iCloud+ Requirements

8 July 2026 at 20:22

macOS 27 Golden Gate Beta 3 Release Notes:

Apple Intelligence for Home requires an iCloud+ subscription starting at 2TB.

Via Rajesh Pandey:

As part of the upgrade, the Home app uses AI to generate summaries of motion alerts from compatible HomeKit Secure Video cameras.

[…]

Apple likely requires the 2TB iCloud+ tier because HomeKit Secure Video already relies on iCloud+ storage tiers. The 2TB plan supports a larger number of cameras, and AI-generated video descriptions would add to Apple’s cloud processing costs.

That makes sense, but it seems odd because the iCloud tiers are named based on storage amounts, yet the feature isn’t tied to how much space you’re actually using. A lower iCloud plan with tons of free space doesn’t get the features, yet a nearly full 2 TB plan does. There are already restrictions where supporting more cameras requires higher plans, but that is at least quasi related to storage.

I reluctantly upgraded to a 2 TB family plan within the last year or so. We don’t store many files in iCloud, messages are set to auto-delete after a year, and I manually offload photos older than a year (except for hearted favorites). It’s hard to believe given how I remember the original 5 GB free tier once being sufficient, but staying under 200 GB became untenable without a lot of extra work. It doesn’t help that Live Photos sometimes gets inadvertently turned on, so that we’re storing all these little videos without realizing it.

Previously:

Golden Gate Spotlight

2 July 2026 at 20:39

Hartley Charlton:

Apple today announced that it has rebuilt the search infrastructure that powers key features like Spotlight, Photos, and Mail across all of its major next-generation software platforms.

LLM search using Core Spotlight:

Level up basic search into a retrieval-augmented system using SpotlightSearchTool and LanguageModelSession. Explore Core Spotlight integration, delegate-based hydration patterns, and how metadata quality impacts your search results. Learn how to use custom PipelineStages for tasks like sentiment analysis. Discover best practices for indexing and building flexible, context-rich search experiences in your app.

Corentin Cras-Méneur:

So from what I understand from the WWDC keynote, Spotlight is actually going to work?? When I search for simple files, it fails the VAST majority of the time!

Saagar Jha:

I feel like I am watching the Mac OS X Leopard intro again guys how did we mess up search so bad we have to present it again

Howard Oakley:

Semantic search is different, in that its matches aren’t as crisp and Boolean. Rather than working like a simple index, it’s more like a thesaurus in effect.

[…]

Rather than compiling more exhaustive sets of keywords, semantic search can broaden the scope to cope better. And because we can interact through Siri, we can fine-tune our search results by specifying the cattle should be black and white, perhaps, and combining conventional search criteria such as location.

To get this to work effectively, there are some limitations. Because semantics are so contextual and variable, this involves apps and Core Spotlight. That’s a big benefit to user privacy, as Core Spotlight’s indexes are separated by user and stored locally, although in places like ~/Library/Metadata rather than volume-based Spotlight indexes in the existing hidden .Spotlight-V100 folders. And unlike global Spotlight indexing and search, it requires apps to have code to support both tasks, as it can’t just happen by magic.

While I’m sure we’ll all be impressed with many of the results of semantic search, hits that we never expected to find, it’s going to prove harder to assess those that it misses.

Rhythmic Fistman:

Never has it been so inconvenient to find a file whose name you know exactly

Maybe rebuilding Spotlight’s infrastructure will fix this, or maybe adding the semantic stuff will make handling simple cases like this worse.

i3aychikov:

Personally, in my experience, I’ve noticed that the new Spotlight is much faster than the one in MacOS 26 Tahoe. It opens with less delay, and finds the right app or file instantly when Spotlight in Tahoe seems to have had a slight delay.

See also: TidBITS-Talk.

Previously:

Update (2026-07-13): Howard Oakley:

Already that has revealed the qualities of what would be offered as a Top Hit in its ranked search, with scores such as mrScore: 0.2516, mrScoreText: 0.6878, kMDItemDisplayName: 1.0000, mrScoreFreshness: 0.50000000, mrScoreResultType: 0.0700, freshnessDate: (null), pommesL1=0.0000, L2=-4999.0283 While most of those are opaque, it’s notable that ‘freshness’ is included in ranking. In contrast, searches made in the Finder’s Find window are unranked, and don’t calculate any of those scores, nor take into account freshness.

Howard Oakley:

Salient features of Spotlight’s AsYouTypeTopHit ranked search include:

  • inclusion of hits across multiple search domains;
  • a freshness_score as a measure of recency or topicality;
  • three opaque scores of mrScore, pommesL1 and pommesL2;
  • related search considering similar data sources and websites;
  • identification of Top Hits.

macOS California Adventure

29 June 2026 at 18:37

Basic Apple Guy:

But what exactly is a Mavericks? Where is Sonoma? And how many Mac users could point to where Ventura or Tahoe on a map?

I decided to trace the history and real-world locations behind every California-inspired macOS release and the wallpapers used to market the them to the world. Enjoy.

Previously:

Xcode 27’s Device Hub

25 June 2026 at 18:25

Apple:

You manage all the devices that appear in Xcode as run destinations using Device Hub.

Run your app on simulated devices in Device Hub to quickly evaluate new features and fix bugs, and to see how your interface works on devices that you don’t have physical access to. Run your app on physical devices to test features or services that have hardware dependencies or investigating performance issues. For more information, see Running your app on simulated or physical devices.

Fatbobman:

Device Hub is undoubtedly a major surprise. It integrates simulators, physical device management, system state testing, and dynamic size adjustment into a new workflow. Its impact on day-to-day development experience may be more direct than that of many individual APIs. That said, iPhone apps now also support dynamic size adjustment, which will bring new challenges for developers, especially in terms of data and state organization. Adapting to different sizes is not something that can be solved merely by relying on dynamic layout containers. In many scenarios, large and small sizes correspond to very different navigation logic.

Collin Allen (Mastodon):

Xcode 27 introduced, among other new features, a new Device Hub app for developers that takes the place of the Simulator app. Where Simulator relied on separate windows for each device, Device Hub brings them all together into a single window where each simulated device is the detail view from a source list of devices on the left. It’s a more organized approach, made necessary by the wide variety of platforms Apple and Apple platform app developers have to build and test against.

[…]

In releases prior to Xcode 27, you could resolve this by importing the root public certificate into the simulated OS. On iOS, this could be done by dragging and dropping the .cer file onto the Simulator device window. Nothing would appear to happen, but you could then navigate to Settings, General, About, Certificate Trust Settings and mark the certificate as trusted.

[…]

In Xcode 27 with Device Hub, this process is much more uniform. […] While this new process does require you to wrap certificates in an Apple Configurator profile, this is much more consistent with how Apple’s device management system works, as it relies on signed profiles with policies, not loose .cer files. And now, just by adding the .mobileconfig to the Profiles section of the device inspector, the embedded certificate is automatically marked as trusted, greatly speeding up installation on new virtual devices.

Steve Troughton-Smith:

I get what Apple is trying to do with the Device Hub, but it’s nowhere near as usable and as useful as the iOS Simulator (in this seed)

Adam Overholtzer:

Device Hub is missing the “pixel accurate” and “point accurate” zoom options and that’s not acceptable.

Steve Troughton-Smith:

Maybe someday the Simulator/Device Hub might even be able to output screenshots in the same orientation as the emulated device 😛

Steve Troughton-Smith:

Thanks to the remote control / screen sharing features of Device Hub, I can remotely navigate to Settings and start a software update on all my iOS27 devices without having to go collect them around the house 👌

Steve Troughton-Smith:

For all of Apple’s nonsense about adding iPhone Mirroring to the EU, the new Device Hub (iOS Simulator) lets you remote-control your physical iOS devices just fine. I don’t think the DMA has an opt-out for developer tools 😛

Steve Troughton-Smith:

It’s such a shame for now that Xcode 27’s Device Hub doesn’t support remote screen sharing with iOSes earlier than 27. I wish the screen sharing functionality was part of the developer disk image, and backported to iOS 26 and even iOS 18. Having a physical device plugged in somewhere is so much faster than booting a Simulator.

Previously:

Update (2026-06-26): Léo Natan:

Xcode 27’s “Device Hub” is a broken shitshow, but most importantly, it lacks the Debug menu, where you could toggle slow animations and simulate memory warnings. Apple works tirelessly to destroy any good tool they used to have.

He has a thread of issues. Hopefully these will be addressed before it’s out of beta.

Update (2026-07-01): Craig Hockenberry:

The Device Hub sometimes doesn’t kill CoreSimulator processes when you quit the app (not sure if this is a bug or intentional). Given that each device uses several hundred processes, the memory/processing impact is significant.

You’ll probably want to keep an eye on how many you have running: use right-click on the simulator in the list to “Shut Down” as necessary.

Swift 6.4

24 June 2026 at 21:54

Swift 6.4 is now available in beta form with Xcode 27. The Swift Evolution proposals are listed here.

What’s new in Swift:

Discover the latest language advancements, including updates for everyday ergonomics, improved concurrency, and safer high-performance code. Explore workflow and language interoperability improvements and updates in embedded Swift.

Build real-time apps and services with gRPC and Swift:

Build engaging live experiences with gRPC in your Swift app and backend. gRPC is an open-source RPC framework designed for high-performance, bidirectional streaming APIs. Explore how the gRPC Swift package provides a modern, safe runtime built with Swift concurrency.

Explore numerical computing in Swift with MLX:

Bring NumPy-style computing natively to Swift with MLX Swift. Discover how to eliminate cross-language friction in your machine learning workflows by handling image processing, tensor operations, and neural network training in a single, type-safe environment. Explore the APIs that let you leverage GPU acceleration while enjoying the compiler, tooling, and debugging experience you already know.

Swift 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 Swift announcements.

Matt Massicotte:

There’s a voting system. And that means a number of questions weren’t selected. This time I copied those down and I thought it could be fun to take a shot at answering the ones that are more in my area.

Xcode 27 Beta 2 Release Notes:

The Swift dependency scanner has been optimized to avoid redundant setup work and header searches when looking up Clang modules during a single dependency-scan action, substantially improving scanning performance.

As a consequence of this change, every Clang module reachable from a single Swift dependency-scan action must have a unique module name. If two module maps visible to the same scan declare a Clang module with the same name, the scan may report an error.

[…]

System now provides Swift APIs for the C stat, lstat, fstat, and fstatat system calls. This includes a new Stat type with initializers from FilePath, FileDescriptor, or a C string; FilePath.stat() and FileDescriptor.stat() instance methods; and supporting types (FileType, FileMode, FileFlags, UserID, GroupID, DeviceID, and Inode).

Wade Tregaskis:

The final piece of the Prospective Vision for Accessors, this allows for more efficient accessors on structs, in a nutshell.

[…]

Now there’s a safer version of the existing withUnsafeTemporaryAllocation (first introduced in Swift 5.6). It works just like you’d expect. It comes in both “raw bytes” and typed elements versions, just like its unsafe predecessor.

[…]

The new isTriviallyIdentical(to:) method offers a guaranteed-fast way to check two objects for equality. It is essentially an optimised version of the existing equality condition provided by Equatable and the == operator. It’s useful because it guarantees O(1) time complexity, whereas == makes no formal guarantees at all (and for many types is O(N) or worse). But unlike the existing identity comparison operator === – also O(1) – it promises to do more than just tell if two objects are the exact same pointer, and it works on value types (not just reference types).

[…]

These new types generalise the existing patterns of borrowed and mutable references, that have previously existed in Swift in much more restricted forms (e.g. inout parameters are essentially MutableRef parameters, and Span & MutableSpan are array equivalents).

There’s now a built-in function for demangling Swift symbol names, in the Runtime module (that’s bundled with the Swift toolchain, alongside the stdlib etc).

Khoa Pham:

As Apple has aligned OS version numbers across platforms, Swift 6.4 takes the next step by letting you collapse repetitive availability attributes into a single anyAppleOS token.

[…]

There are situations where you need to call a deprecated API while you plan a migration, or audit a critical function for unsafe usage, without letting those concerns bleed into the rest of the project. The new @diagnose attribute handles both cases.

[…]

Some work should complete even after a task is cancelled, like flushing a file to avoid corruption. withTaskCancellationShield wraps a region where Task.isCancelled always returns false.

Antoine van der Lee:

Swift 6.4 implements SE-0493: Support async calls in defer bodies. This is one of those changes that feels obvious once you need it.

[…]

Swift 6.4 improves error handling for unstructured tasks through SE-0520: Discardable result use in Task initializers. The change helps you catch a subtle bug: creating a throwing task and then ignoring its returned task handle.

[…]

Swift 6.4 also implements SE-0530: Async Result Support.

[…]

Swift 6.4 implements SE-0518: ~Sendable for explicitly marking non-Sendable types. It allows you to communicate that a type has been audited and should not conform to Sendable.

Slava Pestov:

I thought it would be a good time to detail some of the type checker performance improvements we worked on since I shared the type checker performance roadmap last year. I’m also going to outline a couple of things we plan on looking at next.

Previously:

Update (2026-07-09): I was optimistic about improvements to the type checker making compilation faster, but I found that compiling my predominantly Swift project with Xcode 27 Beta 3 was only 0.3% faster than with Xcode 26.6. I wonder if there’s some extra setting I’m supposed to enable.

SwiftData in appleOS 27

23 June 2026 at 20:14

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:

CrashReportExtension

22 June 2026 at 21:51

CrashReportExtension:

The Crash Report Extension framework allows you to perform analysis and produce a report when your app crashes. Your crash-handling code executes out-of-process, rather than from a signal handler or other in-process techniques.

You implement your handler by writing an app extension that conforms to the CrashReporterExtension protocol. The system calls your processCrashReport(process:) method when the app crashes. Use the CrashedProcess parameter to inspect the state of the crashed app by retrieving a crash reason, symbolicating relevant addresses, and communicating with the process over a read-only Mach port. After collecting the crash data, you can send a report back to your own server.

[…]

Crash Report Extension is available on iOS 27 and later. It isn’t available to Catalyst-based macOS apps, or on iOS apps running on Mac computers with Apple silicon.

The top of the page says “macOS 27.0+,” so I guess this means it does work for regular AppKit and SwiftUI Mac apps. It’s great to finally have a supported way to do this.

I don’t know why they can’t just give you the crash report text or .ips JSON directly, though. It looks like you have to use Mach IPC with the corpsePort to get the backtrace for each thread and then use the extension API to symbolicate the addresses. Even then, I’m not sure you can get all the information that’s in a standard crash report, such as the Application Specific Backtrace. Maybe you can find the address for gCRAnnotations/__crashreporter_info__ and load it with mach_vm_read?

Previously:

SwiftUI in appleOS 27

19 June 2026 at 20:43

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:

Update (2026-06-23): Natalia Panferova:

iOS 27 adds new AsyncImage initializers that accept a URLRequest instead of a URL. We can now configure request headers, cache policy, and timeout interval while continuing to use the built-in loading and phase handling provided by AsyncImage. A new asyncImageURLSession(_:) modifier also lets us provide the URL session used by asynchronous images in a view hierarchy.

Update (2026-07-10): Luc Vandal:

SwiftUI .reorderable() crashes when the reordered view body contains if #available: “Unexpected identifier type. Expected [Type], got [Type]”

[…]

Even attaching a .popover to an item causes it to crash when reordering.

Update (2026-07-23): Yakov Manshin (video, via Mohammad Azam):

Seven years after its blockbuster 2019 announcement, SwiftUI was supposed to be the mature, production-grade future of cross-platform UI development on all Apple platforms. Instead, SwiftUI feels like a perpetual beta, even in 2026. In this deep dive, I break down why the initial excitement has given way to deep professional frustration for senior engineers. I analyze the systemic issues with performance and layout predictability, the chaotic state of SwiftUI’s ever-changing data flow, and the frustrating lack of backward compatibility that forces developers into a nightmare of shims and workarounds.

Through real-world examples—including Apple’s own SwiftUI tutorial (which is broken) and a head-to-head performance comparison with UIKit (guess who wins)—I demonstrate how SwiftUI trades precise engineering for an illusion of convenience.

Beyond the code, this video explores a broader, more concerning shift in Cupertino: a transition away from the uncompromising craftsmanship of the original era of Cocoa, Aqua, and Auto Layout toward a modern corporate culture of “good enough” products.

Mandatory Apple Intelligence

19 June 2026 at 20:42

Rodrigo Ghedin (Hacker News):

That show of respect for its customers may change with iOS/macOS 27. Reports suggest that, at least in the first beta, Apple Intelligence is mandatory[…]

[…]

“So what’s the problem?”, you might ask. Apple’s AI takes up several gigabytes of storage and leaves less headroom for RAM.

Brandon Vigliarolo:

Those are small inconveniences, however, compared to my biggest gripe with Siri AI: It’s completely ruined Spotlight.

[…]

The new Siri-first interface that presumes that if you’re searching for anything but an app or file, you must want Siri to feed you a few links of Apple Intelligence’s choosing.

Getting to a web search from a Spotlight query now requires multiple taps: Type your query, tap “Show Results” (careful: hitting enter will trigger Siri to craft a response, eliminating the possibility of seeing any actual Spotlight content), tap on “Show More” next to the list of Siri-surfaced web results, scroll down until you see Search Google (or whatever engine you have set as your default), then tap that.

Apple Intelligence used to be opt-in, but now it seems that you can’t even opt out. I had previously mentioned the removal of the switch in the context of hypocrisy, but it seems there are enough issues here for it to warrant its own post. Also, I had previously written that the switch was combined with Siri, meaning that you could turn off Apple Intelligence if you turned off Siri, too. I now doubt that’s the case.

John Gruber:

I’m thinking that asking for a switch to turn of “Apple Intelligence” systemwide is like asking for a switch to turn off Spotlight.

Indeed, we can turn off Spotlight, both the indexing (except, alas, for APFS Time Machine volumes) and the UI, and I think that’s a good thing.

Previously:

❌