Tuesday, June 9, 2026

Golden Gate Window Corners

Adam Overholtzer:

Corners!

Simon B. Støvring:

“We fixed corner radius” was a WWDC keynote highlight. Let that sink in.

Rudrank:

This should have been since macOS 26 #WWDC26

Folks getting excited for consistent corner radius 😂

Kuba Suder:

Ehh, no change here, RIP Intel Macs… stuck on the v1 Liquid Glass forever 🫤

There was so much demand for this that the Liquid Radius haxie exists. People were willing to disable FileVault and System Integrity Protection to get consistent window corners.

Previously:

Golden Gate Sidebars and Toolbars

Joe Rossignol:

macOS Golden Gate also has design changes. For example, apps now have a unified toolbar at the top, and the sidebar now expands to the edge of the window.

Hartley Charlton:

Sidebar behavior is also being updated. Sidebars will now expand to the full edge of the window, with refraction effects continuing beneath them rather than cutting off at the sidebar boundary. Sidebar icons will also retain their color, a change that addresses a common complaint about the original Liquid Glass implementation.

I’m really happy for these changes, but it’s not clear to me that they’re improvements over what we had pre-Tahoe or, especially, pre-Big Sur.

John Siracusa:

Oh thank god! No more margins around sidebars on macOS!

Benjamin Mayo:

sidebars now work how they used to!

Mario Guzmán:

I just love that toolbars have clear/strict dividers again in #macOS27.

Whoever said your content and UI should blend is a liar.

What a wonderful and welcome fix in #macOS27.

Betamagic:

Instead of properly fixing the Liquid Glass implementation of NSToolbar buttons in macOS 27 Golden Gate, Apple decided to simply place an ugly, semi-transparent macOS 15-ish background bar behind the buttons, which makes Liquid Glass completely useless in the toolbar.

João Pavão:

macOS 26 should have never been more than one developer seed release, with these changes taking place before the actual public release.

It’s sad that we had to endure this crap of a UI for a full year and now have to maintain apps for it for I don’t know how much longer.

Previously:

Golden Gate Menu Icons

Wesley Hilliard:

macOS Tahoe threw an icon on every menu item, making them impossible to distinguish at a glance. macOS Golden Gate has rectified that design taboo with blessedly iconless menus.

Apple:

In macOS 27.0, menu bar and context menus present a reduced set of menu item images, similar to the behavior prior to macOS 26.0. By default, NSMenu hides all menu item symbol images — non-symbol images remain visible. For menu items created from a xib file, NSMenu also observes the value of the “macOS 26.0 only” checkbox in the menu item inspector. If this checkbox is unchecked, the menu item image remains visible; if checked, it is hidden. These changes in menu item image visibility apply to applications linked on macOS 26.0 and later. Review the updated Human Interface Guidelines to determine which menu items in your app should still display images. Use the new preferredImageVisibility property on NSMenuItem to customize the image visibility for your menu items. As in macOS 26.0, NSMenu automatically provides default visible menu item images for certain common system-wide menu items, such as Settings, Share, and Print.

Joachim Kurtz:

„Icons in menus are now hidden by default“ and you can specifically enable them to draw attention to the most important actions.

Don’t get me wrong, this is a great change! But to take a full year and your lead designer leaving to figure out that this was a mistake… woof…

Dominik Wagner:

I like that Menu Icons now are hidden by default again on macOS - Quite a lot of concessions towards liquid glass being the wrong move last year. Takes courage to take so many steps back, literally. I’m appreciating that. Even if they present it as improvements rather than “undo” - that’s just what one has to do for marketing.

Previously:

Liquid Glass 27 Icons

Ryan Christoffel:

Last year with iOS 26, Apple redesigned its full lineup of app icons for iPhone. But just one year later, iOS 27 has even more design changes for many app icons.

[…]

iOS 27’s new app icons are “sharper and more detailed,” per Apple’s description. And it really shows.

Louie Mantia:

If you’re curious how much changed from 26 to 27 for app icon rendering with Icon Composer, here are a few examples of the difference (in this thread). First of the pair is 26, the second is 27.

Benjamin Mayo:

App icons also look significantly different now, but I think some of this is beta 1 bugs as the 27 rendering is very flat.

Andreas Storm:

All app icons are getting a Liquid Glass update

Louie Mantia:

The needless, barely-even-noticeable directional specular highlights based on the rotation of your phone on app icons are gone in iOS 27, and thank god for that.

Kuba Suder:

Ohhhh they made app icons sharper! That was one of the things that stood out to me, some were sooo blurry… my mom noticed it too on her new iPad.

Mario Guzmán:

I will say that icons render better in #macOS27 so some of these icons look super sharp, super glassy, super sophisticated. Almost like something you’d buy at the Swarovski store.

I mean, look at this icon! Look at it closely. Zoom in. Almost gives me Mac OS X Tiger detail vibes.

• • •

Thomas Brand:

All I wanted from WWDC was release from squircle jail.

Simon B. Støvring:

Just f***ng free macOS app icons from squircle jail already.

• • •

Icon Composer for Beginners Group Lab:

Join us online to ask questions, get advice, and follow the discussion about getting started with Icon Composer.

Previously:

Liquid Glass 27 Slider

Hartley Charlton:

Apple said it has heard user feedback, which it “deeply appreciates,” and is now making adjustments to the underlying foundations of how Liquid Glass is constructed. Chief among those changes is a new slider that lets users control transparency, ranging from fully opaque to completely clear.

Benjamin Mayo:

As well as offering this new degree of customization, Apple is also changing the default way the glass material is rendered, to improve contrast and provide an even more vibrant visual look.

It’s definitely improved. I’m not sure it’s better than pre–Liquid Glass, though. I’m reserving judgement until I use it more, but I’m skeptical of the slider being a good solution. Previously, even going “full” opaque with the Reduce Transparency accessibility setting didn’t make it look good. The slider doesn’t even go as far as that, and I’m not really sure what the point of providing the intermediate options is.

Gui Rambo:

I laughed out loud when that slider showed up in the keynote 😂

Chris Turner:

Can confirm that if you want to reduce the effects of Liquid Glass as much as possible, using Reduce Transparency in the Accessibility settings on iOS is still the way to go over the new slider that was introduced.

Kyle Howells:

A setting to tint or clear liquid glass?!? Adding UI sliders like this isn’t design.

Design is making a choice, weighing the options and picking the best option.

Michael Love:

I’m disappointed at the lack of deeper changes to Liquid Glass, they’re not really addressing the fundamental problem that this is an AI designed to look good superimposed over colorful feeds or photos or whatever and looks annoying and bland on top of plain text

Ryan Jones:

iOS 27 Liquid Glass is more “bubble” than glass to me. More sharp on the edges.

Steve Troughton-Smith:

Tell me that’s not Aqua

Riccardo Mori:

“We improved Liquid Glass by letting you reduce the effects until there’s no more Liquid Glass”

Well, that’s nice.

Steve Troughton-Smith:

The line weights on the new Liquid Glass button elements are so thin that it looks pretty bad when not at 100% scale…

Which it will almost never be on macOS, iPadOS, in the iOS Simulator, or in screenshots… 👀

Apple Knowledge Navigator:

Since the release of macOS 26 Tahoe, some users have defended the changes made by Apple - specifically, the implementation of Liquid Glass - as being a forward-thinking design was unproblematic, despite many clear and obvious objections that had sound reasoning. These were routinely dismissed as a “You’re holding it wrong” mentality.

[…]

Apple should never have released Tahoe in the state that it was, and I was pleasantly pleased to see that Golden Gate looks like a return to focus on quality and attention to detail.

Saagar Jha:

I think this is about how close we will get to “yeah we messed up Liquid Glass lmao”

David Kopec:

Apple very rarely admits mistakes. The fact that they’re rolling back some of the extremeness in Liquid Glass and actively mentioned in the keynote that they very seriously took user feedback, shows just how bad some of it was.

Yes, we need to be able to read text.

Craig Grannell:

Well, that’s the closest Apple is ever going to get to saying “We fucked this up and are rowing back.”

Joe Fabisevich:

Translation for this new Liquid Glass: We fucked up, our bad.

Hey, I’ll take it.

Steve Troughton-Smith:

Two conflicting things can be true at the same time:

  • I quite like how retro and Aqua ╳ iOS 6 the new version of Liquid Glass looks
  • I feel like the changes to Liquid Glass are a colossal rug-pull that invalidate much of the last 12 months of my development efforts across all my apps

Just as it’s more costly for users and developers when Apple rushes to ship features before ironing out the bugs, massive design changes like iOS 7 and Liquid Glass, released without adequate testing and refinement, waste developer time and burden users with poor design while they wait for Apple to figure out what it actually wants to do.

CM Harrington:

There’s a chunk of my developer timeline that is very confused that the face-eating leopards are eating their face.

My dudes (all dudes): Apple always tells you to jump. You always jumped. It’s just now you’re realising the giant corporation that will always operate in their best interest is not actually aligned with you. You conformed to it.

…but you’ll keep doing it.

Steve Troughton-Smith:

If you want to support macOS Sequoia, you’re now going to have to support three different UI styles. If you want to skip the macOS 26 version of Liquid Glass, you’re going to have to drop support for users on Intel Macs. It’s a no-win situation.

Previously:

Glow Leopard

Tim Hardwick:

Apple at WWDC 2026 today said it has made several responsiveness improvements across its software ecosystem, speeding up system animations, app launching, and much more.

Zac Hall:

Overall, iOS 27 so far is a major collection of performance improvements and refinements.

Ryan Christoffel:

As had been rumored leading up to today, Apple has spent extra time this year working on bug fixes and performance improvements for iOS 27.

Adam Engst:

Although there’s no obvious connection between the Tahoe and Golden Gate names to indicate a “tock” release, Apple devoted the first chunk of the WWDC keynote to how OS 27 will address user and developer complaints about OS 26.

[…]

Apple also made a big deal about performance improvements, smoothing system animations, launching iPhone and iPad apps up to 30% faster, displaying new photos in the Photo Library up to 70% faster, transferring files via AirDrop up to 80% faster, and moving files from an iPad to an external drive is up to 5x faster, so it compares with macOS transfer speeds. A new CPU Scheduler promises to improve iPhone performance even on older models back to the iPhone 11, which may encourage more people with older iPhones to upgrade.

Kyle Howells:

There really aren’t many changes this year.

I’m way more interested in bug fixes, but optimizations and refinements are great, too. Simply limiting the number of new features creates space to improve the software quality, though, it’s not clear to me whether there are really fewer new features or if it’s just that they mostly fall under the single heading of AI.

Paul Hudson:

Animations run smoother, apps launch faster, and Liquid Glass is better? It’s Glow Leopard for sure!

Divya Ravi:

One underrated theme from this WWDC is Apple investing heavily in fundamentals.

Faster launches, scheduler improvements, search infrastructure, networking transitions, rendering performance…

Users notice responsiveness long before they notice most new features.

Clarko:

You gotta admire Apple’s ability to market “bug fixes and performance improvements” so effectively.

Please just do this every other year.

Previously:

Xcode 27 Announced

Platforms State of the Union:

Discover the newest advancements on Apple platforms.

What’s new in Xcode 27:

Discover the latest productivity enhancements in Xcode 27. Accelerate your development workflow through customization, coding agents, and Device Hub. Explore updates in localization, performance, and testing tools to refine your apps further.

Xcode 27 Beta Release Notes:

Xcode 27 beta includes Swift 6.4 and SDKs for iOS 27, iPadOS 27, tvOS 27, macOS 27, and visionOS 27. Xcode 27 beta supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS. Xcode 27 beta requires a Mac running macOS Tahoe 26.4 or later.

The big news is that they’re dropping support for deploying apps on macOS 10.13 through 10.15. The minimum you can target is now Big Sur (or Monterey for Apple Silicon Macs). Also, even though Xcode 27 runs on Tahoe, it doesn’t run on Intel Macs.

Google Gemini is now available in the coding assistant.

Planning with agents is now first class in Xcode. Plans appear as editable Markdown artifacts next to the conversation.

[…]

The Xcode MCP server has been updated with new tools that allow agents to debug projects by manipulating the active run state, interacting with and reading the contents of the debugger console; listing and switching between available schemes and run destinations and inspecting and modifying build settings, compiler flags, entitlements, and Info.plist keys.

[…]

xctrace record allows you to pass recording options for Instruments from within the CLI.

[…]

Enabled by default, toolchain allows compiling IB documents without the need to download a simulator, which is especially useful for build servers.

Apple:

Apple today introduced new intelligence capabilities, expanded productivity features in Xcode, and platform improvements that make apps faster, more adaptive, and easier to build.

Xcode, agents, and you:

Learn how you can use coding agents in Xcode in your development process. We’ll explore multiple ways of working with agents with tips to take you from creating an initial prototype to polishing a refined app. Discover how Xcode’s coding assistant adapts to help you stay engaged with the creative work that makes coding fun, whether you’re building an app solo or working with a team.

Translate your app using agents in Xcode:

Find out how Xcode and coding agents help you translate String Catalogs using the context of your app. We’ll walk through strategies for reviewing translated output and iterating on your localizations, so you can deliver a tailored experience to people around the world.

Create UI prototypes using agents in Xcode:

Learn how to prototype your app using agents in Xcode. Explore techniques for using AI to prototype interactions, iterate on layouts, and generate creative solutions to design challenges. You’ll learn how to evaluate ideas critically and refine them into polished, people-centered experiences for your app.

Build, deliver, and automate with Xcode Cloud:

Discover the latest updates to Xcode Cloud that quickly get you started building and delivering your apps. Learn essential Xcode Cloud concepts, set up cloud build and tests simply by connecting your source repository, and configure for app distribution when you’re ready to ship. Find out how webhooks and management tools extends Xcode Cloud’s capabilities, supporting your most advanced workflows.

Xcode Tips and Tricks 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 getting the most out of Xcode.

• • •

Matt Gallagher:

In Xcode 27, new projects are created in a temporary location. You can type Command-Shift-N, hit return and you’re immediately in a scratch SwiftUI app.

You’re prompted to pick a save location on close (more like a regular document app).

Joachim Kurz:

Xcode 27 brings you one-click new project creation *

*because we neglected the Xcode project templates for a whole decade. And honestly no one who is still in the team knows how to write one anymore. Many of the new target types didn’t even have a proper project template anymore. Also, do you know how much work it is, to update the CoreData template code every year? We tended to forget about them… So we deleted all that. Have fun setting up the basics of a CoreData-document based app from scratch. You‘ll figure it out, we trust you! It‘ll be fun and you’ll learn so much!

Mario Guzmán:

Xcode 27 also got a standard-height toolbar.

Matt Gallagher:

you can customise the toolbar. Like it’s a regular Mac app.

Alex Rosenberg:

This window is a perfect example of slop UI that shouldn’t have been shown. Terrible metrics, some kind of oddball non-Mac close box, Back instead of Cancel, etc.

Keith Smiley:

Xcode settings in iCloud?

• • •

Steve Troughton-Smith:

Xcode 27 is devastating for minimum OS deployment targets. A lot of third party software is going to be forced into dropping older OSes

Saagar Jha:

Ugh swiftc hard crashes on my (tiny) apps things are not looking good for this Xcode

• • •

Khoa Pham:

Xcode 27 ships with a set of agent skills that capture Apple’s own guidance for writing modern Swift and SwiftUI code. These skills cover things like adopting the newest SwiftUI APIs, modernizing UIKit apps, and auditing security settings.

