❌

Reading view

TestFlight Sort Order

Zac Hall (July):

Apple just updated TestFlight for iPhone, iPad, Mac, and more. The new version, 4.3, introduces “a search field to quickly find apps.”

John Gruber:

But when Apple implemented this change, they also changed the sort order of the list of apps you’re registered to test. Starting with this update, the list is sorted in alphabetical order. For as long as I can remember — perhaps dating back to when TestFlight was a third-party utility — the list was ordered by recency. The most recently updated app was at the top; the oldest at the bottom. Sorting by recency is really the only sort order that makes sense when you’re registered for dozens (or more) of apps. For me, trying to see if there is an update to a new app whose name starts with U now requires scrolling through over 100 items.

[…]

Also, if I consider the broader view, this really speaks to how much we’ve lost in terms of UI vocabulary. For decades, any list of items with names and dates could be sorted by name or date, ascending or descending, through the standard use of clickable headers at the top of every list. This was true for almost any such list in any app, on any platform — Mac, Windows, Unix, Amiga, whatever. This was just basic GUI stuff.

[…]

iOS in 2007 introduced a simplified UI vocabulary that omitted many of these baseline GUI features. That seemed like a reasonable trade-off for a device with a 3.5-inch display and fat fingers as the only input device. But then iOS became popular and Apple stopped bringing the richer UI vocabulary of the Mac to iOS[…]

And it starting bringing iOS limitations to the Mac.

It certainly shouldn’t have taken until July 2026 to be able to search in TestFlight, either. And being able to search, and see the results sorted alphabetically, shouldn’t mean you can no longer view the full list sorted by recency.

John Gruber:

Whatever is going on with this sort order, it isn’t affecting everyone. John Siracusa, amongst many others, has the same problem I do — his list is now alphabetical, and it’s driving him nuts too. Ryan Booker, amongst many others, still has his list sorted by recency.

John Gruber (September):

For both of us, yesterday’s v4.3.1 update fixes the bug.

But there should still be more sort options.

Previously:

Update (2026-09-16): John Voorhees:

Returning to reverse chronological order may seem like a small thing, but it’s made a world of difference in keeping up with the apps I test.

Search was near the top of my list of TestFlight wishes for years, and its addition made a meaningful difference to the app’s usability. But I’ve had a lot of TestFlight wishes over the years that are scattered across multiple articles, so I thought I’d share what else I’d like Apple to tackle with TestFlight[…]

  •  

Asahi Linux Supports M3 Macs

James Calligeros (Hacker News, Phoronix):

Asahi Linux now officially supports Macs with an M3 series SoC!

Linux support for M3 series SoCs and the machines powered by them is now in a state where almost everything supported on the M1 and M2 series machines just works. This includes the webcam, internal microphones, USB (up to the hardware limit of USB 3 10 Gb/s), hardware accelerated video decoding including support for AV1, WiFi, Bluetooth, and much more! The only major exceptions remain full DCP support and the GPU, which we will have more news on in the coming months.

[…]

Sleep currently does not work due to limitations with the firmware-provided framebuffer. This will be addressed once full DCP support is wired up for M3.

[…]

Although MacBooks and iMacs are supported (M3, M3 Pro and M3 Max), the Mac Studio (M3 Ultra) is not yet supported.

Previously:

  •  

NSToolbar in Golden Gate

John Brayton:

NSTrackingSeparatorToolbarItem adds a white band over the top of the leading split view panes when in full screen mode on macOS 27 [beta 3]. That white band appears to have the height of the toolbar.

He says this was fixed in Beta 4.

John Brayton:

macOS 27 developer beta 5 (26A5406e) introduces a bug that causes a white bar to appear over window content if the window’s toolbar has an NSTrackingSeparatorToolbarItem. I filed FB24266969 with Apple describing this.

Steve Troughton-Smith:

NSSearchToolbarItem has been screwed last minute in Catalyst with less than a month to go? Cool, cool…

That’s the kind of thing that can halt my release plans entirely 🫠

Ron Elemans:

Also screwed up in AppKit, with the macOS 27 beta 5 release.