They are designed to be consumed by coding agents, but they are just as useful when you want to read Apple’s recommendations directly or feed them into your own tooling. The good news is you can export all of them to a folder with a single command.

Previously:

macOS Golden Gate 27 Announced

Joe Rossignol:

Much like Mac OS X Snow Leopard in 2009, Apple said it focused on improving macOS’s performance and dozens of underlying technologies this year.

Apple says macOS Golden Gate offers quicker AirDrop transfers, faster network file browsing, improved syncing in the Messages app, better Spotlight search suggestions, and other changes that make your Mac feel “more responsive than ever.”

I had lots of problems installing beta 1 via Software Update, so I recommend downloading the full installer or IPSW. I eventually got it to work by updating to macOS 26.5.1 first (instead of installing on top of 26.4) and by booting into recovery multiple times to use Startup Security Utility to toggle the LocalPolicy from Full Security to Reduced Security and back.

macOS Golden Gate 27 Beta Release Notes:

The Recents list in the open and save panels can be accessed with the keyboard shortcut cmd-shift-f.

[…]

Unified Logging System archives generated on 27.0 releases cannot be read on macOS 26.1 or earlier due to an updated archive format.

[…]

Encrypted HFS+ (CoreStorage) is deprecated and will not be supported in a future version of macOS.

[…]

Starting in 27.0 operating systems, select system processes now enforce stricter network security (TLS) requirements. These new requirements might cause connections to fail if the server does not meet them.

[…]

Devices configured with Reduced Security mode might fail to install macOS 27 beta 1.

[…]

Accessing files in other developer teams’ app data containers and app group containers no longer prompts the user for authorization; such accesses are denied by default and can be managed by the user in Privacy & Security settings.

[…]

Apps can no longer access the local TCC database directly.

Marcus Mendes:

Visual Intelligence on macOS Golden Gate 27 is getting a dedicated keyboard shortcut. Similar to the screen capture shortcut, it lets users select portions of the screen and get contextual answers around that. From there, users can also continue the interaction from the Siri app.

Mr. Macintosh:

When using a wired network adapter with a live connection, macOS now displays a network menu bar item!

Jeff Johnson:

I love this “More in Accessibility Settings…”

Hartley Charlton:

Apple adds native ultrawide display support in macOS 27 Golden Gate, bringing higher resolutions and persistent display arrangements to users of widescreen monitors.

Hartley Charlton:

macOS 27 Golden Gate brings a major improvement to iPhone Mirroring, allowing users to resize the window beyond the iPhone’s fixed aspect ratio for the first time.

Marcus Mendes:

Currently, there seem to be several fixed aspect ratios available for resizing the iPhone Mirroring window, meaning the system adjusts the window to the nearest supported shape rather than allowing users to choose any arbitrary aspect ratio.

Louie Mantia:

iPhone Mirroring app has many, many more zoom level options now, which I very much appreciate. Thank you, whoever did that.

See also:

Previously:

iOS 27 Announced

Zac Hall:

  • Photos: iCloud Shared Albums now supports sharing with Android and Windows.
  • Health: Cycle tracking is more advanced.
  • AirPods: Custom EQ is coming to Apple’s wireless headphones.
  • Apple Maps is adding an upgraded Flyover feature with richer aerial imagery.

Joe Rossignol:

Apple said the CarPlay video feature is available in new vehicles that support it. When playing a video in an iPhone app that supports AirPlay video streaming, users can select the car’s display from the AirPlay menu on iOS and watch the video on a compatible vehicle’s screen.

New in iOS 27, Apple is allowing developers to create CarPlay apps with video browsing capabilities, so you can find videos to watch right on CarPlay.

Tim Hardwick:

When AirPods owners connect to their iPhone running iOS 27, they’ll see a completely revamped settings menu for their earbuds that does a better job at organizing all of the feature options that Apple has added over the last few years.

Tim Hardwick:

Apple’s first iOS 27 developer beta, released on Monday, includes a new feature in the Find My app that lets you temporarily hide your location from select people.

See also:

Previously:

iPadOS 26 Announced

Ryan Christoffel:

Here’s what’s new in iPadOS 27:

  • The Menu Bar can now be optionally kept always on screen
  • iPhone apps can be resized in iPadOS
  • Liquid Glass has been refined and is more customizable than ever
  • Performance improvements make iPadOS 27 perform much quicker
  • Screen Time has been revamped for managing your child’s device use
  • Brand new Siri with dedicated Siri app
  • Overhauled search experience with upgraded intelligence
  • Active app name now displays in status bar
  • Photos improvements like slideshow customization, Shared Albums across Android and Windows, upgraded Clean Up, more
  • Safari can organize tabs into topics

Hartley Charlton:

iPadOS 27 raises the floor to A14, M1, or later, cutting the 3rd generation iPad Air model from the compatibility list entirely.

[…]

The iPad Pro also sees cuts. […] iPadOS 27 raises those floors to the 4th generation 12.9-inch and the 2nd generation 11-inch, dropping two older Pro models that were still supported just a year ago.

See also: iOS & iPadOS 27 Beta Release Notes.

Previously:

watchOS 27 Announced

Hartley Charlton:

Apple today unveiled watchOS 27, featuring a redesigned dynamic app grid, new gesture controls, and a raft of usability and battery improvements.

The new dynamic app grid surfaces and rearranges five apps based on context and usage. Users can simply tap the bottom center icon to go to the rest of their apps.

[…]

Users can now create custom passes for any membership or card that uses a QR code or barcode, such as a library card, using their iPhone and access it directly from the Apple Watch’s Wallet app or pin it to the Smart Stack.

Hartley Charlton (Marcus Mendes):

Apple today confirmed that watchOS 27 will not support the Apple Watch Series 8, Apple Watch Ultra (first generation), or Apple Watch SE (second generation), effectively drawing a line at devices equipped with the S9 or S10 chip.

Apple had initially announced that Series 9 would be dropped, too.

Zac Hall:

Here are new features coming in watchOS 27 for Apple Watch

Hartley Charlton:

watchOS 27 contains a series of enhancements to fitness and sleep tracking, including new Workout Buddy insights, improved indoor run tracking, and more.

Hartley Charlton:

Apple yesterday announced a redesigned Find My app in watchOS 27 that brings all tracking functionality into a single, map-centric interface.

Previously split across separate Find Devices, Find People, and Find Items apps, the new app now consolidates everything into one unified view.

See also:

Previously:

tvOS 27 Announced

Joe Rossignol:

Apple barely touched on tvOS 27 during its WWDC 2026 keynote today, but the update exists, and it adds some new features to the Apple TV.

Benjamin Mayo:

One major new feature for tvOS this year is an updated Podcasts app, as well as a new smart downloads feature, performance enhancements including faster app launch and Control Center loading, larger text size options for accessibility, and more.

Ryan Christoffel:

Apple TV HD and the first-gen Apple TV 4K are not supported by tvOS 27.

See also: tvOS 27 Beta Release Notes.

Previously:

visionOS 27 Announced

Ryan Christoffel:

Here’s what’s new in visionOS 27:

  • Turn panoramas you shoot into spatial scenes
  • Use panoramas as your immersive Environment
  • Enhanced Flyover features in Apple Maps
  • Next-generation of Apple Intelligence
  • Entirely new Siri that’s more responsive to your needs
  • “New windows with curvature”
  • Visual intelligence, so you can ask Siri about anything you’re looking at
  • Expand notifications with your eyes
  • Redesigned Control Center

Tim Hardwick:

Apple made the visionOS 27 beta available to Vision Pro developers after Monday’s WWDC 2026 keynote, and in this version there is a new Environment that allows you to immerse yourself in the Icelandic highlands.

[…]

There were only a handful of passing references to visionOS 27 during Apple’s keynote, but the Vision Pro software is set to benefit from the same Siri AI features that are coming to iOS 27, iPadOS 27, and macOS 27 Golden Gate.

See also: visionOS 27 Beta Release Notes.

Previously:

Monday, June 8, 2026

WWDC 2026 Keynote

Joe Rossignol:

Ahead of the WWDC 2026 keynote at 10 a.m. Pacific Time today, Apple CEO Tim Cook has shared a short video in which country singer Lainey Wilson, actress Rhea Seehorn, DJ and producer Zedd, and other celebrities say “good morning” in various ways.

Apple (YouTube, MacRumors, 9To5Mac, Macworld, AppleInsider, Hacker News, The Verge, Wired, Lobsters):

All systems glow for WWDC26.

Previously:

Update (2026-06-09): Dan Moren:

During its discussion of platform improvements, Apple zoomed out on a small-text screen of many of the changes coming in its platforms this year—and there are a lot of them. Good news, now you can read at your own convenience—still in very small text.

Jonathan Reed:

Luckily, we managed to capture it and have the full list for you to peruse, grouped appropriately.

Adam Engst:

Apple is not a company that admits weakness or mistakes in public, but the WWDC 2026 keynote made clear just how much external pressure Apple is under right now. Although a few of the announced features undoubtedly bubbled up internally, the three-part structure of the 75-minute-long keynote was clearly reactive. Apple focused on user and developer complaints, parental concerns about technology abuse, and the embarrassment surrounding Apple Intelligence and the “more personalized” Siri it had promised two years earlier. This was not the keynote of a company setting the direction of the industry.

Juli Clover:

It took Apple an hour and a half to walk through the major new features in the updates, but we have a quicker 10 minute recap for those who want the highlights.

Previously:

Friday, June 5, 2026

Sirius Pomodoro

Zac Hall:

The third most popular free iPhone app in the U.S. App Store today is a mysterious productivity app that’s only available in Russian. That’s a pretty obvious red flag that something isn’t quite what it seems.

[…]

The app icon looks similar to a star mapping app. The app itself isn’t available in English. It seems unlikely that this productivity app organically found its way to the third-place ranking for its advertised purpose.

[…]

The reality seems to be that the app is a Russian banking app disguised as a Pomodoro timer. Activity on Telegram this week points to the app actually being a client for Russian financial institution VTB Bank.

Nick Heer:

In Russian media, the developer says there are other apps lined up to take the place of this one after it is inevitably removed.

Previously:

CloudKit Bugs in May 2026

Jaanus Kase (Mastodon):

We deployed direct silent CloudKit notifications in Tact in late 2024. They proved to be too unreliable to use in a messaging app like Tact: notifications arrived late or not at all. To be fair, this is within the bounds of the Apple SDK contract, which does say that the delivery of silent notifications is on a best-effort basis, and you can expect a lower service level than with visible notifications.

Since Tact is a messaging app where users do expect to be notified of new messages reasonably fast, Tact in May 2026 switched to visible notifications delivered from CloudKit. Those do work reliably and fast, but the user experience is not as fast as it could be. CloudKit has several bugs in this area, and the bugs compound.

So this is simply an inventory of open bugs filed to Apple around the area of CloudKit, notifications, and the related developer experience, as of May 2026.

Previously:

Permissions in the CloudKit Public Database

Guilherme Rambo:

When using the public database for content hosting or feature flags, you don’t want any random iCloud user to have the rights to publish or edit content on your behalf or to change the feature flags that control your app’s behavior for all of your users, that would be really bad.

That’s where CloudKit’s security roles come in. You can think of them as Unix access control groups for record types. They allow you to restrict the types of operations that users belonging to a given group (security role) can perform on any given record type, and you can then assign security roles to specific users.

[…]

The creator role means “the user who has created this record”. So it’s possible to allow any authenticated user to create a record of a given type in the public database, but not read or write to any record other than the ones that they have created themselves.

[…]

But the most interesting thing about security roles for content hosting and similar applications is that we can define our own security roles and assign them to specific users.

Simon B. Støvring:

So can we actually use CloudKit’s public database to store user-specific and/or sensitive data without it being widely available? So it’s more like a traditional database an app can build functionality on?

Can anyone confirm this?

If that’s the case, I’ve totally misunderstood the public database for years. I have always considered it suitable only for sample data and other data meant to be broadly accessible without auth.

Moritz Sternemann:

yep correct! That’s the conclusion I also came to when working more with CloudKit a while ago. You can definitely have data in the public database that’s only readable by the user who created it.

Jaanus Kase:

The main distinction for me is, who owns the data

Private db: user owns data, I as developer literally have no way to access it. Also it’s counted towards the user’s iCloud storage quota

Public db: I as developer own the data, and my app has storage quota not tied to any user

Thursday, June 4, 2026

WWDC 2026 Preview

Joe Rossignol:

Apple’s annual developers conference WWDC returns for 2026 next week, and the company has teased the event with a new “All systems glow” tagline.

Clarko:

“We’re keeping Liquid Glass, you weiners”

Joe Rossignol:

Apple has shared a wallpaper, playlist, and a “Get Ready” video ahead of the event.

Basic Apple Guy:

I’ve been Sherlocked.

Jason Snell:

I’ve been attending Apple’s WWDC since sometime in the 90s, which is… a long time. But this year’s event promises to be one of the most interesting ones yet, mostly because Apple really stepped in it in 2024, promising a bunch of features it didn’t deliver. Last year was a bit of an apology tour, but it didn’t directly address what had been promised the previous year.

Which means that Apple has really piled two years of promises on the agenda of WWDC 2026. The stakes couldn’t be higher. Here’s what I’ll be watching for at this year’s event, especially when it comes to its AI do-over.

Dave Mark:

For me, 2 big questions for WWDC:

Will there be enough actual, proper working Siri/AI features to keep people from migrating to other platforms?

And will there be enough AI privacy gains to pull people from other platforms?

John Gruber:

The annual live audience episode of The Talk Show during the week of WWDC.

Jordan Morgan:

The 12th annual Swiftjective-C pregame quiz is here!

Brendan Shanks:

Has Apple eliminated one-on-one labs with engineers this year at WWDC?

Adrian Schönig:

That was the best part. What a bummer.

Juli Clover:

Apple has announced the winners of its annual Apple Design Awards.

Apple’s page doesn’t have a permalink.

Jason Snell:

These days, I’m getting emails pitching me for an endless stream of new Mac apps. It’s quite remarkable because there was a period five or ten years ago when it seemed like all app development on Apple’s platforms was focused on iOS. Even more interesting, these are all indie Mac apps that seem to be built using native Mac frameworks, not the product of big corporations that are just rolling their cross-platform development system out everywhere. These apps seem to have a point of view and are focused on the Mac.

Of course, it’s happening because of AI.

[…]

And, yes, a couple of weeks ago, I made a Mac app of my own [Double Ender], using Claude Code. I can’t say that I wrote it, because I didn’t write a line of Swift code. It would be more accurate to say that I envisioned it, or produced it, or product-managed it. I knew what I wanted, described it in detail to an AI assistant, iterated a whole lot, and ultimately got something that basically does everything I imagined it would do.

[…]

The Xcode learning curve is just too high. Either there needs to be a novice mode for Xcode, or Swift Playground needs to be given a boost, or a new tool needs to be built for the task.

D. Griffin Jones:

It is time for us on the Cult of Mac podcast to lay out our predictions for Apple’s WWDC26 Keynote.

Simon B. Støvring:

In just a few days, Apple will kick off WWDC with their keynote and introduce Vaporized Glass, a design language centered around hiding UI. You can’t complain about illegible controls if users can’t find them in the first place.

Previously:

Update (2026-06-05): Basic Apple Guy:

It’s nearly time for WWDC26, which means it’s time to make my annual bingo board of predictions, prognostications, and presentation ponderings ahead of this year’s keynote.

Jesper:

The two biggest issues facing Apple right now:

  • A software operation in shambles. The macOS desktop has forgotten what it is, cosplaying as a mismash of borrowed attributes from other OSes, that look the way they do because they serve different form factors and different needs. And software quality has gone down the tubes.

  • Borderline open warfare between its own desire for control (and possibly money, through the proxy of “maintained margins”) and the needs of its developers.

Update (2026-06-08): Juli Clover:

We’ll see how Apple is going to compete with OpenAI, Anthropic, and Google in the months to come with an AI version of Siri and new AI features for its apps.

M.G. Siegler:

Step one starts today. Or rather, step two that’s a do-over of step one. A mulligan.

John Gruber (Mastodon):

Apple is making an enormous bet on AI — but their bet is that they don’t need to spend hundreds of billions per year on AI infrastructure (most of it fattening Nvidia’s bottom line) to reap the benefits. If Apple’s right we should start seeing it come together tomorrow.

Helge Heß:

The software tech releases in the past WWDC’s have turned out to be rather bad. One after another, a constant stream of not cool. So I’m not entirely sure what they could announce that would make me interested. Admit that Swift or Concurrency was a mistake? Unlikely.

John Gruber (Mastodon, 2):

There’s something really wrong with SwiftUI. Amongst the apps I use, the best example is Apple Journal. Basic stuff that’s worked reliably for decades — some things that heretofore had worked forever — are dangerously broken. If you’re running MacOS 26 Tahoe, open Journal and make a new dummy entry. Type something like “The quick brown fox.” Then double-click on the word “brown” and delete it. Now invoke Undo.

[…]

I actually use the Journal app and I’ve lost entire sentences of text to this incompetent implementation of Undo. Editing text in Journal is dangerous because SwiftUI is so bad at something as fundamental as text editing.

[…]

So while the world is largely focused on Apple’s AI-related announcements at WWDC tomorrow, I’ve got SwiftUI (on all platforms) and Mac-assed Mac development high on my list. Apple’s developer message used to be that it was not just easy to develop apps for their platforms, but that it was easy to develop good idiomatically native apps. You got the correct complex behavior — for things like Undo/Redo — out of the box. That’s still true for AppKit and UIKit, but it’s never been true for SwiftUI, and SwiftUI is now seven years old. That’s too long for any excuses to hold water.

Der Teilweise:

At todays Apple’s WWDC, when they talk about SwiftUI, pretend it is 2021.

While most of the improvements will be yawning for a seven year old framework, they will be great for a two year old framework.

Jesper:

WWDC used to be something to look forward to. Fun features, new frameworks, expanded horizons.

For the past ten years or so, it’s been a mix of dread and hope. I hope they don’t screw things up even more. I hope they don’t lock down even more.

[…]

And, if you insist on particulars that illustrate the problem, think back to when sessions used to present the Apple thinking of only very slowly and deliberately building on what was there, because they knew it would have to last forever, and contrast it with the buffet of half-cocked answers to reactive dataflow or asynchronous programming.

[…]

Plan for the future, rather than just jumping from lily pad to lily pad on a sprint or annual schedule, hoping the next jump will finally do what the previous jumps didn’t.

Sarah Reichelt:

I am genuinely distressed that we are up to the eve of WWDC 26 and all the versions of OS26 still behave like betas. Everyday I struggle with regressions, stupid usability bugs, HIG violations and sheer unreadability.

Steve Troughton-Smith:

My expectations are low, this WWDC: all I want is a WWDC that re-energizes me, and gets me back in the mood to work on all the stuff I want to work on.

Tim Hardwick:

Just hours away from WWDC’s opening keynote, some developers have been sharing the contents of their conference swag bags on social media.

[…]

There are four pins in the bag, including the Apple skull and crossbones, an Apple 50 pin, Clarius the Dogcow, and Little Finder Guy – the tiny anthropomorphized version of the Mac Finder icon that went viral after appearing in Apple’s recent online marketing campaign for the MacBook Neo.

Previously:

Update (2026-06-09): Marcin Wichary:

I couldn’t believe it, but I reproduced [the Journal undo bug] myself just now on my phone (my backup Tahoe-running Mac is in a closet not responding to pings, I am now assuming out of embarrassment)

Xogot for Mac Beta

Miguel de Icaza and Joseph Hill (tweet):

Xogot was born as a native user interface shell on top of the Godot game engine for iPad devices, and later iPhone devices.

[…]

Because Xogot’s user interface was written in SwiftUI, and because we had already committed to Apple’s design system, bringing Xogot to macOS felt like a natural next step. That does not mean it was automatic. We still had to adapt many parts of the interface, study modern Mac applications, and rethink details so Xogot would feel true to the platform and the modern idioms on the Mac.

[…]

Our goal is for Xogot to feel like a professional creative environment for game developers: a tool for building games with Godot that can sit comfortably alongside the apps in Apple’s Creative Studio, like Final Cut Pro, Logic Pro, Motion, and MainStage, as well as the other first-class creative and development tools Mac users rely on.

[…]

Our goal is to make running your game on an Apple target feel as simple as choosing the target you care about and pressing play. Want to share your game with friends on a Mac? You should be able to package it up without needing a PhD in certificates, signing identities, and provisioning profiles. Want to test on an iPhone? Xogot will handle the packaging, signing, deployment, and device connection details so you can get your project running and start debugging without fighting the toolchain.

Via Jamie Birch:

This is the most complex (yet well crafted) native Mac app I’ve seen in years. They say it’s SwiftUI, but didn’t clarify whether it’s targeting UIKit for Mac or AppKit – but either way, it’s amazing to see a team build an app on the scale of Xcode from scratch these days.

Previously:

Where Did SwiftUI Leave You Hanging?

Keren R. Bell:

This is a call to join the topic-of-the-month for the Swift Blog Carnival!

[…]

What do you LOVE about SwiftUI? What boggles your mind about it?

David Bureš:

.sheet is STILL not animatable (a feature since the first OSX release)

[…]

Toolbar item placement is completely broken.

[…]

.searchable is a complete mess that shouldn’t be a thing at all

[…]

Due to a conflict between List’s aggressive view destruction on scroll, and the way .task works, the millisecond a view that calls an API to load and parse a short string disappears, that already parsed string gets de-assigned. Once that particular list item appears again, it has to perform the extremely expensive API call and parsing again. Instead of just saving a 10-character string to memory. […] This leads to funny bugs, such as scrolling too fast through a list that’s made up of only text making the whole Mac freeze up and crash

Patrick McConnell:

SwiftUI is just too incomplete, inflexible and inextensible. It’s also great and that’s what makes this so frustrating.

[…]

Developers used to get Sherlocked when Apple would copy a third party apps features into the OS or packed apps. Now we get road blocked where only Apple can make use of a feature leaving us on the outside left trying to explain to users why Apples app has feature X,Y and Z and we don’t.

[…]

In a framework built on containers and modifiers just don’t go too deep into those containers or things may just break. Often this means your UI simply stops rendering on the screen. You may think you’re not doing anything wrong and then boom your code just doesn’t work.

[…]

Over the years we’ve all seen frameworks offering to create apps with no code or allowing you to write in your favorite language and run on all platforms. There were demos showing it working. None of those ever seem to pan out. They always come up short or perhaps they allow you to shoehorn in some native code to do something the framework authors don’t provide. If this sounds familiar this is what Apple is offering with SwiftUI. Looks impressive in canned demos, often falls short but you can just drop back to your old coding ways to fill in the blanks. I’ve always viewed this as a bunch of incomplete hacks. Now this is Apple standard practice.

[…]

I want SwiftUI to be so much more than it is currently. I want to make real Mac apps with it. I don’t want an iPad app in a Mac wrapper.

Mark Szymczyk:

I encountered the following limitations with SwiftUI:

  • Limited rich text editing experience.
  • The file exporter returns a folder URL when exporting to PDF.
  • SwiftUI lets you save documents in unwanted export file formats in Mac apps.

Nathan Manceaux-Panot:

Despite this simplicity, the first implementation of that list was shockingly badly-behaved. It was:

  1. Extremely slow (scrolling would cause multi-second freezes!)
  2. Visually broken in multiple ways (you’ll see)

[…]

This was honestly very entertaining code to write! I think it’s especially fascinating how it’s essentially imperative code, expressed through declarative modifiers. It’s an absolute mess to read, because on top of that mismatch between behavior and expression, respecting view tree constraints forced an unnatural order for everything. Glorious, and dismal.

[…]

And at the same time, it’s a maddening amount of work for such a basic user interface.

Sarah Reichelt:

Recently, I have seen multiple posts on Mastodon suggesting that SwiftUI is a failure, that nobody is using it, and that Apple should have focused on improving or replacing AppKit and UIKit instead of wasting everyone's time with SwiftUI. While I have great respect for some of the people saying these things, I disagree. I love using SwiftUI, I think a large number of developers are using it, and I want to explain what I find so great about it.

[…]

The reactive aspect of SwiftUI feels like magic! It allows me to have something like a stored setting with a default value, connected to a menu item with a checkmark, a toggle in a settings window, a button in the toolbar, and a switch on the main interface. SwiftUI keeps these all in sync without any effort on my part.

[…]

The AI proponents argue that if AI is writing all this verbose code, then there is no need for the more concise SwiftUI. While I have started using AI to write some code, I still review every line and the more the AI writes, the harder this becomes and the more likely it is that there will be un-detected bugs.

[…]

I don't want to imply that I think SwiftUI is perfect. I have struggled with various aspects of it, and I have had to find workarounds for some things that I want to do. Partly, this is due to the buggy nature of Apple software at the moment, but as someone who primarily works with Mac apps, I am feeling the pain of the lack of attention to the Mac. Again, this is not a SwiftUI problem, but a general Apple problem.

Ziga Dolar:

After shipping three small apps with SwiftUI (and actively working on the fourth), I’ve come to a simple conclusion: SwiftUI is great for narrowly scoped small apps.

[…]

Getting from zero to a working app that doesn’t look like a mess was incredibly fast - which helped with staying motivated. For me at least, being able to see interactive progress is part of what drove me to build apps, and SwiftUI makes that feedback loop a lot quicker (and since I struggle with staying motivated, that’s a big win).

[…]

Handling routing in SwiftUI is easier with a router and an enum of all main navigation destinations, that can easily be navigated to from anywhere.

And if you add a new screen or flow without handling it, the code won’t compile, so the compiler makes sure that nothing gets missed.

[…]

SwiftUI didn’t make me a better developer or remove complexity from app development. But it removed enough friction that I started shipping ideas again.

Keren R. Bell:

I still maintain my personal opinion which is, it’s ok that there’s some expectation to dip back to UIKit / AppKit, but yeah, Apple needs to stop shouting “SwiftUI all the way!” at us when it can really only do anywhere from 40%-70% of the way.

[…]

We love SwiftUI. It’s awesome, fast and simple. The allure of highly legible, nearly-natural-language interface writing is strong. But we don’t have to let our love and hopes for SwiftUI limit us: It’s one tool in a big box. It’s ok to use the ol’ WKWebView here and there.

Max Seelemann (Mastodon):

SwiftUI shipped in 2019, seven years ago. At WWDC 2022, Apple put up this infamous claim during the State of the Union[…] Here we are in 2026, right before another WWDC, four years and four major release cycles after that claim. How well does it hold today? In my opinion, we’re not even close. Modern SwiftUI can do a lot. But it’s still riddled with inexplicable bugs and weird limitations that prevent developers from building truly great experiences. Or at least, experiences that match system behavior.

[…]

Example 1: On iOS, SwiftUI can’t autofocus a text field in an appearing sheet to bring up the keyboard in the same animation.

[…]

Example 2: On macOS, drag & drop is essentially impossible to get right. Seven years in, we’re on the third major iteration of drag & drop in SwiftUI. […] Yet you still can’t have it all at once: reorder inside and drag out of the same view, plus drop validation when items may not be accepted, plus defining which drop operation (copy / move / link) a destination would cause. Let’s not dare to think of allowing Option to toggle between “move” and “copy”.

[…]

I believe Apple should tap into this invaluable resource of skilled developers with affection for its platforms and open-source SwiftUI. Sounds crazy. But is it? Swift has been open-source for years now, to great success. Let’s explore the thought, shall we?

Colin Cornaby:

This is not the only call for open source SwiftUI I’ve seen so I’m not trying to pick on it.

But my understanding is that SwiftUI cannot become open source. It touches too many private APIs. Even on platforms like macOS it’s no longer really a wrapper for AppKit, and it’s reaching deeper and deeper into private frameworks.

Previously:

Update (2026-06-09): Dominik Wagner:

However, the whole notion of SwiftUI always was flawed towards that direction. From day one I have never seen any SwiftUI based App that felt Mac-assed. It just emphasized the wrong tenets from day one. Consistent user delight and platform experience have been on the backseat since almost a decade now sadly.

Wednesday, June 3, 2026

WWDC 2026 Wish Lists

Daniel Andrews:

If that’s true, here’s what I’m hoping for: fix Liquid Glass on the Mac where it’s genuinely bad. Not a cosmetic tweak, a real rethink of the parts that trade usability for novelty. Bring back some intentionality to the design. Focus on human interaction, stability and speed as primary goals, not footnotes in the release notes. Do small, meaningful things for developers. It’s just one cycle so my hopes are pretty low. But just directional progress and iteration.

Brian Webster:

It’s insane that there’s no way to programmatically create/modify a shortcut. I’m really hoping this gets fixed at WWDC this year. 🤞

[…]

I wish for a headless, agent-first Xcode Server in the menu bar — exposing every UI-only operation as MCP (including the .xcodeproj-mutating ones), queueing builds across projects, and running nightly maintenance on sims and derived data.

Cihat Gündüz:

Here are five things I most want them to ship — the gaps slowing me down most in the era of agentic engineering.

Jordan Morgan:

Consider this — each dub dub session which presents a new API comes packaged with a skill.

[…]

Depending on who you ask, MCPs are amazing or terrible token wasters on their way out. Regardless, I’d love a direct, official line to Apple’s docs.

Krishna Sadasivam:

Apple made no secret that it will be dropping Intel support with macOS 27. Does this bode well for a “Snow Leopard” type release? I really hope so. Renewed focus on software quality would be a strong overture to developers and users alike. Fix bugs and improve performance!

My wishes from last year still stand. I’m not holding my breath for a better designed Systems Setting panel. I also think that Liquid Glass is here to stay, despite the backlash it’s received. I’m hoping Apple will include more options for users to customize the color for both the windows and the Dock.

While I am excited about potential software quality improvements, I remain ambivalent about Apple’s AI push. I see some beneficial value in AI, but I don’t want it to be rammed down my throat.

Steve Troughton-Smith:

I wouldn’t mind some qualitymaxxing at WWDC.

Antoine Van Der Lee:

While I already mentioned an MCP example and we already have an Xcode MCP and CLIs, I just wish for Apple to continue supporting agentic development.

[…]

Similarly, I think they can further open up developer tooling. Apps like Icon Composer and Xcode Instruments don’t work well with agents today and can be further optimized for integrations. Updating App Store Metadata, archiving, and publishing a new release: to automate these, we still have to do a lot of work ourselves. Yes, there’s Xcode Cloud, but I believe this process can be optimized even further with agents.

Majid Jabrayilov:

We already have on-device image generation using the ImagePlayground framework. Why not have image analysis as part of Foundation Models? I think it is the most expected feature along with increased context size.

[…]