Also, the titlebarSeparatorStyle setting seems to be ignored. Toolbars in beta 5 always have a separator line and a blurred slightly lighter background.

Weirdly enough Apple’s own apps don’t have these issues.

John Brayton:

In macOS 27 developer beta 5, search fields in toolbars (NSSearchToolbarItem instances) have their placeholder text, search strings, and magnifying glass icons vertically off-center. I reported this as FB24286690.

Mario Guzmán:

Beta 6 also fixes the UI issues with NSSearchToolbarItem. Elements are now re-aligned again, the recents menu is in a good position, and the focus ring is perfectly outlining the entire bounds. :D

Previously:

  •  

SwiftUI Toolbars

Natalia Panferova:

I thought it would be useful to have a single reference for the different ways we can style the toolbar in SwiftUI on macOS 26.

Phil Zakharchenko:

The toolbar id creates a stable customization domain, and each item id gives the framework something stable to persist when the user adds, removes, or reorders controls. This identifiability of toolbar items is a requirement for customization. Under the hood, when SwiftUI inevitably bridges your toolbar contents to NSToolbar, these identifiers will be directly translated to the NSToolbarItem’s itemIdentifiers.

As we continue the migration to a customizable toolbar, we are likely to encounter a few surprises related to this model.

[…]

After a closer inspection, and perhaps a few minutes of digging through the documentation, we come to the bleak realization: there is no customizable ToolbarItemGroup API.

[…]

The regular toolbar model and the customizable toolbar model overlap, but they are not interchangeable. You cannot give a ToolbarItemGroup an id, and you cannot place one directly inside toolbar(id:content:).

Majid Jabrayilov:

Let’s take a look at another example. This one is a bit tricky, because on macOS, you will get Action 1 in the top trailing position and the whole group of actions centered in the navigation bar. On iOS, you will get Action 1 pinned to trailing and all other items collapsed.

[…]

The final addition to the Toolbar API is the toolbarMinimizeBehavior view modifier allowing us to minimize toolbars while scrolling up or down. You can minimize tab, bottom, window and navigation bars with it.

With new modifiers SwiftUI gives us a much better balance between system-driven adaptation and explicit control. We can now decide which actions are more important, which items should always stay visible, which groups should intentionally live in the overflow menu, and how toolbars should react to scrolling.

Natalia Panferova:

iOS 27 includes a few smaller additions that make toolbar content easier to configure.

We can remove the default padding around an item whose content should extend to its edges with contentMarginsRemoved(_:)[…]

[…]

The status bar is now represented by ToolbarPlacement.statusBar, so its visibility can be controlled through the same toolbar API as other bars[…]

[…]

ForEach now conforms to ToolbarContent, which means we can generate toolbar items directly from a collection[…]

Natascha Fadeeva:

Together, the toolbar APIs let us express the importance of each action while SwiftUI continues to handle the toolbar’s layout across different sizes.

Previously:

  •  

McKinley 1.0

Amy Worrall (Mastodon):

McKinley is an all-in-one studio for drawing and annotating SF Symbols. It bundles vector tools with knowledge of the SF Symbols structure, so you can edit one set of objects across multiple weights, sizes and colours. Import SVG or start from scratch, live preview your work using Apple’s own renderer, and export directly to Xcode, so you never need touch the SF Symbols app again!

[…]

Gone are the days of converting your strokes and shapes to outlined paths before export. Keep everything how you drew it, and let McKinley handle the output.

[…]

Link your project’s asset catalog to your McKinley document. Then when you make a change, hit the Sync keyboard shortcut and it’s immediately populated with your latest version.

[…]

McKinley is a Mac-assed Mac app: a native AppKit UI, Quick Look previews and thumbnails for your documents, a full AppleScript dictionary for batch work, and the whole user guide offline in Help.

$60, no subscription. It’s been a while since I had to deal with custom SF Symbols, but I remember it being a major pain. I haven’t had the chance to try McKinley with a real project yet, but it looks very well done. I love seeing a new app ship with documentation and extensive AppleScript support, including sample scripts that you can install right from its script menu.

Mario Guzmán:

The icon isn’t just a symbol but a whole artistic creation on a canvas.

Look at how your tools are on panels that could be individually opened on their own auxiliary window. I can’t stand the single-window, everything buried into a single-sidebar design we get these days.

Amy Worrall:

SF Symbols rendering does a surprising amount behind your back: it interpolates nine weights from three masters, applies optical size adjustments, resolves hierarchical opacity ladders, and changes some of this between OS releases. Any preview I rendered myself might diverge from the real thing in ways nobody would notice until the symbol was in an app looking subtly wrong. (Obviously I aim to get my canvas rendering with the exact same nuance as Apple’s renderer, but programmers are fallible and the fewer ways things can diverge, the better.)

Apple provides no API for “here’s my SVG, render it as a symbol”. For a normal app using a custom SF Symbol, the symbol is compiled from an Asset Catalog in Xcode into a .car file (a compiled asset catalog) at build time. But there’s no ‘build time’ when I want to update a preview in McKinley.

My workaround involves compiling your symbol into a .car file at runtime, on every edit, by patching bytes into a template, then loading that temporary .car file into McKinley via NSBundle.

Previously:

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

I mean just look at McKinley. It’s both beautiful and quite obviously a serious professional tool.

Update (2026-09-11): Amy Worrall:

Anyone used any great implementations of dockable palettes? (Adobe’s don’t count, I don’t think they’re great!)

I’m not going to go back to sidebars, but some kind of options/flexibility might work, if it doesn’t get in the way!

  •  

Ternus and the App Store

Mark Gurman (tweet, John Gruber, Mastodon, 9To5Mac):

The Schiller exit is a bit more notable. Unlike Maestri, he still had a real job: The veteran executive ran the App Store and Apple Events. The App Store portion alone is no joke. It generates an estimated $30 billion a year and can be very challenging to manage. Apple’s app marketplace is loved by many consumers, but often criticized by developers and subjected to increasingly onerous regulations. It was a busy, all-encompassing gig and nowhere near a semiretirement.

[…]

But there’s a bit more to the story, I’m told. Ternus and services chief Eddy Cue want to make even more money from the App Store and figure out ways to raise margins and squeeze additional recurring revenue from the platform. Schiller, on the other hand, seems to believe that such moves will only further irk developers and governments. While there was no internal blowup or anything like that, it’s something he wanted no part of.

“Product guy” dreams about margins, forgets that people buy Apple hardware because of the software.

Tim Hardwick:

Apple admitted during its July earnings call that regulatory changes have started to weigh on its Services growth. Apple reported services revenue of $30.7 billion for the June quarter, a record for the period but short of the $31.4 billion that analysts expected.

Patrick Smith:

The hardware guys treating third-party developers like they do their suppliers has stifled Apple’s software platforms

M.G. Siegler:

I thought that perhaps with the move to John Ternus as CEO, it could also be an obvious time to revisit such policies. But I hadn’t considered that Apple could actually be in favor of making them more onerous.

See also: Mario Guzmán and Indie Simulator.

Previously:

  •  

Banktivity Document Model and Rewrite

Ian Gillespie (2025):

Banktivity has traditionally been what’s known as a document-based app. It lets you create and open independent files (or documents), each with its own data. In contrast, many modern apps—Music, Calendar, Photos—are library-based. These apps typically have a single window and a unified data set.

We’ve long appreciated the flexibility our document model provides. But in practice, most of our customers use only a single file. And more critically, this architecture makes it much harder to integrate Banktivity with the broader Apple ecosystem.

[…]

The shift from a document-based model to the new Organizer framework marks a major step forward for Banktivity. It simplifies how users interact with their data while laying the foundation for deeper system integration, background syncing, and a more seamless multi-device experience.

This follows MoneyWell also getting rid of the document model. From my perspective, it’s a shame. I prefer the flexibility of being able to have different accounts in different documents, choosing where to store the documents, and even splitting the same account across multiple documents for performance reasons.

Ian Gillespie (2025):

Ledgers contain an entire, independent set of accounts, categories, investments, goals, budget and so on. Many customers will only have one Ledger for the finances they manage. But we also know there is a good number of customers out there that manage finances across family members, non-profits and small businesses – for these customers, support for multiple Ledgers is crucial.