Layout protocol is great and allows us to build super custom layouts from flow layout to hexagonal layout. One thing it is really missing at the moment is the option to make it lazy, like LazyVStack or LazyHStack.

[…]

Another important feature I expect almost for three years is the recycling view in SwiftUI. At the moment, all views are displayed eagerly or lazily, but there is no reusing mechanism like in UITableView or UICollectionView.

Joel Breckinridge Bassett:

As outlined years ago, the history of Apple’s text layout architectures has been very convoluted and without any long term vision for some time now. When I ran across Artem Loenko’s post, ‘Native all the way, until you need text’, my first reaction was ‘that’s what happens without a unified vision’. Nobody at Apple seems to be asking ‘where can we take customers and developers?’ The difference in Apple Pay Wallet and text teams is striking. Loenko outlines the basic problem of using TextKit 2[…]

[…]

This is the state of Apple Pay Wallet since the arrival of iOS 18.1 NFC & SE Platform. The only real change needed for 2027 is the expansion of UWB support in CCC digital car keys to include recent UWB FiRa Consortium spec developments in Mobile FeliCa, Mobile MIFARE and Aliro. This would allow UWB Express Mode use with transit cards, hotel keys, home keys, office keys and ID badges.

Fatbobman:

But this year, at least by the time I was putting together this issue, there seemed to be noticeably fewer such posts than around the same time last year. […] Perhaps the issue isn’t a lack of anticipation, but rather that the traditional format of a wishlist is no longer quite sufficient. […] We hope to see updated features, more stable frameworks, and a clearer platform direction.

Sarah Reichelt:

I had not noticed the vanishing WWDC wish lists until you mentioned it, but I had felt no desire to write one this year. We haven’t even got stability in the OS 26s yet and within a couple of weeks we’ll get betas of OS 27s which cannot be any better unless Apple has scrapped 26 and built 27 on top of older, more polished versions. This sounds incredibly unlikely, so they will be piling bugs on top of bugs and hoping nobody notices.

Helge Heß:

I think my top wish for #WWDC would be ways to properly integrate the SwiftNIO event loop into the concurrency runtime (so that async/await can be used w/o hopping threads all the time). Or maybe just make the NIO event loop part of the concurrency runtime in the first place.

Tony Arnold:

My WWDC wishlist? A new, simpler, directly editable Xcode project file.

I’m duplicating a target today for an AppStore vs Direct Distribution variant, and Xcode crashes when I try to duplicate the target via the UI.

So yeah, easier to maintain project files would be a very welcome addition.

Howard Oakley:

It’s now almost a year since we got our first glimpse of Tahoe at WWDC 2025, and eight months since it was released to the public. Despite widespread outcry and detailed criticism, it has changed remarkably little. If you were unconvinced of its merits last September, I see little here that’s likely to persuade you otherwise. The only remaining question is whether, in the razzle of WWDC, Apple will do anything substantial to relieve the dazzle on our displays. I fear I already know the answer.

Warner Crocker:

iCloud syncing. Just make it reliable and give us Sync Now buttons. We get one is Messages. How about the rest of the core apps?

Perpetual Betas: I know, and respect that Apple is continuing to work on each new operating system throughout the year. Kudos. It can’t be easy. That said, find a way to keep from mucking things up on the backend for users who don’t participate in betas. Perpetual beta weirdness is hell for normal users.

[…]

Error Messages. Tell us more. Yes, I know something failed. Tell me more about what failed and point to a solution or information that can help me find out more. 

[…]

App Store. For a company that spends untold amounts of money on its brick and mortar stores, I remain shocked at how they can be proud of the software versions of any of its App Stores. 

Codenter:

I can deal with ugly UI, missing features, whatever. Xcode is different because it constantly makes me waste time on problems that feel completely detached from my code.

[…]

Some days it’s SwiftUI previews: change one harmless view and suddenly previews stop loading, or you get some useless wall of diagnostics that disappears after nuking DerivedData. Some days the simulator decides it doesn’t want to boot after an update. Sometimes indexing eats the whole machine, autocomplete gets drunk, fixed errors keep hanging around, or debugging from Xcode is mysteriously way slower than running the same thing normally.

Helge Heß:

My secret bet for WWDC is OpenSource SwiftUI. Why? Because it’s kinda inevitable that someone else does that otherwise using the current tooling. Just imagine a working List! 🙈

Confidence level: 0.1%. Probably won’t happen because of ignorance(/arrogance?), but would likely be the right decision for that specific project.

Steve Troughton-Smith:

The best kind of WWDC is the WWDC that gives me a big grab-bag of tools to make my apps better along several axes, and doesn’t burden me with a huge amount of needless churn just to tread water.

My favorite WWDCs are the ones where iPad gets a lot of love — there aren’t many of them, and no signs whatsoever that this year will be one of those years.

(A GOAT WWDC would be one where they introduce a true cross-platform successor to UIKit and AppKit and back away from the SwiftUI dumpster-fire)

Previously:

Update (2026-06-04): Imthaz Ahamed:

I wrote mine a month ago.

  1. A Snow Leopard year where focus is on quality
  2. Siri that is competent, and Siri being able to talk across devices (like ask Siri on my iPhone what my iPad battery level is at)
  3. Apple Watch Independence — this is long overdue, I want Apple Watch to not be tied to one iPhone, but be able to connect/switch to different iPhones(or even iPads!). Maybe a toggle in the Watch control centre.

Tim Schmitz:

Here’s my WWDC wish list entry: When I say “Hey Siri, add hot salsa to my grocery list,” add a single item called “hot salsa” instead of two unrelated items called “hot” and “salsa,” which it currently does every. single. time. 🤦‍♂️

Yep.

Matt Massicotte:

Here’s my “watchlist” of things I’ll be paying special attention to.

Update (2026-06-05): Rui Carmo:

My expectations are effectively rock-bottom by now. Apple has become a hardware company where software seems to have been tacked on as a somewhat under-maintained afterthought. But I can’t help but keep a scorecard, so here’s what I’m hoping for–in rough order of how often it ruins my week.

[…]

I want Mail to be automatable again. Not necessarily the full plugin API they killed, but an AppleScript dictionary that isn’t frozen in amber and a MailKit surface that can file, tag and search without ceremony–because the one app I live in all day is the one black box I can’t point an agent at. While they’re at it, smart folders and rules that sync from the Mac should finally arrive on iOS, roughly twenty years late.

Spotlight should simply find things that exist. I’d settle for that alone–no AI, no reinvention–just reliable, complete results and the one-line reindex affordance the Mac has had for years made available on iOS, so a corrupted index doesn’t mean a multi-hour restore that breaks Apple Pay and FaceID along the way.

[…]

Stabilise SwiftUI or admit it’s a research project. Views that worked on iOS 17 behave differently on 18 and seem broken on 26, and I lose hours dropping to UIKit to dodge layout bugs reported years ago.

Juli Clover:

Some of the same features that are coming in iOS 27 will come to macOS 27, like the new version of Siri and the dedicated Siri app, but we want to hear from MacRumors readers. What are you hoping to see in macOS 27?

Do you want updates to Liquid Glass? Changes to multitasking? Bug fixes? Better external display support? Improved memory management since no one can afford RAM anymore?

When Dropbox Spawns a Million Folders

Mike Bombich:

The two numbers at the end of that path are the file and folder count for this folder. That “Base.lproj” folder has no files in it, but 1 million subfolders. That’s absolutely bonkers! That really can’t be sane. The app, MenuClock (not the real name), looks like it’s just a simple digital clock, so it really shouldn’t have many items in that folder at all.

I offered my best guess: I suspected that some conflict arose in that application’s bundle specific to Dropbox, and Dropbox ran amok, creating lots of folders (perhaps remotely, then locally, like an echo chamber).

Finder had trouble emptying the trash with so many files, and the customer had to do this separately on each Mac connected to the Dropbox account.

We never did determine the exact underlying cause for the propagation of folders in that application bundle, but the reappearance of the item on various devices after removing it elsewhere suggested that the cloud-syncing software was likely (errantly) recreating the application and its subfolders. With a lot of persistence, John was finally able to eradicate them.

Previously:

macOS Needs Its Spaces Grid Back

Christian Inkster (Hacker News):

With the release of macOS Lion, Apple introduced Mission Control, its new take on virtual desktops that inexplicably restricted them to a horizontal line only. I remember thinking at first that I just hadn’t seen the setting somewhere, Apple wouldn’t just completely change how I used my computer right? right?

[…]

I wasn’t alone in my frustration. Alternative solutions popped up but the best of them Total Spaces caused me weird slowdowns and relied on modifying the system dock which was a no go once that eventually required bypassing system integrity protection.

[…]

That was until a couple of months ago, when I saw that someone had managed to remove the animation from macOS when you move from one space to another, without needing system edits. This animation clearly annoyed some people but never really bothered me. However as soon as I saw a space move without an animation I instantly realised I could solve my complaints.

[…]

I like the idea of a lightweight wrapper around the native spaces, with support for desktops or fullscreen apps. Just with a grid to navigate. But there is a reason pretty much all solutions that controlled native spaces died out. macOS keeps most of the mission control apis locked down. Its not simply a matter of calling a documented api to add a new desktop, or re-arrange them around. But the ability to move to a space instantly meant I could just create a model that took the single row native spaces and presented them like a grid.

He wrote an app called GridLion—and of course ran into lots of problems with permissions for accessibility and screen recording and is excluded from the Mac App Store.

Previously:

WhisperPad Rejected From the Mac App Store

Rene Zelaya (Hacker News):

In April, Apple rejected an update to my Mac dictation app, WhisperPad, under Guideline 2.4.5. Their position was that I was using the accessibility API in a way that wasn’t an accessibility use. The app exists because I have a hand injury. Apple had approved earlier versions doing the same thing. This time they did not.

I had used Apple’s built-in dictation first, and the experience was a particular kind of frustrating. The transcription was close but rarely right, and every correction meant going back in with the keyboard, deleting, retyping. I was hurting my hands to fix the tool that was supposed to be saving them.

[…]

They responded that they would take a closer look. They told me not to reply in the thread, and said they would come back with a decision. That was April 21st.

Then it went quiet. By May 21st I had heard nothing[…]

Finally he heard back and was rejected again. He didn’t want to “sacrifice the reach of the App Store” so he made a “compromised version” for the store and is also selling the full version via Paddle.

Previously:

Update (2026-06-08): THOHT is another dictation app that did manage to get approved in the Mac App Store despite using the accessibility API.

Tuesday, June 2, 2026

Bricking Microsoft Office 2019

Adam Engst (TidBITS-Talk, MacRumors):

If you are still using Microsoft Office 2019 for Mac, it will stop working fully on 13 July 2026. Word, Excel, PowerPoint, and Outlook will enter “reduced functionality mode”—a euphemism meaning you can view and print documents but cannot edit, save, or create new ones. Microsoft’s documentation doesn’t clarify what this means for Outlook users.

Why is this happening? A security certificate expiration is forcing Office 2019 into read-only mode, though Microsoft acknowledges this only obliquely in the FAQ. Without a current certificate, the apps can’t confirm you have a legitimate license.

[…]

At least in this case, Apple didn’t push users of older systems to buy new hardware—it just quietly kept things working. […] In contrast, Microsoft is quietly changing its story.

Consumer Rights Wiki (Hacker News):

After Office 2019 for Mac reached end of support in October 2023, Microsoft assured customers their installed apps would “continue to function.” The July 13, 2026 conversion instead drops the apps into a Microsoft-defined “reduced functionality mode,” in which files can be opened and viewed but not edited or saved. By May 30, 2026, the original 2023 end-of-support page had been re-dated and rewritten on Microsoft’s site; the “continue to function” clause was removed.

We thought the deal was that, if you purchase a perpetual license instead of subscribing, you don’t get feature upgrades but the apps keep working on the original hardware and OS version. Customers don’t like online license activation because it’s annoying and subject to temporary network or server problems. With smaller companies, there’s always the risk that they go out of business, and the server goes down, so you lose access to the app. (None of my apps use activation.) I didn’t expect that to be a danger for Mag 7 companies, but it turns out that Apple broke Mac App Store purchases for older OS versions (as well as movie and music purchases on newer hardware), and now Microsoft is letting its own activation break. I’m sure there’s something in the EULA that says they can end support, but it still feels like a violation of the social contract. The customer did their part by paying; it was the company that chose to impose the activation model in order to weed out cheaters; shouldn’t it then own any problems that creates?

But it’s actually worse than that because even subscribing to Office 365 doesn’t fix the problem. You need a newer version of Office, which necessitates a newer version of macOS, which may necessitate getting a new Mac—all to fix what seems like an artificial problem.

Amber Neely:

It’s also bricking its mobile apps on devices running iPadOS 16 and iOS 16 or earlier.

Previously:

Update (2026-06-03): Jason Snell:

Old software becomes incompatible. It’s a fact of life. But to build it so that it just suddenly stops working one day, and to take no steps to ameliorate that situation, is pretty disgusting.

Update (2026-06-05): Macworld (June 4, 2026):

Spend $29.97 today and pay $0 for Office on your Mac tomorrow (and forever)

[…]

For many people, the best software is the kind you buy once and keep using. Microsoft Office Home & Business 2019 offers the classic Office experience right on your Mac, letting you create documents, presentations, and spreadsheets without worrying about recurring charges. A lifetime license is currently available for $29.97.

Office 2019? Lifetime?

Nick Heer:

My workday began with a notification from Teams that the desktop app will stop working on 20 July, as Microsoft says it is only compatible with the three most recent versions of MacOS.

[…]

Also today, OneDrive automatically updated to a newer version, which is incompatible with the version of MacOS I am running. I received no warning until I tried launching it. Microsoft provides no support for this kind of problem for end users but, luckily, I had a Time Machine backup I could use. However, I realized OneDrive would probably automatically update and I would have to do all this all over again, and it contains no relevant preferences.

No Bounty for Mysk

Mysk:

We had lengthy discussions explaining the bug to Apple. It was clear to us the bug was new to Apple Product Security. After 5 months, they informed us that the report was treated as a duplicate and it was addressed.

We just got this update for CVE-2026-28910: No bounty.

[…]

It is hard to believe that our report was a duplicate. The bug was present in all previous macOS releases and now all of a sudden two independent reports addressed it at once!! What are the odds of that? We reported the bug in October 2025. Apple fixed it in March 2026. So they knew about this critical bug earlier than October and left it unpatched all this time?

Mysk:

We have a series of bad experiences with the way Apple Product Security treats our reports. It started with the clipboard, we spent lengthy exchanges convincing them it was a bug, they concluded it wasn’t an issue. When we published the demo we submitted to them, the media helped raise awareness about it. Pressured by social media demands, Apple introduced the clipboard notification in iOS.

And recently we reported a bug that the Passwords app would contact websites over HTTP to download icons. Same behavior: not an issue -> lengthy discussion -> FINE we fix it. Then they said our work didn’t meet their criteria for a bounty. After that and in iOS 26, they introduced this option in the settings (see screenshot). It is clearly based on our unpaid work that we fought hard to convince their team it was an issue.

Mysk:

We will no longer submit bugs we discover in Apple systems through Apple Bounty Program.

neils:

Apple did this to me in 2019 over a messages 0-click bug. So I did some magic and got myself added to their daily bug bounty standup call, which was just a FaceTime group call. I submitted another vuln with a screenshot of their call and got a threatening letter.

Lior Halphon:

A few years ago I reported a bug, which Apple fixed. When I asked for the bounty and credit, they ghosted me. They did eventually provide both the payout and the credit (although they listed the wrong affected OS versions in the security bulletin), but only after Twitter shaming.

That said, the whole experience never felt malicious or deliberate, it simply reeked of incompetence and severe lack of organization.

Denis Kanonik:

From my experience of reporting bugs to Apple - they never admit that you were the first, it’s always duplicate. Even if there are no bounty promised or expected and novelty is obvious.

Bob Burrough:

Apple peeps […] you should reward the effort expended by the 3rd party for helping secure your products…not whether the report is new to you….especially when the issue hasn’t yet been published. Even reviewing the duplicate helps you understand the bug.

Previously:

fsck_hfs Cache Exhaustion Bug

Kıvanç Günalp:

fsck_hfs in macOS Sequoia (version hfs-683.x) has a cache exhaustion bug that reports false corruption on large HFS+ volumes. On machines with 8 GB RAM, volumes of 24 TB or larger trigger “Couldn’t read node” errors during the extended attributes check.

[…]

fsck_hfs pre-allocates a cache at startup — a pool of 32KB blocks used for all disk reads. The size of this pool is determined by available system RAM[…]

[…]

BTCheckUnusedNodes races through tens of thousands of free nodes, and every unique disk offset it touches gets a Tag_t structure allocated via calloc and inserted into the cache’s hash table. Each tag claims one 32KB buffer from the pool. When the release path runs, it returns the tag to the LRU list — but the LRU management doesn’t keep up with the rate of allocations.

[…]

The irony: a function designed to verify filesystem integrity is itself broken — reporting phantom corruption on perfectly valid volumes.

I’m surprised that we keep seeing new HFS+ bugs. I would have thought that code would be frozen by now.

Previously:

Update (2026-06-08): Larry Yaeger:

hfs_catalog_check.py - Detailed HFS+ structural verifier

A read-only diagnostic that walks the catalog, extents-overflow, and attributes B-trees of an HFS+ volume and reports problems with more actionable detail than fsck_hfs provides[…]

Monday, June 1, 2026

macOS 26.5.1

Juli Clover (release notes, no security, no enterprise, no developer, full installer, IPSW):

According to Apple’s release notes for the update, macOS Tahoe 26.5.1 addresses an unexpected shutdown issue affecting certain enterprise users on M5 Macs.

See also: Mr. Macintosh.

Previously:

iOS 26.5.1

Juli Clover (release notes, no security, no enterprise, no developer):

According to Apple’s release notes, the update fixes a previously documented charging issue with iPhone Air and iPhone 17 models.

Previously:

BBEdit 16

Bare Bones Software:

This release of BBEdit introduces expanded support for macOS “Shortcuts”, via additional actions provided in the Shortcuts application. A “Transform Text” operation allows invocation of “one shot” operations of many kinds, and transforms are provided for extracting matching lines, deleting matching lines, sorting lines, and text replacement.

The shortcuts can either interact with the front document or use BBEdit as a headless text processing engine (without having to launch the app). This is great news for Shortcuts fans, as it’s now really easy to receive text, operate on it, and send it along to the rest of your shortcut. Personally, I’m not a fan of locking logic away in the Shortcuts database. I would be more inclined to use a text factory or AppleScript. Text factories provide more options and a better interface than is available in Shortcuts, and both text factories and scripts can be saved as standalone files and easily reused in other contexts (from within BBEdit or other scripts).

Added support for using the W3C HTML checker service. This is on by default, and improves the correctness and accuracy of syntax checking in HTML5 documents.

Most of my projects are embarrassingly still HTML 4, but in some limited testing I found that this worked as expected. By default, it works online, which felt plenty fast and presented the results in the familiar BBEdit errors browser window. (I love how, unlike in Xcode, errors and search results are in separate windows that you can keep open.) They say that the connection to the W3C is secure and that no data is retained, but it’s also possible to install a local copy of the checker for maximum privacy.

A longstanding issue for me is that a lot of my HTML pages contain dynamic elements inserted by PHP or Python on the server. The local files that I edit in BBEdit are either templates, content that will go into templates, or statically rendered pages with a few pieces still missing. In order to check the final versions of these pages, I can use a bookmarklet for the W3C checker or load the final HTML and send it to BBEdit for analysis. This can be done by using an AppleScript to send the source from Safari or by loading the page using BBEdit’s Open File By Name command. BBEdit can also check for broken links, but this is for links to files within the local copy of a site you’re editing. It won’t check remote URLs. If I try to check a page from this blog it will complain about all the links that are just path references because they aren’t stored locally (or, indeed, anywhere except in WordPress’s cache).

BBEdit can search for text in images, via OS-provided image text recognition. Use the Find or Multi-File Search windows to search for (and extract, if desired) matches for a given string or Grep pattern within image files.

This is really cool. Spotlight has had image searching for a while, but it’s much more useful in BBEdit. You can do more precise searches, finding case-sensitive or regex matches. The matches are presented in the aforementioned standard results window, so you can see all the files, as well as the context around the matching text, in one list.

The use case that immediately came to mind was searching through screenshots, e.g. in documentation for my apps. I also found it useful for finding text in memes and for searching for ski trails in my folder of maps. It was able to find trail names where text was curved or at an odd angle, and it highlighted the matching region of the map in yellow. When there are multiple matches, you can arrow-key through them and watch the highlight move.

Text and image files can be part of the same search, and the performance is impressive. I mostly just leave image searching on, but there were a few cases where I was searching a big folder and knew I didn’t need image results, so I turned off image searching to make it go faster. The multi-file search window now makes it easier to see at a glance whether options like this are enabled.

Added settings to projects, instaprojects, and notebooks for project- (and notebook-) specific color scheme settings.

I tend to use different color schemes in different apps. It’s hard enough to find ones that I like, so I certainly don’t want to create more. But judging by the reactions I’ve seen, people really do want to create multiple color schemes within the same app to quickly tell apart different projects.

Added controls to allow use of an alternative color scheme when printing, if desired. The default is to use the document’s current color scheme, but if you routinely work in Dark Mode and print things out, selecting an alternative color scheme generally provides a better outcome.

I don’t use Dark Mode, but this makes a lot of sense. I already had it set to use a different font for printing.

Keyboard emulation for vi is available, via the corresponding setting in BBEdit’s “Keyboard” settings. This enables a basic set of vi navigation and editing commands and modes. :q will close the active document rather than quitting BBEdit.

Personally, I prefer the Emacs keybindings, and there’s good news on that front, too. There’s been a longstanding bug where Control-N (to move down a line) would sometimes stop working. It was a really strange issue that I could never figure out exactly how to reproduce, and it only affected that one Emacs key. BBEdit 16 now supports the Cocoa-standard DefaultKeyBinding.dict file. I added a "^n" = "moveDown:" line, which is redundant for NSTextView apps that already have it built in, but for BBEdit it seems to sufficiently override whatever code path was intermittently failing, so now the key works consistently for me.

Added a button to the Languages preferences for installing a desired language module. This will handle copying of the language module to the appropriate location; so any obsolete instructions regarding where to copy the module can be ignored.

The interface for languages and their settings has been overhauled a bit and overall works more smoothly now. There’s also now a nice interface for importing and exporting grep patterns, so you don’t have to dig into BBEdit’s files.

The file information panel (via “Get Info” or the document status icon in the navigation bar) adds an indicator when the file has been quarantined by macOS. The adjacent “Clear” button will attempt to remove quarantine.

This is one of those minor features that is technically not needed, because I can easily do it from Terminal. But it’s annoying, and whenever I do it I think I should probably write a script to remove the quarantine on the front document. I never got around to that, but now I can just click a button. Also, if you haven’t checked out the info panel in a while, besides showing the basic file stats it can also adjust file permissions and show Spotlight metadata.

Expanded syntax coloring support, via the Language Server Protocol “semantic token coloring” feature. When supported by the language server, this allows the server to provide information on specific ranges of the source code that supplements BBEdit’s built-in syntax coloring for the given language.

I still love the idea of LSP, but it hasn’t quite lived up to my hopes yet. The usefulness probably varies greatly based on which language you’re using. These days, I mostly write Swift, so I’m comparing with the functionality that’s built into Xcode. The main problem is that Apple’s SourceKit-LSP doesn’t support Xcode project files. In order for LSP to find your dependencies, you have to run a script to create a compile_commands.json file and/or install xcode-build-server and set up a buildServer.json file. It was never fully clear to me what I was supposed to do. Of course, my projects also have Objective-C files and Swift code that extends Objective-C classes, so clangd is in play, too.

I got it working to a certain extent but never to the point where it would find all the files it needed in Apple’s frameworks, my own frameworks, and the related files in the same target. So the display of the compiler errors/warnings just wasn’t useful when editing files in my projects. I’m not sure whether this was due to bugs/limitations of SourceKit-LSP or user error. BBEdit’s LSP features do work very well for standalone files with no dependencies, e.g. if I have a test file to explore an API or I’m writing a “script” in Swift.

Setting aside the compilation errors, I do find the new semantic token coloring helpful. It’s not as good as Xcode’s, which can use different colors for local and instance variables. And there are some issues with the coloring of unknown symbols and with local variables sometimes changing color between definition and use. But I prefer it to the basic syntax coloring.

Code completion is a mixed bag. Sometimes it works really well, basically like in Xcode. Other times, it won’t complete because it hasn’t found my dependencies or because AppKit was an implicit import rather than listed at the top of the file. I sometimes wish there were a way to turn off LSP completions (without turning off the rest of LSP) and just use the regular, lower-tech BBEdit completion engine that’s more reliable.

A pleasant surprise is that the Edit ‣ Show Symbol Help command is often more reliable than Xcode at showing the inferred type for a variable.

Added a command to the View menu and to the contextual menu in the sidebar: “Move to Window…”. This opens a dialog in which you can choose an extant window for the active document (or selected sidebar documents, as appropriate), and upon confirmation moves the document(s) to the designated window and makes it active. A search box is available to filter candidates.

I love how this can be completely keyboard-driven.

Enhanced the Unicode display section in the Character Inspector palette to show the Unicode code point names for the respective characters.

You can select a range of characters, and it will show the hex code points as well as the names. This is really handy for breaking down complex characters into their parts. Emoji display within text windows has also been improved.

The Minimap palette gets a cursor position display, and a popup menu button displaying the name of the function containing the start of the selection range. Clicking on the function display will open a function menu, from which you can choose another location in the displayed file.

These are good improvements, but I still find the Minimap much less useful than Xcode’s, which shows some section headings directly in the map and lets you browse others by hovering. The other main editor features that I miss from Xcode are multiple cursors and syntax-aware indentation.

Git revision lists (as used in “Compare Revisions”, “Compare Arbitrary Revisions”, and the file version menu in the navigation bar) get indicators for revisions that have annotations (such as commit tags or special status as branch head revisions). Further details are available via hover tooltips.

This is an improvement, but most of my revisions aren’t tagged, so all I have to go on are the date and the commit hash. The comparison commands are great if I want to quickly go back a few versions or if I know the desired date. I wish BBEdit had another column or pane to show the commit message. Otherwise, there’s a multi-step process of opening the revision history, finding the desired hash, and then looking for it in the other window. At that point it feels easier to switch to Tower and locate the file there so I can use its history browser.

AI worksheets support streamed responses, which will shorten the time before responses from the service start to appear in the worksheet. If wrapping is turned on (as it is by default), streamed responses will appear in chunks (corresponding to an unwrapped response line) rather than a word or two at a time.

Added an “Other…” item to the popup menu for model selection in the AI Worksheet preferences, as well as in the worksheet popover. This makes an API request to the service (if supported) requesting a list of the available models, and then provides a searchable list.

Streaming is a huge improvement, as some of the models take a while to produce a large amount of output. Instead of it looking like nothing is happening, you can start reading the response right away. The Other… command is much more important than it sounds because the pre-defined models that show up in the pop-up menu may not be the ones you want. I recommend checking the full list now and then and updating your default. In some cases you may want a model that’s not even listed there. For example, chat-latest is the current ChatGPT Web model, and it auto-updates to use newer models as they become available, but it doesn’t appear in the list returned by the API. Also, beware of old worksheets that are still set to use an old model.

My other tip is that the AI APIs BBEdit uses seem to default to more concise responses than you would get on the Web. There’s no setting to change this, but you can prompt it within the chat to be more verbose.

The codeless language module internals have been extensively reworked to improve performance, and to correct longstanding issues. With these changes, individual patterns (string, comment, keyword, etc) can be tested and developed using the Pattern Playground if desired, and used in a language module with some assurance that they’ll behave consistently (which was by no means guaranteed before).

[…]

Made significant performance improvements to SFTP protocol operations, including file transfers. Most operations will be visibly faster, in some cases an order of magnitude or more can be expected (limited by network throughput to the server).

There’s a whole section of the release notes on performance improvements, but I think these are the two most important ones. I’ve been using BBEdit’s FTP support since the 90s. It’s always been convenient, but at some point I switched to mostly using Edit in BBEdit from Transmit because it felt faster. With BBEdit 16, the SFTP operations and browser feel so much faster, due to using Dispatch I/O and bulk communication with the helper XPC service. It’s usually quick enough that it doesn’t bother interrupting the flow with a progress sheet, so it feels pretty much like working with local files. Since getting back to working this way, I’ve rediscovered the benefits of having BBEdit manage the SFTP connection: remote files show up as recents so I can quickly go back to them, and I can leave a log file open and reload it.

I continue to use BBEdit every day, for all manner of coding and non-coding tasks. It continues to be rock solid, and Bare Bones continues to do a good job adding useful new features while also maintaining and optimizing the old ones.

BBEdit is still $60—or $4/month or $50/year (up from $40/year) in the Mac App Store—with upgrades still at $30. Of course, many of the features also work in free mode.

See also:

Previously:

Friday, May 29, 2026

StopTheMadness Pro 26

Jeff Johnson:

My Safari extension StopTheMadness Pro has a feature to protect private windows. In other words, StopTheMadness Pro stops websites from detecting private windows in Safari. I won’t explain how my feature works, but in this blog post I’ll explain how websites detect private windows.

Jeff Johnson:

I’m sorry to say that at this time I don’t plan to make any additions or enhancements to YouTube-specific features in StopTheMadness Pro.

[…]

The downsides of adding YouTube-specific features to StopTheMadness have outweighed the upsides. YouTube is an endless time sink. Even though StopTheMadness is not a YouTube-specific extension, I’ve spent more time working on YouTube than on every other website in the world combined. Seriously. And YouTube doesn’t remain static; Google continues to change YouTube, sometimes breaking my features, requiring even more work.

I generally use Downie for YouTube videos, and it requires an insane number of updates to keep working.

Jeff Johnson:

Although DuckDuckGo doesn’t allow you to specify the number of results per page, it does have a setting to enable infinite scroll, which is more convenient than Google’s strict division of results into pages of 10 links. The problem is that I prefer to use private windows for the majority of my web browsing, especially searches, which means that any settings would disappear when the window is closed. DuckDuckGo claims to support URL parameters for settings, but in my testing, the parameters don’t actually seem to work reliably.

As you might expect, my solution to the problem is my web browser extension StopTheMadness Pro.

Jeff Johnson:

This update brings a great new feature: autoclick buttons! Specify a button on a website to be clicked automatically. For example, agree to terms and conditions, reject cookies, or close a popup.

I’ll have to report back on how well this works across various sites, but it sounds great and was successful in my initial testing:

In selection mode, manually click the button that you want to be automatically clicked.