[…]

While UI is what you see, most of the hard work has been in the architecture. The Library framework — the backbone that replaces our old document system — is in place. That means we can now reliably connect your Banktivity User Account with all of your Ledgers, whether local or synced to the cloud.

Ian Gillespie:

Refactoring Banktivity from a document-based app into a library-style app was a significant undertaking. It changed some very fundamental assumptions in the code. Ledgers can now be opened and closed in the background, multiple windows and scenes can be active at once, and the Organizer has to coordinate local files, cloud sync, user accounts and application state in ways the old document architecture never had to.

Banktivity 10.0 laid the foundation for that transition. With Banktivity 10.1, a major focus has been strengthening that foundation. We’ve spent a lot of time simplifying the underlying architecture, eliminating race conditions and threading issues, and improving how ledgers are opened, closed and managed.

Previously:

  •  

.name Termination

Neil Fraser (via Hacker News):

Nearly twenty-five years ago I registered neil.fraser.name to provide a stable presence on the Internet. It has been the home of this website, my email address, and a server for APIs.

[…]

On 15 April 2026 Verisign proposed the destruction of the entire 3rd level of the ‘.name’ hierarchy in order to simplify their administration. Astonishingly, on 28 July 2026 ICANN approved this action.

[…]

One of my original reasons for choosing ‘.name’ was that it was run by Global Name Registry -- more specifically, it was not run by Verisign. I had history with Verisign and did not trust them. Unfortunately, Verisign acquired Global Name Registry a few years later.

He’s going to lose his site and e-mail address, and someone else could potentially register the domain and hijack his accounts.

Previously:

  •  

SoundSource Support Follow-Up

Chris Barajas:

To spread the word, we announced SoundSource 6 on our blog and sent a mass mailing to our customer list. We also took a more targeted approach, contacting both existing and potential customers who’d previously reached out to us with specific requests. We went back to those folks to let them know about the changes that would interest them most.

[…]

A real live person writes every email response our support team sends, and that human touch takes time. The process is helped along by text snippets, replies that we write once and then reuse and adapt to answer common questions.

[…]

To decide if an email should be sent to a customer, we checked Help Scout’s conversation history, as well as our own custom app for their order history. For example, if someone requested several features across different emails, we’d pick the one that was most impactful, then delete other drafts to avoid inundating them with multiple messages.

Previously:

  •  

UK App Tracking Transparency Lawsuit

Reuters:

Apple is facing a £2 billion ($2.7 billion) London lawsuit brought on behalf of app developers over its app ​tracking rules, with the iPhone maker accused of abusing its power to unfairly impose greater restrictions on third parties.

[…]

Lawyers bringing the new lawsuit ​against Apple, though, say the feature imposed stricter requirements on third-party app developers ​than on Apple’s own services, giving its advertising ecosystem a competitive advantage.

Via Ben Lovejoy:

The latest lawsuit has an interesting twist: it’s being brought by Ann Pope, who was previously a senior official with the regulator behind today’s case.

Kris Holt (Slashdot):

The company told Reuters it was “bound by the exact same requirements as all developers.”

However, regulators across Europe including in France, Italy and Poland have investigated ATT. Germany’s competition regulator, the Federal Cartel Office, last month determined that Apple was favoring its own apps over those from external developers.

Amy Worrall:

The EU is saying “you’re big enough that you have to treat your other business models like third parties” and Apple replies with “but we know we’re solid, so that makes no sense!”

Previously:

  •  

App Tracking Transparency Changes in Germany

Joe Rossignol (Hacker News):

Apple has agreed to make changes to its App Tracking Transparency feature in Germany, according to the country’s competition regulator.

[…]

In Germany, Apple has agreed to remove “possibly discouraging symbols and wording” from the App Tracking Transparency prompt, the regulator said. Apps will also be “given more scope to explain to users what significance personalized advertising has for their offering and their business model,” and the “freedom to combine the consent request required by Apple with the consent requests required under data protection law.”

Ben Lovejoy:

The FCO’s objection appears to be that Apple’s existing prompt is making app tracking sound scarier than it really is. The iPhone maker will make eight changes in order to address this – including removal of the word “track.”

Nick Heer:

The regulator helpfully offers an illustration of the differences between these prompts on the fourth page of its FAQs (PDF) about the case. There are many things they say could be deterrents in the App Tracking Transparency dialog, and I do not think Apple would deny that they are suggesting that users opt out of tracking. The definition of “tracking” Apple uses is self-serving, which would not matter so much if it did not also have a parallel desire to grow its advertising business.

[…]

A particularly damning finding in that comparison, to my eyes, is the way Apple puts “Ask App Not to Track” as the topmost button in the App Tracking Transparency dialog, but puts the option to “Turn Off Personalised Ads” at the bottom of it its own advertising prompt.

Previously:

  •  

Preparing to Update to Golden Gate

Howard Oakley:

As those new models start shipping on 22 September, the window for the first public release of Golden Gate has narrowed to 15-22 September, with greatest likelihood on the same day as the arrival of those new Macs.

[…]

At the same time as the release of Golden Gate, we should get Tahoe 26.7 and Sequoia 15.8, but it looks increasingly likely that the final version of Sonoma has been 14.8.9, released on 6 August.

Howard Oakley:

As we prepare to flee from the visual horrors of macOS Tahoe at last, this article is a reminder that it wasn’t the first major release of macOS that has had blatant bugs in its interface, although I suspect it may be unique in that those were intentional. While progress in Golden Gate has been limited, I hope you’ll find it rectifies some of the worst errors of Liquid Glass.

Many Macs will be left behind, as Golden Gate drops support for Intel.

Normally, I update around January. With Tahoe I waited until July. This time, I’m considering updating to Golden Gate soon after its release. The downside is that Xcode 26 doesn’t run on Golden Gate, so I would have to drop support for many older macOS versions (about 3% of my customers’ Macs). But it seems like Apple’s going to force that soon, anyway, as one of the next Xcode 27 updates will likely drop support for Tahoe. I want to get off Xcode 26, both to use the newer SDK and because there are various debugging/testing things that don’t work properly.

Mario Guzmán:

I am working on a new app. Right now, I am targeting back to macOS Sequoia. I think that would be a good OS to target but becoming quite old with Golden Gate just around the corner. […] I wonder if I should just target macOS Golden Gate and focus testing on that.

Previously:

Update (2026-09-04): Isaiah Carew:

i’m in the exact same boat. i’d really like to stay on macOS 15 and whatever Xcode works there. it means i can still build things in the old UI and mostly Tahoe and GG respect it.

but recent bug reports from beta testers and the inability to see these bugs on my VM has made me feel very stuck here — like apple has purposefully made it difficult to move forward and support older versions too.

Update (2026-09-11): Howard Oakley:

What if any preparations do you need to make before upgrading or updating then, or in the coming weeks?

Update (2026-09-16): Adam C. Engst:

So who should upgrade immediately, and who should wait? Let’s consider a few broad categories of users.

  •  

Google Ads Remedies

Ryan Whitwam:

A US federal judge has sided with Google, ruling that the company will not have to sell its online advertising exchange (previously known as AdX). The US Department of Justice (DOJ) sought this remedy in the long-running ad tech antitrust trial, which Google lost in 2025. However, the remedies imposed upon Google for that loss are shaping up to be minimal.

[…]

While divesting the ad exchange would have been the most serious penalty, the government also asked for fines and court-ordered changes to Google’s business practices. It’s likely that the DOJ will get a lot of that, but we don’t know the specifics yet. Judge Leonie Brinkema has sealed the order for 14 days, giving the parties a chance to request redactions.

[…]

After all these years of hearings, appeals, and decisions, Google’s market power will remain largely unchanged going forward.

Previously:

  •  

Google and Epic Cancel Settlement, Third-Party App Stores

Ryan Whitwam (Slashdot):

The settlement between Google and Epic that aimed to put to rest the companies’ long-running antitrust battle is being withdrawn, and that means third-party app stores are coming to the Play Store.

[…]