[…]

StopTheMadness Pro uses CSS selectors to autoclick buttons. In order to click a single, specific button, and not mistakenly click the wrong buttons, StopTheMadness Pro searches for a unique way to identify the button on the page. If a unique identifier cannot be found, then the autoclick feature can’t be used with the button.

By default, StopTheMadness Pro attempts to find the button on the web page for 10 seconds after the page loads, and then it stops looking.

Previously:

Mac External Display Support Reference

RetinaDesk:

How many external monitors can your Mac actually drive? Pick your exact Apple Silicon Mac — we’ll show the maximum external display count, per-port resolution and refresh caps, valid configurations, and the gotchas that burn people.

The site’s maintainer, Parish Khan, writes:

After your March 2024 post on the M3 MacBook Pro getting two-display support via software update, Apple quietly amended the 14-inch M3 base spec only with macOS 14.6 in July — no follow-up announcement. The tool flags it clamshell-only since that’s still the catch.

Two other things worth knowing: the M1 Ultra Mac Studio is listed at 5 displays not 8 (that count starts at M2 Ultra), and 8K 60Hz is HDMI-only on every Mac, including the Thunderbolt 5 machines.

Howard Oakley:

Selecting external Retina-resolution displays for use with Apple silicon Macs is extremely complicated. Even when you read Apple’s tech specs it’s often not clear exactly which combinations will work together.

Previously:

Update (2026-06-01): Adam Engst:

Each display gets at least a week of daily driver testing on current Apple silicon hardware, with a consistent focus on text rendering, color profiles and consistency, brightness and backlight bleeding, single-cable behavior, and long-term eye comfort. Included stands, speakers, and webcams also come under scrutiny. The result is a detailed review with pros, cons, who the display is best for, and detailed specifications. Khan then combines all that information into three buying guides:

Bartender Pro

Applause Group:

Bartender Pro includes everything in Bartender 6, plus Top Shelf and future Pro tools as they’re released.

[…]

[Top Shelf is a] powerful new way to interact with your MacBook’s notch — bringing common utilities into what used to be wasted space.

The Pro features require a new $15/year subscription.

Dan Moren:

Top Shelf is part Dynamic Island, part clipboard manager, part file utility. Frankly, much of it also feels like the kind of feature Apple should building itself, because my experience over the last year or two with the notch in the MacBook displays continually makes me annoyed at just how user-unfriendly it is.

To trigger Top Shelf, you bring the cursor up to the notch; the interface expands outward from there, just like the Dynamic Island on the iPhone. By default, the first screen contains a pair of customizable widgets for common features like Calendar, Weather, and Music.

[…]

Files allows you to temporarily store, yes, files that you might want to move between apps. Drag and drop a file in there and then you can drag it back out of Top Shelf into another app. That pane also has an AirDrop section; drop a file there, and it will trigger the system’s AirDrop feature, with the file already pre-populated.

The Files feature sounds like Yoink.

See also: MacRumors and Mac Power Users Talk.

Ben Lovejoy:

However, there are also some truly remarkable [Apple] oversights which are somehow allowed to persist from macOS generation to macOS generation. […] menu items can end up being hidden behind the MacBook Pro notch, with Apple seemingly unaware or unconcerned about this. I typically only have four or five third-party menu bar items on screen at any given point (albeit including a wider timezone clock one), and yet it is still very common for one of them to end up invisible.

Previously:

Thursday, May 28, 2026

ARC Overhead in Swift Sorting

Sean Heber:

I made a function in Tapestry 23x faster today by sorting an array using its indices instead of using its data directly. Like this:

let unsorted = items
var indices = Array(unsorted.indices)
indices.sort { a, b in unsorted[a].thing > unsorted[b].thing }
items = indices.map { unsorted[$0] }

Versus presumably something like:

items.sort { a, b in a.thing > b.thing }

With Objective-C, at least pre-ARC, this was simple. The array owns the objects, and they do not get retained and released when passed to your comparator, or within it. Unless you do something silly, like removing objects from the array during sorting, it will be safe and have no memory management overhead.

With Swift, I find the situation rather confusing, and I was not able to find any documentation that lays out exactly what happens. Various searches and AI prompts turned up all sorts of conflicting information. Gemini, in particular, had some explanations that sounded reasonable but that I began to doubt because the sources that it linked to did not actually say what it claimed. I’ve tried to figure this out, but it may well be that some of my conclusions are wrong.

There are several things going on:

  1. Swift will insert retains and releases for the closure parameters. I can see this in the disassembly and by setting breakpoints. I think this is only because they’re accessed within the closure. They don’t need to be retained by the caller because the closure is non-escaping.

  2. If the optimizer is enabled, Swift can sometimes remove that retain counting. I’m not sure exactly when this happens. In my tests, where everything is defined in the same module, it worked for both classes and structs, but I get the impression that sometimes the optimizer is not able to remove the ARC traffic. This is a longstanding frustration with Swift, that the behavior under optimization can be wildly different and that it’s not obvious when you’re changing something in the code that defeats a crucial optimization.

  3. There can also be ARC traffic from the non-comparator aspects of the sorting. Values need to be moved and sometimes copied into temporary buffers, since Swift uses a complex sorting algorithm that does merging as well as swapping. Some of this seems to be done at a low level to avoid ARC, but at least for structs I don’t think it can be totally avoided.

  4. Swift also has exclusivity checks, which can detect (at runtime) if you’re modifying the array from inside the closure. So safety is somewhat decoupled from memory management.

Heber was sorting large structs and saw overhead related to properties that were not accessed in the closure. I’m not sure whether this was due to #1 or #3 or both. In any case, switching to indices adds (linear) overhead from creating two additional array buffers, but it reduces other types of ARC overhead because only integers are passed as parameters and moved around during sorting.

Is there a way—other than using indices—to guarantee the minimum ARC traffic? Swift now supports explicitly marking parameters as borrowing. That seems like conceptually the right idea. It directly expresses that the elements are owned by the array and so don’t need to be retained at other levels. But I don’t think it helps here. For #1, I think the parameters are already essentially borrowed, and it doesn’t address the overhead from #3. Also, the caller (sort) is not typed as taking a closure with borrowed parameters. Changing the closure wouldn’t change its behavior.

I also wondered whether it would help to use one of the other built-in sorting methods. With Comparable, you can avoid passing in a closure. But if the closure isn’t capturing anything, the signature seems identical to that of < in other respects. Still, maybe there are cases where the compiler would be able to see through more for certain Comparable types?

KeyPathComparator also seems promising in that more of the work happens internally. Maybe this could be optimized as the language evolves to do things that are not possible with normal functions/closures. But, so far, I think it’s mostly just syntactic sugar. In my tests, it still retained and released a lot with optimizations disabled.

Lastly, there’s the option of the Schwartzian transform. This can reduce the computational overhead during each comparison, e.g. if thing is a computed property. It needs extra space for a temporary array, but if you’re already making one for the indices trick, you can use the same one, just wider to store pairs.

Unfortunately, I don’t have a very satisfying conclusion except that I would be skeptical about trying to reason from first principles how the complete system will behave. I think you need to profile to see what’s actually happening. Even that’s easier said than done because the sorting algorithm switches between different modes based upon the size and character of the data.

Previously:

Wednesday, May 27, 2026

Iris 1.0

Tyler Hall (Mastodon):

The first version, from November 2020, was called AntiPhoto. The name was a mood. I had tens of thousands of photos and videos scattered across drives and old phone backups, and Apple Photos wanted me to live inside its library, on its terms. I didn’t want a walled garden. I wanted something that could point at a messy folder and just make sense of it.

[…]

For every dreamy sketch there were months of deeply unglamorous hitting my head against the wall, none of which makes a good screenshot. The single hardest problem was often just scrolling. A photo library isn’t 200 items, it’s 200,000+, and they all have different aspect ratios, and you want a buttery justified grid that never stutters. I have a screen recording I named “100k Spinning Scroll” from April 2022 — the day a library of 101,706 items finally scrolled without choking — and I remember it feeling like a bigger win than any feature. But even today, Iris has performance hiccups — especially around complex searches and truly massive libraries. But if I waited to solve every bug, I’d never ship.

[…]

I set out to build an anti-Photos utility — a search engine for a hard drive. What I actually ended up with is a memory keeper. Open a photo today and Iris tells you the date, surfaces “16 items on this day,” drops a pin on the map, and lists the people in the frame with their ages quietly calculated from their birthdays.

It’s now available:

Somewhere along the way, “your library” turned into “an account someone else owns.” That’s not the future we want. Iris reads from the folders or Apple Photos library you already have, builds a fast and intelligent library on your Mac, and leaves the originals exactly where you put them. No cloud. No accounts. Your memories are yours.

$14, no subscription, either direct or from the Mac App Store.

Previously:

Update (2026-05-29): Tyler Hall:

ATP 561 [talked] about how to handle photos with “don’t care” dates. Stuff like “1960s” that can’t be pinned to a specific date/time. […] I’m not sure if what Iris does is the best approach, but you can assign a decade, year, or month (or any combination of those) and it’ll bucket it into an “approximate” section where it makes sense.

Nick Heer:

But that is not the coolest part. No, that is that it lets you explore your tens- or hundreds-of-thousands of photos in a way that treats each of them as little memory boxes. So often, it is not just a picture of your kid, or your dog, or your dinner; it is a time you would like to remember. There are a bunch of things in each file that can bring you back to that moment. Photos does a poor job of that; Iris, on the other hand, is made for exactly that, something Hall takes seriously.

Halide Mark III

Ben Sandofsky:

Mark III is now available in the App Store. This post highlights the major new features, starting with Looks, which produce gorgeous photos straight-out-of-camera.

[…]

Inspired by “Less, but better,” we partnered with the renowned Hollywood colorist Cullen Kelly to develop a succinct set of gorgeous, physically accurate processes exclusive to Halide. Each look was engineered with a specific intent. We verified every look thousands of times on real-world reference photos.

[…]

As Mark III became better and better, I actually missed its results when I reached for a standalone camera. I figured a lot of people might feel the same. So we’re excited to announce that Halide now lets you import RAW files from standalone cameras to apply the same magic that defines Halide.

I like the idea of looks, and the Apple vs. Halide Rembrandt comparison is striking, but I don’t like the workflow of making these decisions from my phone.

Previously:

Update (2026-06-08): John Gruber:

What I want is to just point and shoot and be able to instantly share images with the look I want already applied. I’m picky but I’m also really lazy, and don’t want to do any editing in post on most of the shots I keep. But I do want to be able to edit in post if I want to, including changing the look losslessly. This mixture of point-and-shoot ease and pro-level control didn’t use to be possible. Now, though, it is, with apps like Not Boring Camera, Analogue, and, now, Halide Mark III.

!Camera

John Gruber:

!Camera’s use of LUTs for filter-like effects opens the app to a wide world of non-proprietary looks. The best source I’ve found for new LUTs to import is the Panasonic LUMIX Lab app — Panasonic’s built-in LUTs are boring, but the app has a whole community of user-submitted LUTs and I’ve found several of them that are lovely. !Camera’s custom “SuperRAW” format, is, in my opinion, key to the appeal of the app:

No more flat lifeless photos, no AI processing, no weird artifacts. Our SuperRaw™ photo processing has been crafted to showcase more film-like tones and preserve a photo’s beautiful natural grain.

Previously:

Project Indigo

Allison Johnson (2025):

Adobe’s Project Indigo is a camera app built by camera nerds for camera nerds. It’s the work of Florian Kainz and Marc Levoy, the latter of whom is also known as one of the pioneers of computational photography with his work on early Pixel phones. Indigo’s basic promise is a sensible approach to image processing while taking full advantage of computational techniques. It also invites you into the normally opaque processes that happen when you push the shutter button on your phone camera — just the thing for a camera nerd like me.

If you hate the overly aggressive HDR look, or you’re tired of your iPhone sharpening the ever-living crap out of your photos, Project Indigo might be for you. It’s available in beta on iOS, though it is not — and I stress this — for the faint of heart. It’s slow, it’s prone to heating up my iPhone, and it drains the battery. But it’s the most thoughtfully designed camera experience I’ve ever used on a phone, and it gave me a renewed sense of curiosity about the camera I use every day.

Joe Rosensteel:

I appreciate what Adobe is doing with Project Indigo. It’s a free iOS camera app, but it is heavily disclaimed as being experimental with unique features you can’t find in other apps. But Adobe also says they’re targeting “casual” photographers, which seems misguided.

[…]

You can’t adjust the tone mapping like you can with Photographic Styles. You’re supposed to take it into Lightroom and treat it like the RAW output of a DSLR or mirrorless camera.

The default result tends to be much more naturalistic than the Camera app.

John Gruber:

I’m deeply intrigued by Indigo, and I have a few friends who’ve shown me some extraordinary photographs taken with the app. If they hadn’t told me, I’d have wagered their photos were taken with dedicated large-sensor digital cameras, not phones.

Previously:

Unpro Camera

Jeremy Gray (2025):

Unpro Camera promises “that unprocessed look” that has become popular lately and is in the same vein as Halide’s Process Zero option.

[…]

Unpro not only aims to produce a more retro-looking image, free from modern smartphone processing techniques, but the app also channels old-school vibes through its design and user interface. Unpro sports a skeuomorphic design, meaning that it digitally recreates real-world objects. In this case, the app has a shiny-looking virtual shutter release, a faux leather texture like a camera’s grip, and pseudo-illuminated icons for things like AF/AE locking and zoom mode. It is worth noting the buttons in the UI don’t move around — they’re always in the same location — which the developer says makes it easier to learn how to use.

Uncorrelated Contents:

Unlike most camera apps, Unpro features a carefully-crafted photo processing pipeline that produces excellent JPEG renditions of RAW and ProRAW photos without the need for manual editing.

[…]

Another feature that, as far as I know, is unique to Unpro: the ability to capture a RAW and ProRAW (or RAW + a deprocessed photo) in rapid succession.

Previously:

Monday, May 25, 2026

Iris Rejected From the App Store

Tyler Hall:

Rejected after six days waiting for review, and four minutes after launching the app for the first time.

The app uses one or more entitlements which do not appear to have matching functionality within the app.

com.apple.security.network.server

I guess they never opened the Settings window during all the time they spent reviewing the app?

Tyler Hall:

App Review rejected Iris for a second time, this time for two reasons.

  1. They again claimed the app uses the com.apple.security.network.server entitlement without matching functionality - even though I responded to the first rejection with an annotated screenshot and detailed explanation showing the server feature in the app.

  2. They asked for more information about how Iris uses face recognition data - asking me to quote from my privacy policy - despite both the privacy policy and the app itself explaining that no data (including face data) ever leaves your Mac and all processing happens entirely on-device.

Ironically, their rejection included a screenshot of Iris’s Settings window—showing the Privacy tab that explains exactly this.

Pasi Salenius:

My MAS app used to go through in under an hour, now takes close to a week.

And there’s a big difference between waiting a week to be approved vs. waiting a week just to begin the process of arguing over specious violations.

Jeff Johnson:

I’ve always found it odd that Apple appears to be bragging about these statistics, yet if you do the math, the statistics turn out to be somewhat embarrassing. Based on the 2024 numbers, over 130K app submissions every week reviewed by nearly (in other words, fewer than) 500 “dedicated experts” (a characterization I would question) means 260 reviews per week on average by each reviewer. If we assume, extremely generously, that 500 reviewers work 40 hours every week with no meetings, no training, no breaks, and no vacations, that leaves less than 10 minutes of review time on average for each submission.