While Apple suffered little penalty in its Epic case, Google was tripped up by its anti-competitive management of the supposedly open Android ecosystem. Google used its market position to discourage device makers from promoting or pre-loading non-Google app stores and attempted to hide that conduct. The remedies set by Judge James Donato included lower fees, mirroring Google Play apps in other stores, and most vitally, placement of alternative app stores in Google Play.

[…]

Google and Epic were set to return to court on July 16 to argue in favor of the settlement. However, the writing may have been on the wall. In a recent expert analysis provided to the court, MIT economics professor Nancy Rose noted that the settlement was “unlikely to enable Google Play’s potential competitors to overcome their long-standing network-effect disadvantage in a timely manner.”

[…]

Under the terms of Judge Donato’s original injunction, these stores will have access to the full catalog of Google Play apps by default. […] Google will also require approved stores to block malware, respect intellectual property, and include mechanisms to update and uninstall apps.

John Gruber:

My guess is that all the big app developers will opt out of this. Games, though, maybe not?

Previously:

  •  

Apple’s New Evidence in OpenAI Lawsuit

Juli Clover (Hacker News):

Liu downloaded the circuit schematic from Apple in March, two months after he left the company. Liu used the schematic to run a simulation using electrical engineering tool LTspice, and then messaged people telling them he ran the simulation for power conversion development work.

[…]

Liu used the Apple schematic on a Mac mini that later synced to the MacBook he took from Apple, which is why Apple knows about it. Apple now wants to investigate the Mac mini and other devices Liu still has in his possession.

Apple says the “shocking evidence” is proof that its trade secrets are in active use and evidence is being destroyed, which is why expedited discovery is needed.

John Gruber:

The first point seems really bad for OpenAI. On the fourth point, I’m not sure what Apple is alleging here — I think they’re alleging that Liu took an Apple internal engineering app with him over to OpenAI?

William Gallagher and Mike Wuerthele (MacRumors):

OpenAI has responded to Apple’s latest filing about the theft of confidential information, by filing its own rebuttal which again accuses the company of trying to stop employees leaving. According to Reuters, OpenAI is now also calling out Apple for being behind on AI.

[…]

“[Employees] can leave a company like Apple that has struggled to adopt AI and move to an exciting startup that builds innovative products,” says OpenAI in its new filing. “Apple may not like those choices. But it cannot claim those choices are unlawful, and it cannot use its own sloppy procedures to blame others for its own mess.”

Ben Lovejoy:

On the face of it, the evidence Apple provided yesterday does appear damning. OpenAI doesn’t seem to be denying that confidential Apple information was used by the company, but rather claiming that the iPhone maker failed to properly protect it.

It sounds like there’s a lot of evidence against Chang Liu, but Apple is suing OpenAI.

Previously:

  •  

Pitching Apps in the AI Era

Adam Engst:

So I was quite surprised earlier this year when I started to receive personalized pitches from indie developers, a few at first, and now several per week. Many seem to be building apps with AI assistance, but more to the point, they seem to be getting AI help with promoting the apps as well. They often reference our still-current prohibition on press releases with a nominally personal email, but for someone as steeped in words as I am, it’s obvious that an AI is doing the writing.

[…]

At first, this reliance on AI rubbed me the wrong way. But then I realized that it wasn’t really any different than a software company outsourcing its media relations to a PR firm. Those communications had a certain form and set of expectations, and while these new AI-generated messages have a different form, the expectations (coverage) are pretty much the same. AI is simply the new PR agency. Which undoubtedly dismays PR professionals, but there’s still room for those doing PR right.

The problem I have with these new pitches isn’t that the developers used AI to generate them; it’s that they often don’t do it very well.

I’ve noticed a huge increase this year in people pitching me their apps. Many of them seem to have been coded with the assistance of AI. For some app categories, this worries me, and there also seems to be less care taken in following Mac platform conventions. But it’s also exciting to see such a flurry of development, both totally new ideas and fresh takes on old niches. I have a large backlog that I’d like to write about. (There are also many almost indistinguishable variations in certain categories.)

Separately, as Engst says, many of the pitches (and sometimes even the sites) are obviously written by AI. This rubs me the wrong way. I don’t mind at all receiving a generic press release or even a one-liner with a link. But these lengthy e-mails, customized for me, purport to be personal communications when they really aren’t. Sometimes I’ll reply with questions or feedback, and it feels like the entire conversation is with an AI.

When people put in some effort to pitch me their product or article, I’ve always tried to give them a decent reply. Often, I end up learning something or wanting to follow their other work even if I don’t end up writing about what was pitched. This is unfortunately no longer sustainable. There are too many pitches, and it’s demotivating talking to bots. I have to be much more selective about interactions. I appreciate hearing about all the apps, but I’m focusing on the ones that particularly interest me, and I’m less likely to even click the link if it seems like an AI pitch.

Previously:

  •  

TipKit for the Real World

Craig Hockenberry:

Then, when you look at the sample code, it’s all SwiftUI. At least the sample compiles and runs because it uses a completely different syntax than what was shown at WWDC.

[…]

Eventually I stumbled upon TipUIPopoverViewController which inherits from UIViewController. That should work! […] But it didn’t: the close button on the popover didn’t work.

[…]

Until you realize that any changes you make are stored in a SQLite database, debugging is very confusing. It’s also easy for your own state to get out-of-sync with the Tip state: there is not a single source of truth.

[…]

Unfortunately, that sample code doesn’t scale well. If you have a view with multiple tips, you’re going to be littering your code with tip instances, observation tasks, and popover controllers. It’s a mess and a clear sign that the TipKit developers didn’t think much about UIKit.

Fatbobman:

In the previous article, we introduced the basic usage of TipKit. In this article, we will discuss some advanced topics related to TipKit, such as how to fully customize Tip views (not using TipView and popoverTip), how to use TipKit with UIKit, and how TipKit can share data across different applications, as well as how to reuse Tip declaration code. Additionally, we will attempt to address some common questions and concerns about TipKit.

Previously:

  •  

John Ternus Is CEO

Joe Rossignol:

Apple’s former hardware engineering chief John Ternus officially became CEO of the company today, with the change now reflected on Apple’s leadership page.

[…]

Tim Cook is now executive chairman of Apple’s board of directors, after a 15-year run as CEO.

Apple:

John joined Apple’s product design team in 2001 and became a vice president of Hardware Engineering in 2013. He joined the executive team in 2021 as senior vice president of Hardware Engineering. Throughout his tenure at Apple, John has overseen hardware engineering work on a variety of groundbreaking products and was instrumental in the introduction of multiple new product lines, including iPad and AirPods, as well as many generations of products across iPhone, Mac, and Apple Watch.

John has led much of the company’s focus in areas like reliability and durability, introducing new techniques that have made Apple products remarkably resilient. He has also driven much of Apple’s innovation in materials and hardware design that have reduced the carbon footprint of its products, including the creation of a new recycled aluminum compound that has been introduced across multiple product lines, the use of 3D-printed titanium in Apple Watch Ultra, and advancements in reparability that have increased the life spans of several Apple products.

Prior to Apple, John worked as a mechanical engineer at Virtual Research Systems. He holds a bachelor’s degree in Mechanical Engineering from the University of Pennsylvania.

Myke Hurley (9To5Mac):

This feels like Apple really trying to remind us of a previous product-focused CEO.

[…]

I would not have predicted this [reliability and durability] angle being so prominent, so I can only assume it’s something that’s important to Ternus.

[…]

One of the key tenets of the Cook era was Apple making a series of environmental pledges. I am very happy to see this called out as something Ternus is interested in.

There’s no mention of software.

Juli Clover:

Ternus sent his first memo as CEO to employees this morning, praising Cook and sharing his excitement for Apple’s future.

Benjamin Mayo:

The 5 GB free iCloud tier lasted Tim Cook’s entire career as CEO, how will Ternus stack up?

Previously:

Update (2026-09-02): Juli Clover:

Apple has set new CEO John Ternus’ target compensation at $58 million, according to an updated SEC filing [PDF]. Tim Cook’s target compensation is $47 million in his new role as executive chairman.

Update (2026-09-07): Ryan Christoffel:

But a new profile published today at the Financial Times adds fresh details and insights to the story.

Regarding Ternus’s reputation inside Apple, it says he “is known within the company for being both highly competent and unshowy.”

It doesn’t seem like there was actually much insight, but I’m linking to this for completeness.

Previously:

  •  

Swift 6.4: Warning for Weak Captures Within Nested Closures

John Sundell:

New in Swift 6.4 […] is a warning which is emitted when a nested closure performs a weak capture while the parent closure implicitly captures that object as a strong reference.

At first glance, that new diagnostic could be a bit puzzling, since it might seem unnecessary to have to specify such a weak capture twice (or, alternatively, move it to the parent closure’s capture list), but it turns out that it’s an incredibly useful new warning that can help us avoid a quite common kind of memory management bug.

[…]

Finally, in situations where capturing self strongly doesn’t actually lead to a retain cycle, we can silence the new warning for nested weak captures by explicitly adding self to the outer closure’s capture list, such as when creating a Task within the following example[…]

Previously:

  •  

Ending the Golden Era for Backward-Compatible Apps

Matthias Gansrigler-Hrad:

I don’t appreciate being forced by Xcode 27 to drop support for macOS 10.13-11.0. It’s my decision which OSes I want to support, not Apple’s. Yes, I can keep Xcode 26 around until submissions require Xcode 27, but what then?

Originally, Xcode 27 was documented as supporting Big Sur on Intel Macs, but now the earliest is Monterey.

I’m frustrated, too, but it’s more honest than the recent releases that claimed to support deployment on older macOS versions when Apple clearly hadn’t tested that it actually worked. I filed bugs, and Apple kept responding that they’d fixed it, when they hadn’t.

Using old versions of Xcode isn’t a great solution because they aren’t supported on Golden Gate. Swift also makes it more difficult to call newer APIs when using an older SDK. You can’t just copy/paste a method prototype or constant value and conditionally use it when running on a newer OS.

Ighor July:

I eventually found a hidden workaround that changes the errors back into warnings. That is good news, but it does not make the concern disappear. The setting is undocumented, absent from the normal Xcode interface, and currently being tested only in a beta toolchain. The larger question is what Apple intends to enforce when Xcode 27 is final and, later, when App Store submission requirements move to its SDKs.

[…]

Apple’s current Xcode system requirements list Xcode 26 with deployment targets beginning at iOS 15 and macOS 11. Yet developers have been able to enter older targets manually. In an Apple Developer Forums discussion about Xcode 26, an Apple product manager explained that the published deployment target range is aligned with simulator support and on-device debugging. The accepted answer confirms that an iOS 13 target can still build even though it falls below the range in Apple’s table.

My own tests went further. Xcode 26.5 compiled a project targeting iOS 9.0. It warned that the target was older than the supported range, but the build succeeded. On macOS, I have compiled current apps with deployment targets as old as macOS 10.9. Xcode warned me, but it still produced working applications.

[…]

For iOS and iPadOS, staying on Xcode 26 is not a lasting option. Apple has repeatedly made a current Xcode and SDK mandatory for new App Store submissions. […] If any one of those conditions fails, iOS and iPadOS developers will have no normal App Store path for publishing new updates that still support versions older than 15.

Previously:

Update (2026-09-07): Léo Natan:

Just want to remind you guys that if you move to Xcode 27, the only “officially” supported and sanction Xcode for GG, UIDesignRequiresCompatibility is no longer respected across the 27 OSes (apps built with older Xcodes still are). So you might suddenly find out you have a lot of work ahead of you, adding support for the dreaded Glass. And 27 Glass is not the same as 26 Glass. That can be an issue if you skipped 26 altogether but still want to support it.

Previously:

Update (2026-09-11): Nick Lockwood:

I mostly ignored the Xcode 27 betas (mainly due to the barely-usable Device Hub) so I didn’t realize the passive-aggressive prompts to drop support for iOS < 15 that you get when submitting apps is being backed up by Xcode 27 refusing to compile apps at all unless you bump the deployment target 😧

  •  
❌