[…]

You might ask why Apple, the most profitable corporation in history, with a 77% gross margin in “services” revenue, that could obviously afford to hire more app reviewers, doesn’t also hire better reviewers, more qualified, actual experts in app development and the market? The answer to my rhetorical question is that app reviewer is an unpleasant job, mostly mindless rule-following, repetitive, facing constant deadlines, reminiscent of assembly-line work. It’s a virtual assembly line.

[…]

It isn’t intended to be true curation, and thus, by no surprise, it isn’t true curation. From Apple’s perspective, adding more reviewers would just add to their costs without adding to their profits, which is the point of the App Store, and reviewers were never particularly good at stopping scams, so the investment in more inescapably low-skill reviewers wouldn’t necessarily bring substantial returns. I’m sure that Apple wants to avoid the embarrassment of scams in the store, but Apple can’t do that without fundamentally changing the nature of the App Store and software distribution on iOS, so they live with the embarrassment and rely on Apple apologists to hand-wave away the problem as “a few bad apples.”

Previously:

Update (2026-05-26): Richard Buckle:

This perfectly encapsulates why I no longer develop for Apple platforms.

Matt Sephton:

I also got this rejection for my app Localmost…which is a local web server manager!

Matt Sephton:

one of my apps was submitted and approved, but the first update I pushed was rejected because they wanted “test account details” to which i replied “the app does not have an account system” and then it was approved. it’s just so amateur hour. AND they still haven’t got me on the 15% track, the email said “sorry we’re busy right now so there are delays”

Pierre:

Our app resembles a marketplace, so we are always worried of reviewers being overzealous. We had to deal with a few rejections in the early versions. Also, we publish some apps with the branding and name of some big companies (think intellectual property red flags). What seems to work (maybe it is pure chance ?!) is that we provide a nice QA anticipating possible critiques in the Notes section next to the login/password.

Junjie:

I had the (unfortunate) opportunity of submitting 3 updates to MAS for @due in 4 days and want to provide another data point[…] Even before this week, my experience has been similarly speedy. But of course, the trouble with the App Store is that you never know when you’re on the unlucky side of things.

OpenAI Model’s Proof of Erdős Unit Distance Problem

OpenAI (Hacker News):

This proof is an important milestone for the math and AI communities. It marks the first time that a prominent open problem, central to a subfield of mathematics, has been solved autonomously by AI. It also demonstrates the depth of reasoning these systems now support.

[…]

The proof is available here. The companion paper by leading external mathematicians is available here. You can find an abridged version of the model’s chain of thought here .

Apps for YouTube℠™®•!

Jeff Johnson:

Several of these apps have a link to a privacy policy web page that’s hosted on a generic free site such as sites.google.com, docs.google.com, github.io, wixsite.com, or vercel.app, which is always a bad sign. A couple of the apps use URL shorteners for the privacy policy link: bit.ly and shorturl.at. Why is that even allowed?!? And some of the privacy policy links are broken, returning HTTP 404 Not Found. Does Apple App Store review even look at the privacy policies?

[…]

I don’t know whether this surfeit of YouTube apps was the product of multiple developers acting independently or one developer hiding behind multiple Apple accounts, an App Store scam that I’ve seen before. I’ve never heard of any of these developers, and I doubt that you have either, not even AdBlocker LLC, the developer of App for YouTube ℠, who is not to be confused with Adblock Inc, the developer of AdBlock, who is to be confused with Eyeo GmbH, the developer of Adblock Plus, who acquired Adblock Inc in 2021. Got that? In any case, many duplicate app names with random symbols at the end is clearly a perverse experience for App Store users, and Apple’s so-called curation is primarily to blame. Moreover, almost all of these apps have pricey subscriptions, another App Store red flag that I’ve discussed before.

Previously:

Google’s Intelligent Search Box

Sarah Perez (Hacker News):

The era of the “ten blue links” is officially over.

At its Google I/O conference on Tuesday, Google unveiled an AI-powered overhaul of Search centered around a reimagined “intelligent search box” — what the company describes as the biggest change to this entry point to the web since the search box debuted more than 25 years ago.

Instead of returning a simple list of links, Google Search will drop users into AI-powered interactive experiences at times. Google is also introducing tools that can dispatch “information agents” to gather information on a user’s behalf, along with tools that let users build personalized mini apps tailored to their needs.

[…]

While Google says that AI Mode is not the default experience, Search’s user interface encourages users to ask follow-up questions instead of scrolling down to the links to other pages.

John Gruber:

Odd, to me, to paint this only in terms of user convenience (ostensible user convenience at that), and not in terms of this being a de facto attack on Zillow and the rest of the web.

Nilay Patel (2024):

There’s a theory I’ve had for a long time that I’ve been calling “Google Zero” — my name for that moment when Google Search simply stops sending traffic outside of its search engine to third-party websites.

Amanda Silberling (Hacker News):

On Google’s video announcing the Search updates, one commenter wrote, “this is the best advertisement for letting people know it’s time to get a different search engine.”

[…]

If you’re curious about alternative search engines, you’re in the right place. Here are some places to start (or, embrace chaos and see where Open Web Engine takes you).

Previously:

Update (2026-05-27): Jess Kinghorn (Hacker News):

DuckDuckGo has been one major winner of this Google Search abandonment. Just for a start, visits to its AI-free search page noai.duckduckgo.com between May 20 to May 25 are said to have increased by 22.7% on average week-on-week, with the figures peaking May 24 at 27.7%.

The DuckDuckGo mobile app saw installs spike in the US by 18.1% on average compared to the previous week. TechCrunch reported this growth was sustained over six days, peaking at 30.5% on May 25.

Friday, May 22, 2026

Apple Asks Supreme Court to Review Epic Ruling

Marcus Mendes:

Apple today filed a request with the Supreme Court in an attempt to reverse key lower court rulings over the App Store injunction in its long-running legal battle with Epic Games.

[…]

In its petition, Apple is asking the Supreme Court to review two questions.

The first is whether Apple should have been held in contempt for charging a commission on purchases made outside the App Store.

The second is about the scope of the injunction.

Sarah Perez:

“Epic never brought a class action and never attempted to show that enjoining Apple’s conduct against all other developers — like Microsoft or Spotify, who have nothing to do with Epic — was somehow necessary to provide relief to Epic,” reads Apple’s new petition, which asks the U.S. Supreme Court to review the lower court ruling.

In the same document, Apple also argues against the Ninth Circuit’s civil contempt order over Apple’s compliance with the injunction. The court had ruled that Apple must give developers the right to include links in their apps — links that could direct users to alternative payment options outside of Apple’s own system — if they chose to do so. Apple did permit this as required, but charged fees on those outside purchases, leading to the contempt order.

John Gruber:

Apple’s argument here is that only the letter of the law matters, and the letter of the injunction did not say anything about charging commissions on external payments, and thus they can’t be held in contempt for violating something that was never spelled out explicitly.

Wesley Hilliard:

If Apple wins the “in spirit” portion of its arguments, Apple gets to carry on with its previous 12% and 27% commission rates for external linking. It would also mean proceedings in the lower courts would return to appeals stages.

Juli Clover:

Epic Games and Apple agreed to an expedited schedule and Apple’s petition will be considered on June 25. Apple expects a decision on whether the Supreme Court will hear the case by the time the justices recess for the summer in late June or early July.

Previously:

Stats Visualization in Apple Sports

John Gruber:

I’ve got some gripes about certain specific aspects of Apple Sports. Like, where does one even start to explain how much is wrong with their zero-sum visualization of team stats? Has anyone ever even seen a presentation like that before?

It has to be seen to be believed. What on earth were they thinking?

Still kind of curious that Apple Sports remains iPhone-only — not even an iPad version — but in a way I find that charming too. Maybe Apple is tight on money?

Kieran Healy:

John is right to call the picture a “Zero Sum” representation. The design strongly suggests to the viewer that, within each row, we’re looking at each team’s share of a total. Each pair of black and blue lines seem to be vying for control of their whole row, with the longest line being the “winner” in each case.

[…]

Literally none of the measures in the Basketball data above are zero-sum in this way. Both teams could shoot 100% from the free throw line, or zero percent. But because the first three measures shown are percentages, this reinforces the zero-sum impression given by the lines. It certainly did that in my case. But then, starting with Assists, the remaining rows are just absolute numbers. When I started looking at the absolute numbers, I got confused a second time by the length of the lines. “Oh so it’s not a share, it’s the value” I thought—but no, they do correspond in terms of relative proportions to the teams share within each row. But they’re not really shares they’re just magnitudes. But they have to be shown in a fixed space and we want to make them relatively comparable somehow so … Argh.

Apple’s software design right now seems to love uniformity. Throw a bunch of disparate statistics—or system settings—in a big list. It looks superficially clean and is easy to code. It seems like there’s a chart that’s illuminating the results, but it’s actually worse than a traditional text-only box score. The numbers that you most want to compare are placed maximally far apart. It’s like reading a table of contents with dual-colored dot leaders, but of course in a table of contents you aren’t meant to be reading all the page numbers.

Our fundamental problem is that we just have two cases (the teams) and fifteen different measures, or variables. Each variable, except for the three percentages, is in effect on its own scale. There’s no direct way to make comparisons across them.

John Gruber:

The problem is further complicated by the fact that Apple Sports shows the same screen for all sports, just with different sport-specific stats. I think the solution is to just present these numbers in a table. Yes, tables are boring. But they’re not confusing. What Apple Sports is doing, in an attempt not to be boring, is confusing.

Previously:

Cleve Moler, RIP

MathWorks (Hacker News, Reddit):

Cleve was chief mathematician and cofounder of MathWorks and the author of the first version of MATLAB.

In his early years, he was a professor of math and computer science for almost 20 years at the University of Michigan, Stanford University, and the University of New Mexico. During this time he was known for being one of the authors of LINPACK and EISPACK, two foundational Fortran libraries for numerical computing. One popular paper of his is “Nineteen Dubious Ways to Compute the Exponential of a Matrix.”

He is coauthor of three traditional textbooks on numerical methods and author of two online books,  Numerical Computing with MATLAB and Experiments with MATLAB.

Wikipedia:

Before joining MathWorks full-time in 1989, he also worked for Intel Hypercube, where he coined the term “embarrassingly parallel”, and Ardent Computer Corporation.

Thursday, May 21, 2026

Steve Jobs in Exile

Geoffrey Cain (Amazon):

Drawing on previously unpublished materials and new interviews with the key players, Geoffrey Cain reveals the untold story of Steve Jobs’s “lost decade”—the formative years that shaped the icon we thought we knew.

With unprecedented access to unbroadcast footage of Jobs in NeXT meetings, private company documents, and interviews with his closest colleagues, Cain offers the definitive account of how failure transformed a brash wunderkind into a true business genius.

John Gruber:

And via Cain’s post on LinkedIn announcing the book, the foreword is by NeXT cofounder Dan’l Lewin.

Joe Cieplinski:

Back in 2013, I suggested the story of Steve Jobs would best be told as a 5-act opera, with the most crucial part of the story being Act III.

Steve Hayman:

Jobs left Apple in 1985, founded NeXT, hired me, bought Pixar, and came back to Apple in 1996 at its historic low point, when Apple was near-death, and orchestrated the turnaround we’ve all heard about.

I’ve bought most of the Steve Jobs books, and seen the movies, but they all seem to treat the NeXT years as an afterthought rather than a transformational time. Sure, the NeXT hardware didn’t sell well but the software set the stage for everything Apple makes today.

Geoffrey Cain:

Today is launch day for Steve Jobs in Exile. I spent almost four years digging into Steve’s stretch in the wilderness -- 1985 to 1997, after Apple pushed him out and before it brought him back.

I expected the record to be complete. What more could there be on the most written-about entrepreneur alive? I was wrong. An archivist at Carnegie Mellon told me I was the first person in about fifteen years to open the NeXT archive. People had been holding letters, tapes, memos, recordings in their closets for decades, waiting to show someone. More than a hundred of them sat down with me.

He did a Reddit AMA.

Jason Snell:

It’s a surprising and sometimes gruesome (in a businessy way) story that does not show off the famous man at the center of the story as much as depict all the ways he failed in what turned out to be preparation for his career-defining role as Apple CEO. (I also got to interview Cain about the book this week on Upgrade.)

[…]

The computer that NeXT ended up building didn’t satisfy the requirements of those original higher-ed buyers who were the target market. Jobs had followed his bliss, and his good taste, in interesting directions. NeXT made an interesting product. But the product failed at being a successful product, just as NeXT kept failing at business.

And it just keeps happening, as the book details. Early investor and Jobs believer H. Ross Perot (yes, the former independent presidential candidate!) had ties in the government that would’ve allowed NeXT to sell computers to America’s intelligence agencies, primarily for spy-satellite image analysis. Jobs refused the lifeline, saying he didn’t want to do business with the government.

A deal with IBM had the potential for NeXT’s operating system to take the ecological niche of Microsoft Windows before it had been firmly established on the world’s PCs. Jobs decided he was uncomfortable working with IBM.

See also: Becoming Steve Jobs.

Previously:

Update (2026-05-29): Steve Hayman:

The book has tons of great stories and behind the scenes info; I certainly recognized a lot of the names, but many of the tales were new to me.

Update (2026-06-08): Marcin Wichary:

I do not see this as a book of new immense insight, technical depth, or design details, but that doesn’t mean it doesn’t go beyond surface level. What I appreciated most was Cain not shying away from pointing at some of Steve Jobs’s mistakes: hiring wrong people he happened to like, almost driving the company to the ground through obstinance, inability to focus on things he considered uninteresting, and a profound dose of duplicity coming into the NeXT/​Apple merger.

Other things that stood out: focus on people around Jobs, spotlight on Jobs’s disappointing moral flexibility around working with government (or befriending Larry Ellison, for that matter), and a really fun pizza ordering story that serves as a prelude to the Starbucks call during the iPhone 2007 keynote.

Leaving CloudKit

César Pinto Castillo:

CloudKit is one of the best-kept secrets in the Apple platform stack. For years it has quietly powered sync, storage, and sharing for our apps — for free, with zero servers to run, and with end-to-end encryption we didn’t have to design ourselves. And yet, we’re moving off it.

[…]

When a user’s data won’t sync, we have no view into what happened on Apple’s side. We’ve spent years bolting telemetry onto NSPersistentCloudKitContainer.eventChangedNotification just to find out why a save failed — and even with that, we’re guessing from client-side error codes. There are no server logs we can pull, no admin view into the user’s zone.

[…]

CloudKit is supposed to “just work” across Apple platforms. In practice every target has been its own debugging project: macOS only synced on app restart for a while, Apple Watch silently stopped syncing because a user hadn’t accepted a new iCloud ToS — a failure mode we couldn’t even surface to them — and one of our entitlement bugs was reported to us by Apple. AppleTV sync is still flaky in user reports today.

[…]

iCloud signed-out, iCloud full, family-sharing edge cases — CloudKit hands all of this to the client. We’ve built distinct account-state UI for iOS, macOS, watchOS, tvOS, and visionOS, with localizations for each. “Warn the user when their iCloud is full” has been an open ticket of ours since 2025 because we can’t reliably detect it.

Via Fatbobman:

[For] small teams, CloudKit offers an almost unbelievable combination of features[…] But as their product evolved, CloudKit’s limitations became increasingly apparent[…] and most importantly, the inability to truly expand toward the Web and cross-platform ecosystems. Eventually, César’s team migrated to a Supabase/Postgres-based synchronization architecture.

Previously:

Update (2026-06-04): Fatbobman:

Many developers, after integrating CloudKit synchronization with Core Data or SwiftData, encounter a confusing phenomenon: The app synchronizes perfectly across multiple devices, yet when querying Records in the Apple Developer CloudKit Console, it shows “No Records Found” or a completely blank list.

[…]

To resolve this, you need to manually add indexes in the CloudKit Dashboard.

Patrick McConnell:

Sometimes you will mess up the magic. Perhaps you add a record or field to a Model class then remove it. The Schema may become confused and your app may have errors or crash. You can go into the CloudKit console and reset the environment at any point and the current Production Schema will be copied into the Development environment. If you are seeing odd issues with your app revolving around SwiftData or CloudKit feel free to nuke that environment and start over. The next time you run the app in Xcode/Simulator the Schema will be updated to match your actual code. Tip number one is nuke the Development environment and nuke often. Don’t spend hours trying to figure out some strange CloudKit error only to find out at the end that you got your Schema all mixed up.

[…]

In my case what appears to happen is the migration goes fine, the app launches and works as expected with all my new features and shiny new model updates. Until you fully close the app and relaunch. Then SwiftData acts like it’s never seen this data before and is very offended. Boom. FatalError.

Lawsuits Claim OpenAI and Perplexity Shared User Data for Advertising

Madeline Batt:

The lawsuit targeted generative AI company Perplexity, along with Meta and Google, alleging they disclosed transcripts of users’ conversations with chatbots for targeted advertising. The case highlighted a burgeoning monetization strategy for the AI industry to solve generative AI’s profitability problem with a function the technology has proven especially adept at: collecting intimate information about users. Coming a few months after announcements from Meta and OpenAI that they would use data from AI products to target ads, the action and its voluntary dismissal leave the viability of legal challenges to ad-based monetization strategies unresolved.

Maggie Harrison Dupré:

A new class action lawsuit accuses OpenAI of sharing data including user chat queries and personal identifying information like emails and user IDs with the tech giants — and targeted advertising behemoths — Meta and Google, without obtaining proper user consent.

Filed yesterday in California, the lawsuit claims that OpenAI’s data-sharing with Google and Meta violates the California Invasion of Privacy Act, known as CIPA, as well as the Electronic Communications Privacy Act. It points specifically to OpenAI’s integrations with Meta Pixel and Google Analytics, which are data-tracking and collection tools that facilitate targeted advertisements.

Via Nick Heer:

Interestingly, the Office of the Privacy Commissioner of Canada recently concluded an investigation of OpenAI’s training on personal information and whether it can produce that information reliably. It seems to me like questions about third-party ad targeting were out of scope. This is notable, however:

OpenAI represented that ‘untraining’ or ‘reverse-training’ LLMs, so that they no longer use or generate specific personal information for which a deletion request has been submitted, is not currently feasible.

[…]

It is not even clear OpenAI, for example, ensures data in its collection remains in compliance with opt-out requests when training new models.

Previously:

Taphouse 1.5

Multimodal Solutions:

Install, update, and clean up your brew packages from a quiet Mac‑native app. 14,000+ formulae and casks — no terminal required.

[…]

Browse and search through thousands of Homebrew packages with an intuitive visual interface. No more memorizing package names.

[…]

Install or remove any package with a single click.

[…]

See all outdated packages at a glance. Update individually, in bulk, or select specific ones to upgrade together.

[…]

See how much space each package uses. Clean up old versions, cache, and unused dependencies to reclaim disk space.

[…]

Taphouse cross‑references every package you’ve installed against published CVEs. Severity, fix versions, source links — and a one‑click upgrade for the ones that matter.

There’s an impressive set of features that seem to be very easy to use. It’s much better than the command-line or Electron, but it’s a SwiftUI app and various things look and feel a little off. There’s no File menu. The Settings window and sheets are scrollable but can’t be resized.

The core functionality is free. Paying €9.99 unlocks a long list of Pro features: bulk operations, favorites, tags, history, a menu bar icon, background updates, import/export, and managing apps that were directly downloaded, purchased from the Mac App Store, and that update via Sparkle.

See also: Cork (fewer features), Applite (focused on apps), Homebrew Formulae (web list of apps).

Previously:

Update (2026-05-22): The developer fixed some of the issues in a quick 1.5.1.8 update.

See also: Mac Power Users.

Wednesday, May 20, 2026

Inkwell Rejected From the App Store

Manton Reece:

I submitted Inkwell for iOS to Apple for review on April 21st. It has gone through numerous rejections, code changes, resubmissions, clarifications, one phone call, and one appeal to the review board, which I’m still waiting to hear back on.

[…]

The app didn’t have a way to report objectionable content or block users. This rejection was bizarre to me since it’s an RSS reader where people choose to follow users.

[…]

The app doesn’t use in-app purchase so that Apple can take a percentage of Micro.blog revenue. I streamlined the app by removing creation features such as posting and highlighting, removed sign-up and external links, and even removed the app from all storefronts except the US, where there are different rules thanks to Epic vs. Apple. I believe it should now qualify under either 3.1.3(a) “reader apps” or 3.1.3(f) “stand-alone companion apps”.

[…]

Apple’s [Jaguar-era] Inkwell branding was short-lived, and the trademark is now listed as “dead” by the US Patent & Trademark Office. Yet the name still appears on Apple’s trademark page. This is what the reviewer found and objected to, even though other Inkwell apps have been approved without issue.

John Brayton:

Dealing with the App Store is the worst part of developing for Apple platforms.

Apple:

As powerful AI development tools drive a surge in app submissions, Apple’s App Review process has seamlessly scaled to handle the volume and to help ensure every new app and app update meets the App Store’s high standards for privacy, security, and quality.

Tyler Hall:

Apple keeps emailing me about WWDC when all I want them to do is email me about reviewing my Mac app.

Previously:

Update (2026-05-22): Jason Anthony Guy:

Apple loves its big numbers, and its execs will happily hawk them when it’s to their benefit. But what about the flip side? How about reporting the number of legitimate developers rejected for inane reasons? Should those rejections really be promoted as part of some great achievement? Apple’s proud of the “306,000 new developers” it’s welcomed to the platform, but how many saw their apps deplatformed? Apple brags about how many fraudulent apps get blocked; what about the egregious approvals?

Come to think of it, is Apple really patting itself on the back for finally taking down apps everyone but Apple knew were fraudulent from the jump? Is Apple counting those as both approvals and rejections? My mind boggles.

Radu Dutzan (via Nick Heer):

@doppi for Mac has been stuck there for two weeks. First of all, it takes them at least five full calendar days to review a Mac app. Deplorable.

But not just that, they’ve rejected the app twice, and for the dumbest shit. The second time, they cited one of the same reasons I had already explained, making me feel like it’s worthless to spend any effort trying to treat the process as rational.

Manton Reece:

After a full month of Apple rejections, the iOS version of Inkwell has been approved.

[…]

I care a lot about the names of things. In the App Store, Micro.blog is called simply… “Micro.blog”. No gimmicky taglines appended to the name. So it was a little painful that as a last resort, I’ve decided to temporarily rename the Inkwell app to “Ink•well for Micro.blog”. Yes, with a bullet character in the middle of the word.

I tried a few other renames before that, keeping Inkwell spelled correctly but shuffling it around with other words. “Ink•well” is the only name that Apple approved.

[…]

To more narrowly make the case for Inkwell approval under review guidelines section 3.1.3, I’ve also removed two features from the app[…] These are important parts of Inkwell that exist on Android, macOS, and the web.

Hijacking Apps Using Archive Utility

Talal Haj Bakry and Tommy Mysk (Mastodon):

Until macOS 26.4, Archive Utility had nearly unrestricted filesystem access. Combined with a drag-and-drop sandbox quirk, this let an attacker bypass App Sandbox data containers, Transparency, Consent, and Control (TCC) protections, and hijack third-party apps — all without special permissions or elevated privileges.

[…]

Here’s one interesting aspect of the macOS app sandbox: dragging and dropping a file or folder onto an application grants it unrestricted access to the dropped item. This is by design. Without it, apps couldn’t access files dragged from protected locations like ~/Desktop or ~/Documents, and drag and drop wouldn’t work in sandboxed apps at all.

[…]

Knowing about the drag-and-drop loophole, an attacker can try to convince a user to drag and drop Archive Utility’s preferences file into Terminal, which lets them rewrite Archive Utility’s output folder. From there, copying a file out of an app data container is a two-step move: compress the target file inside a protected area, then extract the archive into a folder the attacker controls.

[…]

Code signing should have prevented this kind of tampering with the application bundle, but for some reason macOS didn’t complain. We would like to investigate this further.

Previously:

Core Data Lab 3.0

Ron Elemans:

Despite all that, we have done our best to embrace and implement the concepts of the Liquid Glass design in Core Data Lab 3.0, although with a few tweaks here and there to improve the contrast in especially dialogs.

[…]

Identifying rows in data often depends on attributes with names like ‘identifier’, ‘title’ or ’name’, which not seldom requires scrolling or adjusting the column configuration to make them visible. With ‘Favorite attributes’ you can configure default attribute names that are automatically placed in front or on top of other attributes.

[…]

With the new ‘Favorite content’ setting, you can determine which attribute is shown first, and which other attributes must be shown on top of the said dropdown list.

[…]

You can add multiple diagrams to a project, and it’s easy to center each diagram around a few entities by excluding unrelated entities. The design is heavily inspired by the ‘graph style’ editor of the data model designer tool in Xcode 13 and older[…]

Also, you can now see relationships when opening an object in a separate window, and searching now supports the Matches and Like operations. It’s a free update.

Previously:

Updating Shared Shortcuts

Manuel Grabowski:

No actual concept of versioning or upgrades for shared shortcuts. Sharing shortcuts happens via weird iCloud URLs rather than being an actual aspect of the system. So to update a shortcut, do you just add it again? No indication of what that will do before you press the button. Will it error out? Will it create a duplicate? Will it update/replace the existing one?

[…]

Of course this Playmobil-ass UI doesn’t show anything that would be remotely useful for serious people. Imagine wanting to sort your shortcuts by date or see the last modification date, like some rocket scientist.

Needless to say, there’s no version control or diffing, either. There’s so much stuff that apps can get for free if they use the file system instead of opaque storage. Bypassing it in the name of simplicity makes some things easier but blocks a long tail of possibilities—as well as basic stuff like sorting, if the app doesn’t provide it.

Previously:

Update (2026-05-25): Mike Rockwell:

Apple Shortcuts is such a mess that I’ve actually implemented my own backup system for my shortcuts. That way, if anything goes wrong — and it has several times in the past — I have a weekly backup that I can restore from.

Apple vs. Indian Antitrust Regulator

Juli Clover (Slashdot):

Apple is fighting an antitrust penalty law in India that could require it to pay massive fines in its ongoing antitrust dispute with Tinder owner Match, reports Reuters.

Last year, India passed a law that allows the Competition Commission of India (CCI) to use global turnover when calculating penalties imposed on companies for abusing market dominance. Apple can be fined up to 10 percent, which would result in a penalty of around $38 billion. Apple said that using global turnover would result in a fine that’s “manifestly arbitrary, unconstitutional, grossly disproportionate, and unjust.”

Jackson Chen:

Apple’s refusal to provide financial data to an Indian regulatory agency as part of an antitrust case will culminate in a final hearing on May 21, as first reported by Reuters.

Hartley Charlton:

The Delhi High Court ruling keeps a probe by the Competition Commission of India (CCI) alive, which found in 2024 that Apple had abused its dominant position in the iPhone apps market. The CCI wants Apple's financial data to calculate potential penalties, but Apple has refused to hand it over so far.

Previously:

Update (2026-06-03): Hartley Charlton:

Apple has agreed to hand over financial data to India’s competition regulator, in a move that could bring a years-long antitrust case significantly closer to a penalty decision.

Tuesday, May 19, 2026

Apple’s 2026 Accessibility Feature Preview

Hartley Charlton (Hacker News):

Apple today announced a suite of accessibility updates that use Apple Intelligence to expand capabilities across VoiceOver, Magnifier, Voice Control, and Accessibility Reader, with additional new features for generated subtitles and wheelchair control via Apple Vision Pro.

Shelly Brisbin:

With updates to live recognition, VoiceOver users can press the iPhone action button to quickly ask a question about what’s in the camera viewfinder and get a detailed response. Users can also ask follow-up questions in their own words to get more visual information. These question features resemble what’s available to users of the Be My Eyes app’s Be My AI feature, but it’s unclear whether Apple’s offerings will go further.

[…]

Voice Control is set to get an Apple Intelligence boost, giving users the ability to describe an element onscreen they want to act on, instead of using a numbered grid, or remembering an item’s label. The natural language support should also allow Voice Control users to navigate apps or elements that aren’t labeled for the feature.

Previously:

How Fake Contacts Can Fix Dictation’s Proper Noun Problems

Adam Engst:

Apple doesn’t provide a user-editable list where you can add special words, but there is a back-door way to train Dictation—on all your Apple devices—to work more the way you prefer: through the Contacts app.

[…]

Regardless of the number of words in the name or phrase, I put them all in the First Name field, with the hear-no-evil monkey 🙉 emoji in the Last Name field. That way, these spurious contacts sort to the very bottom of Contacts and don’t clutter the display. I also add them to a Proper Noun-Contacts list (mentally removing the “u” amuses me).

[…]

Dictation picks up some of these entries quickly, such that you don’t have to do anything more. However, in other cases, it requires more training.

[…]

Inserting a zero-width space in the middle of the word did indeed prevent Dictation from recognizing it. Unfortunately, the zero-width space also gets in the way of searching on the full name, so it’s best to put it as far back in the word as possible.

Fantastical at 15

Flexibits:

So, grab a slice of virtual cake and join us on a trip down memory lane as we look back at how far Fantastical (and Flexibits) has come!

Still one of my favorite apps, though I don’t use most of the advanced features.

Previously:

Fortnite Returns to the App Store Except in Australia

Hartley Charlton:

Fortnite is back on the App Store in every country except Australia, Epic Games announced today, as the company declared it is entering the “final battle” of its long-running legal dispute with Apple.

Epic said the decision to push Fortnite back onto iOS globally was prompted by Apple’s own words to the U.S. Supreme Court, in which Apple acknowledged that “regulators around the world are watching this case to determine what commission rate Apple may charge on covered purchases in huge markets outside the United States.” Epic CEO Tim Sweeney framed the move as a strategic provocation, writing on X that the return marks “the beginning of the end of the Apple Tax worldwide.”

[…]

Epic said it won its court case there and that an Australian court found many of Apple’s developer terms to be unlawful, but Apple continues to enforce those terms regardless. Epic said it cannot return “under an illegal payment arrangement” and is waiting for a court order to compel Apple to comply.

Previously:

Kickstart 1.0

Paul Hudson (Mastodon, Twitter):

It’s called Kickstart, and it has only one job: to help indie developers make more money on the App Store.

Instead of juggling spreadsheets, launch docs, analytics dashboards, review tools, and half-finished marketing plans, Kickstart gives you one focused workspace for launch, growth, and iteration.

[…]

Kickstart helps turn all those disconnected responsibilities into clear, manageable next steps. So, instead of wondering what to focus on next, Kickstart gives you practical day-by-day tasks that help move your app forward, and then helps you complete those tasks right inside the app.

Previously: