Friday, July 4, 2025

DOJ’s iPhone Monopoly Case Moves Forward

Juli Clover:

Apple failed in its attempt to get the antitrust lawsuit that the U.S. Department of Justice filed against it dismissed, reports Reuters. U.S. District Judge Julien Neals, who is overseeing the case, today denied Apple’s motion for dismissal.

[…]

The DOJ accused Apple of a smartphone monopoly in the United States, citing Apple’s restriction of third-party access to Apple services and features and claiming that consumers are “locked” into Apple’s ecosystem. Apple argues that the DOJ is attempting to force it to spend money on enriching its competitors, and that it is not a monopolist because it faces competition from companies like Samsung and Google.

[…]

The case is unlikely to make it to trial until 2028 or even later.

Previously:

iOS 26 Recovery Assistant

Joe Rossignol:

iOS 26 adds a new Recovery Assistant feature to all compatible iPhones, and it can help return the device to a working state, with no Mac or PC required.

[…]

According to a Reddit post, Recovery Assistant can help you return an iPhone to a working state with help from another Apple device, such as an iPad. This process can be initiated through the menu in the top-right corner of the Recovery mode on the affected iPhone. On the other Apple device, you can follow the on-screen steps to download and install a newer iOS version on the iPhone that is in Recovery mode, to help revive it.

It sounds like iOS automatically opens Recovery, if needed, but there’s no way to manually bring it up like with macOS Recovery.

Previously:

iOS 26 Information Density

Nate Parrott:

didn’t realize everything in iOS 26 is just a little bigger and way less stuff fits on screen now?

Riccardo Mori:

Let’s make a fun comparison about information density across various versions of iOS and device screen sizes.

In reverse chronological order.

Corollary: iOS 26 kinda sucks at information density.

Riccardo Mori:

[Apple:] To give content room to breathe, organizational components like lists, tables, and forms have a larger row height and padding. Sections have an increased corner radius to match the curvature of controls across the system.

Which is largely unnecessary. It reduces the amount of information displayed on screen, and you’ll have to scroll more as a consequence. Look at the Before and After layouts: the Before layout doesn’t need solutions to increase its clarity. You’re just injecting white space everywhere. It’s also ironic that where more space and ‘breathing room’ are actually necessary, the header (“Single Table Row” in the figure) is pushed even nearer to the status bar.

Previously:

Common Vulnerabilities and Exposures (CVE) Funding

Cynthia Brumfield (via Hacker News):

After DHS did not renew its funding contract for reasons unspecified, MITRE’s 25-year-old Common Vulnerabilities and Exposures (CVE) program was slated for an abrupt shutdown on April 16, which would have left security flaw tracking in limbo.

Gavin D. Howard (via Hacker News):

The CVE system has been less good about securing our infrastructure than they have been about giving headaches to some of the most important projects. Curl gets bogus CVEs all the time and has to spend precious time dealing with them. Postgresql does too. The Linux kernel went a different route and just spams CVEs so that kernel CVEs essentially become worthless.

Worthless? Does that mean that CVEs were actually worth something to people?

Yes, absolutely. Script-kiddies that consider themselves “security researchers” try to find bugs in big projects and then get them labeled as CVEs so they can add those CVEs to their résumés. As one user on Hacker News said, “Unfortunately, the CVE database(s) are too noisy to be useful.”

In fact, it got so bad that Curl decided to do extra work to become a CNA, just so they can reject spurious reports and avoid the NVD from giving excessively high vulnerability scores.

CVE Foundation (via Hacker News):

The CVE Foundation has been formally established to ensure the long-term viability, stability, and independence of the Common Vulnerabilities and Exposures (CVE) Program, a critical pillar of the global cybersecurity infrastructure for 25 years.

Jessica Lyons:

Earlier this week, the widely used Common Vulnerabilities and Exposures (CVE) program faced doom as the US government discontinued funding for MITRE, the non-profit that operates the program. Uncle Sam U-turned at the very last minute, and promised another 11 months of cash [via CISA] to keep the program going.

Meanwhile, the EU is rolling its own.

The European Union Agency for Cybersecurity (ENISA) developed and maintains this alternative, which is known as the EUVD, or the European Union Vulnerability Database.

Previously:

Thursday, July 3, 2025

SummerFest 2025 for Indie Mac Apps

SummerFest:

Your inspiration doesn’t come from a factory. Neither does artisanal software. For a limited time, we’re all offering you a great price on great software, right at the workshop door. No ridiculous bundles, no silly gimmicks. Great software, great support, great (but sustainable) prices.

[…]

These are terrific tools for thinking, writing, organizing, and delivering your ideas. Sure, you can manage with less – but why would you want to? Each of these tools is carefully crafted and maintained by a small, dedicated team with vision and determination.

I’m listing all of the apps below, most with direct links that automatically apply the discount, but for some you’ll need to enter the coupon code SUMMERFEST2025.

Alifix 1.4

Howard Oakley:

If you have old Finder aliases that need to be checked and repaired, Alifix will do that job with you. Use it to scan a folder containing those aliases, and it will warn you which can’t be resolved any longer, and can rewrite those that need to be updated.

I’d forgotten about this utility, which just added support for macOS Tahoe, but it’s a good tool to have in your belt, as aliases sometimes break when copying between volumes or restoring from backup.

See also: more about aliases and bookmarks.

Magic Lasso Adblock 5.0

Matthew Bickham:

Magic Lasso Adblock v5.0 now lets you block ads and trackers across all apps on your iPhone, iPad, or Mac — not just in Safari.

[…]

Whether you’re scrolling through social media, playing games, or reading the news (including Apple News), ads are blocked automatically — creating a cleaner, faster experience across your device.

[…]

Many apps secretly track your activity and sell your data to third parties. App Ad Blocking helps shut down these trackers before they load, giving you stronger privacy everywhere.

My concern with ad blocking is always that it will accidentally block something that isn’t an ad and break a site (or, with the new version, an app). However, in my testing so far, that hasn’t happened. For blocking outside of Safari, it uses a network extension, and this currently doesn’t support the same fine-grained control as the Safari extension; but, if necessary, you can quickly toggle all of the blocking on/off from the Magic Lasso Adblock app.

Nick Heer:

After iOS began registering taps immediately, I found scrolling apps with interstitial ads — particularly news apps like those from CBC News and the New York Times — to be particularly hostile. I would scroll and then, while intending to stop the scroll, often tap on an ad which would send me to Safari. Irritating. Not all ads are blocked in these apps, but enough are that it has improved my news reading.

Previously:

CodableWithConfiguration

John Sundell:

When a type conforms to either EncodableWithConfiguration or DecodableWithConfiguration, it requires an additional configuration value to be passed when either encoding or decoding it (and the compiler will enforce that requirement).

[…]

CodableWithConfiguration is really quite useful when using Swift’s built-in serialization API to encode and decode types that require additional data in order to be initialized, without having to resort to modeling required data as optional, or having to define additional types that are only ever used for decoding purposes.

It’s a shame there’s no way to avoid the boilerplate of encoding/decoding all the properties that don’t come from the configuration.

Previously:

Wednesday, July 2, 2025

Cloudflare Creates AI Crawler Tollbooth

Matthew Prince (Hacker News, Slashdot):

The problem is whether you create content to sell ads, sell subscriptions, or just to know that people value what you’ve created, an AI-driven web doesn’t reward content creators the way that the old search-driven web did. And that means the deal that Google made to take content in exchange for sending you traffic just doesn’t make sense anymore.

Instead of being a fair trade, the web is being stripmined by AI crawlers with content creators seeing almost no traffic and therefore almost no value.

That changes today, July 1, what we’re calling Content Independence Day. Cloudflare, along with a majority of the world’s leading publishers and AI companies, is changing the default to block AI crawlers unless they pay creators for their content. That content is the fuel that powers AI engines, and so it’s only fair that content creators are compensated directly for it.

thaddeus:

This is pretty cool, but we’re also dangerously close to Cloudflare basically being the whole internet.

Thomas Claburn:

In a separate post, Cloudflare’s David Belson, head of data insight, and Sam Rhea, VP of product, published data illustrating the disparity between what AI crawlers take and the referral traffic they send back to websites.

During the period between June 19 and 26, 2025, for example, “Anthropic’s AI platform Claude made nearly 71,000 HTML page requests for every HTML page referral,” observe Belson and Rhea. We must note that these measures only track traffic from the Claude website, not the app, as the app does not emit a Referer: header. The same goes for the other AI vendors.

Manton Reece:

I’m concerned that this default goes too far. Cloudflare has enormous power to intercept web traffic, because they’ve effectively re-centralized DNS for so many websites. While Matthew’s reasons for doing this are good, it should still be an opt-in feature. The open web should by default be open.

[…]

Cloudflare has a series of blog posts today with more details. In one post, they outline how AI crawlers can use HTTP Signatures (similar to what ActivityPub uses) to identify themselves if they have a relationship with Cloudflare for making payments to web publishers. When enabled, Cloudflare will return an HTTP 402 “payment required” response. There’s a mechanism for crawlers to say how much they will pay or to accept the listed price.

[…]

I can also imagine a harmless bot accidentally getting mislabelled as an AI crawler. Cloudflare has significant control even though they aren’t even the ones hosting your web site. According to a companion press release today, Cloudflare proxies traffic for 20% of the web.

Previously:

Update (2025-07-04): Vladimir Prelovac:

Cloudflare launched pay per crawl service in an attempt to centralize control of AI crawling economy.

Interestingly there is an open source effort by Coinbase which may be a better way to achieve this for publishers (and this could be the first actually useful thing to come out of the crypto world). This banks on existing http 402 response spec and is conveniently called x402.org

Now if only it wasn’t so darn hard to setup a wallet for your grandma in her browser so we could have decent micropayments on the web. Something I think about a lot in the context of Kagi/Orion.

Figma Files for IPO

Thomas Claburn (Figma, Hacker News):

The company prospectus mentions AI more than 150 times, characterizing it both as a creative accelerant and a potential threat.

[…]

Back to Figma, whose prospectus says that as of the first three months of 2025 it has 13 million monthly active users.

For the year that ended on December 31, 2024, Figma reported revenue of $749 million, up 48 percent year-on-year from the prior year. And for the three months that ended March 31, 2025, the company reported revenue of $228 million, up 46 percent year-on-year.

[…]

Figma cautions that its own use of AI could make its software more complicated to maintain.

Previously:

Update (2025-07-04): Georgia Butler (via Hacker News):

The filing states that Figma entered into a renewed hosting agreement with AWS on May 31, 2025, which commits to “a minimum of $545 million in cloud hosting services over the next five years.”

This works out at $298,466.59 daily in costs to Figma. How this is broken down into storage, compute, or bandwidth costs is not detailed.

Fakespot Shuts Down

Bryson Thill (via Hacker News):

Fakespot’s technology revealed some eye-opening statistics. About 43% of the best-selling Amazon products had reviews that were unreliable or fabricated, according to a study by app company Circuit. The problem was even worse in certain categories. Clothing and jewelry led the pack with a staggering 88% of reviews deemed unreliable.

[…]

As Fakespot gained traction, investors took notice. In November 2020, the company raised $4 million in Series A funding, bringing their total funding to $7 million and signaling strong confidence in their mission to combat fake reviews.

Three years later, Mozilla acquired Fakespot, bringing the startup’s 13-person team into the Firefox family. Mozilla integrated Fakespot’s technology directly into Firefox as the “Mozilla Review Checker” feature, making it easier than ever for users to verify product reviews without installing separate extensions.

[…]

Mozilla couldn’t find a sustainable business model for Fakespot despite its popularity, choosing to redirect resources to core Firefox features and AI-powered browser tools.

Previously:

macOS Tahoe Drops FireWire Support

Joe Rossignol:

The first macOS Tahoe developer beta does not support the legacy FireWire 400 and FireWire 800 data-transfer standards, according to @NekoMichi on X, and a Reddit post. As a result, the first few iPod models and old external storage drives that rely on FireWire cannot be synced with or mounted on a Mac running the macOS Tahoe beta.

Unlike on macOS Sequoia and earlier versions, the first macOS Tahoe beta does not include a FireWire section in the System Settings app.

I’ve seen reports that FireWire support has been partially broken since macOS 12.3, anyway.

Mark Sokolovsky:

Take a fine comb and look through the latest developer beta, tell me if you find any mention of FireWire anywhere – not even System Profiler has it anymore. They’re saying on AppleInsider that even with a Thunderbolt Dock, it won’t let you connect any FW device to macOS.

[…]

Macs started carrying FireWire as early as 1997 as a BTO/CTO option, however, was not included onboard on any model until 1999. Even then, not all models carried it. The mid-2012 13″ non-retina MacBook Pro was the last model Mac to carry any sort of FireWire port.

USB continues to improve, but I just don’t think it’s ever been as reliable as FireWire was.

Jack Wellborn:

In honor of FireWire support presumably going away in macOS Tahoe, here’s pictures from when I connected my original iPod to my M1 MacBook Pro.

MacBook Pro to
Thunderbolt 3 to 2 adapter to
Thunderbolt 2 cable to
Thunderbolt 2 to FireWire 2 adapter to
Firewire 2 cable to
External HD with FireWire 2 and FireWire 1 ports to
FireWire 1 cable to
iPod

Previously:

Update (2025-07-04): Adam Maxwell:

Wow, that’s the end of an era. I bought FW drives as long as I was able, as it seemed like performance and reliability was always better. FW > Ethernet > USB > WiFi > Bluetooth in my unscientific aggregate of performance and reliability.

Lee Bennett:

I guess I’m gonna have to keep an older Mac & OS around coz I still periodically use a FireWire bridge to capture VHS tapes.

Tuesday, July 1, 2025

Brazil Recommends Sanctions for Apple Over App Store and NFC Rules

Hartley Charlton:

The recommendation was issued by the General Superintendence of Brazil’s Administrative Council for Economic Defense (SG/CADE), the technical body of the federal antitrust authority. In a public statement translated from Portuguese, SG/CADE determined that Apple’s conduct with iOS constitutes a violation of Brazilian competition law and urged CADE’s internal tribunal to impose penalties, including financial fines and mandatory changes to Apple’s policies.

The investigation started in 2022 after formal complaints were submitted by Latin American e-commerce platform MercadoLibre and other digital service providers. The companies alleged that Apple engaged in anti-competitive practices by requiring in-app purchases to be made exclusively through its own payment system and by restricting developers from informing users about alternative purchasing options — a practice known as anti-steering.

MercadoLibre further argued that Apple abused its control over the iOS platform by denying third-party access to critical technologies such as the iPhone ‘s NFC chip, effectively limiting mobile payment competition in Brazil.

Previously:

Tim Robertson, RIP

Peter Cohen:

Confirmed with the family this morning that @mymac founder Tim Robertson passed away after a recent illness.

Tim was not just a mainstay of Apple blogging, podcasting and smart analysis for decades, but one of the very nicest people I’ve ever met.

Like ATPM, My Mac began in 1995 and was originally published in DOCMaker format. Each issue was a standalone app-document file, downloadable like shareware from AOL and eWorld.

Grammarly Acquires Superhuman

Krystal Hu (via Hacker News):

Grammarly has signed a deal to acquire email efficiency tool Superhuman as part of the company’s push to build an artificial intelligence-powered productivity suite and diversify its business, its executives told Reuters in an interview.

The San Francisco-based companies declined to disclose the financial terms of the deal. Superhuman, once an exclusive email tool boasting a long waitlist for new users, was last valued at $825 million in 2021, and currently has an annual revenue of about $35 million.

Previously:

iPadOS Windows Mess Up Data Saving

Craig Hockenberry (Mastodon):

From the very beginning, iOS has had a notion of an app being in the foreground or background. When you saw an app on screen it was active and when it was gone it was inactive.

[…]

It was simple system that let you do what you needed to do, when you needed to do it. Now with windows on iPadOS, that’s gotten a lot harder.

That’s because apps stay active even when their windows do not.

If you’re using iPadOS 26 and noticing that the saving/syncing/exchange of data is not happening, there’s a stupid trick you need to do to get things working: Tap on the home screen to hide the windows (they slide off to the sides of the display). That makes all the apps on screen inactive and triggers the work that they need to do.

It seems like there’s a missing API for apps to know what’s happening.

Previously:

Monday, June 30, 2025

Proton v. Apple

Proton (PDF):

We believe that Apple’s conduct, as detailed in the complaint we filed, constitutes further violations of US antitrust law. Without this case, Apple could get away with behavior in the US that is already outlawed in the European Union. If this were to happen, American consumers, and developers focused on the American market, would have to pay higher prices for fewer choices, and be left at a disadvantage.

There is also urgency to act now because of a parallel class-action suit by app developers against Apple on May 23, and any settlement there could be binding on all other developers. By joining that lawsuit, we can ensure that this suit will not only be about monetary damages to compensate app developers for the harm caused by Apple’s conduct, but also changes to App Store policies that will improve the state of the internet. We are seeking to permanently end anti-competitive behavior on the App Store, and we are joining this lawsuit to ensure that any future settlement enforces real changes to Apple’s practices and policies to benefit all consumers, developers, and competition, and not just cosmetic changes.

[…]

Companies that monetize user data in exchange for “free” services that abuse your privacy aren’t affected by this, as they don’t process payments through the App Store. However, privacy-first companies that monetize through subscriptions are disproportionately hit by this fee, putting a major barrier toward the adoption of privacy-first business models. Naturally, these are also the very companies Apple is directly competing with through its disingenuous privacy marketing campaigns.

[…]

Apple argues this control is necessary for security reasons. But the reality is that this has made Apple the single point of failure for free speech and a tool of dictatorships. There have been numerous incidents where Apple has removed or censored apps at the behest of authoritarian governments, in order to continue profiting from those markets.

[…]

In 2020, Apple threatened to take Proton VPN out of the App Store unless we removed language from our App Store description that said the app could be used to “unblock censored websites.” We don’t question Apple’s right to act on behalf of authoritarians for the sake of profit, but Apple’s monopoly over iOS app distribution means it can enforce this perverse policy on all app developers, forcing them to also be complicit. We believe it is critical for the future of the internet to end the monopoly on app distribution, so that developers and companies who are prepared to fight for democracy can do so.

Apple also blocked their security update unless they would change the app’s description. The app description had been previously approved with no issues, and the rejection didn’t point to an actual rule violation. This was all after Apple had said that it wouldn’t block bug fix updates.

Proton is also upset that users can’t set Proton Calendar as the default calendar app and that iCloud Drive gets to do background processing stuff that Proton Drive can’t.

Andrew Orr:

Proton seeks an injunction that would require Apple to open iOS to rival app stores and payment services. It also demands monetary compensation for what it calls excessive commissions and the broader competitive harm imposed on developers.

However, they say they will donate any money received from the lawsuit.

Manton Reece:

At this point, I don’t think there’s any doubt that eventually, all around the world, it will be possible to install third-party apps, or use external payments, with minimal interference from Apple. It might still be a bumpy road to get there. This lawsuit is an unfortunate but likely necessary part of the journey.

Previously:

Update (2025-07-01): See also: MacRumors and Hacker News.

Free Speech Coalition v. Paxton

Adi Robertson:

Age verification is perhaps the hottest battleground for online speech, and the Supreme Court just settled a pivotal question: does using it to gate adult content violate the First Amendment in the US? For roughly the past 20 years the answer has been “yes” — now, as of Friday, it’s an unambiguous “no.”

Justice Clarence Thomas’ opinion in Free Speech Coalition v. Paxton is relatively straightforward as Supreme Court rulings go.

[…]

Even the best age verification usually requires collecting information that links people (directly or indirectly) to some of their most sensitive web history, creating an almost inherent risk of leaks. The only silver lining is that current systems seem to at least largely make good-faith attempts to avoid intentional snooping, and legislation includes attempts to discourage unnecessary data retention.

Previously:

Assorted Notes on Liquid Glass

Riccardo Mori:

I’ve been trying to make sense of Apple’s latest user-interface redesign — Apple calls it Liquid Glass — that will affect all their platforms in the next iteration of their respective OS versions. But it’s hard to make sense of it when, after checking Apple’s own guidance, I’m mostly left with the feeling that at Apple they’re making things up as they go.

[…]

Now take a look at the area I’ve highlighted in the image. Why would you want to “focus on the underlying content” here? Tab bars and toolbars still cover the underlying content, and the more transparent/translucent they are, the worse. When something fades to the background, it literally ceases to be in the foreground, so there’s no point in focusing on it. This is like proposing an interface that helps you focus your sight on your peripheral vision.

[…]

Another thing that irks me about this obsession with icon simplification is that when you abstract things this much, you dilute their meaning instead of distilling it. Take the progressive degradation of the Dictionary icon, for example. In its subsequent iterations (as soon as it loses the ‘book’ shape), it could just be the icon for a font managing app. Because it ends up losing a lot (if not all) of its uniqueness.

Louie Mantia:

People really expected Apple to shift back toward the kinds of things that made us all fall in love with their platforms and products to begin with. […] But the pendulum never swung back. Instead, we got Liquid Glass.

[…]

And so it seems to me that the people who spearheaded both iOS 7 (2013) and iOS 26 (2025) either did not understand that the visually-rich style from 2001–2013 played such a significant role in Apple’s success or they simply did not care that it did.

[…]

Yet as years go by, we seem to lose more of OS X’s good things. Year after year, draggable borders and frames became thinner until they disappeared. Scrollbars vanished. Stronger contrast softened. We lost the visually rich design in applications and icons. And now, we’ve even lost the ability to make unique icon silhouettes that Apple once specifically retained when introducing the iOS 7 aesthetic to macOS because that was a distinct element of its heritage.

[…]

It’s asking a lot. For almost nothing in return. I keep looking at all the changes Liquid Glass brings, and I cannot find one instance where it has markedly improved the experience in any way.

[…]

But what I am now absolutely sure of is that if the last decade represents Alan Dye’s vision for this platform, then I disagree with it. I don’t trust this direction. I didn’t need the last ten years to see that, but I’m disappointed that in ten years he still doesn’t see it.

Riccardo Mori (Mastodon):

In the past, technology used to be my coping space. A place for a knowledge worker like me to nerd about his tools and related passions — user interfaces, UI/UX design, typography, etc. And if I have developed these passions and interest is largely because of Apple. Apple had a huge impact on my life ever since I started using their computers. I carried out my apprenticeship in Desktop Publishing on a workstation that was comprised of a Macintosh SE, a Bernoulli Box external drive, and a LaserWriter printer back in 1989. I’ve always appreciated the care and attention to detail Apple put in their hardware design but also in their UI design.

But it’s true — something important died with Steve Jobs. He was really Apple’s kernel, for better and for… less better. This Apple has been dismantling Mac OS, as if it’s a foreign tool to them. They’ve bashed its UI around. And they seem to have done that not for the purpose of improving it, but simply for the purpose of changing it; adapting it to their (mostly misguided) idea of unifying the interface of different devices to bring it down to the simplest common denominator.

Francisco Tolmasky:

Well I think it is very clear that Apple does not believe there are new ideas to be had. This is a much deeper discussion, but to me all of their actions are representative of a company that believes technology is “mature” and all that is left to do, at best, is polish. Setting aside whether one agrees with Apple’s decisions/taste/whatever, I think it is not up for discussion that while these changes may be disruptive, they are not, nor are intended to be, “transformative”.

Baked into the explanation that Liquid Glass “frees your content from the tyranny of the UI” is the inescapable admission that you have determined that the highest priority item left for iOS is to “return roughly 40px of screen real estate, or 3% of the vertical space of an iPhone, to users”. That is the important part here. Not whether LG does or doesn’t deliver, but rather that Apple did not find, and thus does not believe there exists, anything more interesting to do in all of 2025.

Dave Polaschek:

Also, there are bugs that have been around for more than six years (I was still working when I reported them) that they could have been fixing, but those don’t even get looked at. They’re too busy making new bugs instead.

Previously:

Update (2025-07-04): Francisco Tolmasky:

Fashion is the state an industry degrades to once all the available innovation has been exhausted.

It is the “white dwarf” conclusion for fields with insufficient justifiable change to provide an indefinite source of legitimate novelty. The term we use to identify the fields that defy this destiny is “technology”.

If you want to understand Apple’s insistence on a yearly update schedule, you must first understand that Apple no longer sees their software as technology, but rather as fashion.

This explains the seeming disconnect between Apple and its users: how can Apple remove key features “we depend on” so callously, in fact, oftentimes proudly? The stakes seem high to “us” and low to “them”.

But Apple’s position makes perfect sense if you view each of these features not as a step towards or away from some theoretical target “ideal functionality,” but rather as a “fashion trend” that is either still “in” or “out of” style.

John Gruber:

I have never once gotten the impression that anyone on Alan Dye’s UI team uses serious pro tool apps. They love making beautiful looking things, not solving difficult UI problems with clever solutions. And I suspect when confronted with difficult UI problems, they say “Shut up with that nerd stuff.”

Louie Mantia, Jr.:

You know, I could write a whole blog post about this—and I might—but I think we need to start addressing the very likely possibility that the entire thesis that “UI should get out of the way” and “apps should focus on content” is wrong.

Apps aren’t just for looking at photos or videos. They’re for navigating through these things, organizing them, editing them. The tools to do those things should not get out of the way. They should be clearly defined and separate from the content.

The problem is not the introduction of glass as an element of the visual design language. If used as the Dock background alone, it would be totally fine! But because someone said “UI should get out of the way” and no one challenged it—instead of content literally being the focus, Apple has to intentionally put content out of focus (blurring) to make the glass elements visible. They have to put a gradient behind the glass so you can see it. That should’ve been the “oh, it doesn’t work” moment.

But here we are with a new visual design language that somehow manages to compromise on both the content area and the UI.

Marco Arment:

Liquid Glass’ blurred content everywhere is especially cruel to those of us who use reading glasses or progressives.

The reflex to seeing blurry text on our phones is to adjust our sight angle or distance to sharpen it. But, of course, it’s not our fault, doesn’t sharpen, and just causes eyestrain.

Text on my phone should never be blurry.

Greg Pierce:

I’m still optimistic about some of the elements of Liquid Glass, but, so far, every change I’ve made to adapt to the look has directly reduced the visibility user’s content and the accessibility of important functions.

Having spent the weekend with my parents, less visibility will be a disaster for them. The (…) button scares them.

Jesper:

There are two stages to this, in two different axes (being: icons and the general UI).

The first stage is: I can't believe that Apple is doing their developers and their ecosystem dirty this way. In which way does someone look at all this and imagine that this will be sufficient for developers to express what they want to express? Look at the progression to this point, look at what is given up and look at for what. Negligible wins in screen space even on the most space constrained devices (aside from Apple Watch, where the layering and overlapping is highly limited to begin with), and effects that are technically impressive but not in the apparent service of any particular goal.

The second stage is: I can't believe that Apple is doing this to themselves. To their own icons and their own user interfaces. I have yet to find a single user interface in their own OS, in the most-baked Liquid Glass UIs currently in existence, that is functionally improved. There are loads of them that have been functionally and hierarchically crippled.

[…]

The Bas Ording school sometimes uses a neat effect to enable new functionality (seeing more things with Dock magnification, keeping track of where things go with windows animating in and out of sheets and the dock, shrinking and moving around with Exposé). But the effect was never the point. The visuals were tweaked from version to version and certainly changed over time.

The Alan Dye school always starts with dropping a manifesto. […] None of the interfaces seem like they were iterated on in order to increase usability, readability, utility or understandability in the slightest. […] As far as I can tell, Apple's just lost its sense of UI design priorities completely.

Benjamin Mayo:

In fact, the act of squishing controls into a single row actually exacerbates the relative lack of screen real estate in the horizontal axis. With iPhone dimensions as they are, horizontal space is constrained, and you have to be very selective about what can fit in the bounds of the screen’s width. Inevitably, this means important items must be hidden away.

[…]

Personally, I find the minimisation trend most egregious in the Music app.

Jonathan Wight:

I know zero former coworkers at Apple who actually like Liquid Glass. Every single time it has come up in conversation so far the reaction has been negative.

I am in two group-chats with ex-Apple folks and both chats have devolved into Liquid Glass hate-fests.

Sean Heber:

Pretty frustrated with all of the iOS/iPad/macOS 26… everything.

I feel like suddenly nothing works. I can’t do anything I want to do. And everything is broken. It feels like a giant waste of time churning.

Matt Birchler:

There are plenty of times where the UI looks positively gorgeous. In the Apple Music screenshot above, I think those elements look stunning, and they look even better in motion as content swirls around the background as I scroll. I also really like the address bar at the bottom of Safari, which really comes to life when scrolling sites with fun colors. Tellingly, I have an iPhone still on iOS 18 and it does feel a bit dull in comparison.

But there are also times where it doesn't look great and can be genuinely hard to read. This got better in the second round of betas, but it's definitely not completely fixed yet. And even when it is working right, UI elements bounce from what I can only describe as light mode to dark mode over and over as their background content changes. I find this distracting and visually unpleasant.

Louie Mantia, Jr. (Mastodon):

But my gosh, this is a multi-trillion dollar company that’s getting free design critique from people who love and rely on these platforms the most. For free. Absolutely nothing in return. It’s almost as if we’re all posting about it because of desperation. So many of us are hoping this really isn’t what we have to live with for the next five or ten years. Despite knowing it will take time away from the things we’d much rather be doing, we’re writing blog posts and recording podcasts and posting on social media anyway.

[…]

App icons are all over the place. In some ways, they gained detail, in others, they lost detail. Almost every icon has an unfortunate concession to fit into this Liquid Glass model.

[…]

But what I can’t help but notice for 12 years now is that without visual effects serving to differentiate one control from another, we’ve lost immediate recognition of different UI elements. Title bars merged with toolbars. Toolbars merged with tab bars. Is this icon an action or a tab? Will it open a menu or switch the view? It’s anybody’s guess. The conflation of basically all these UI elements with iOS 7 and a step further with Liquid Glass in the 26 release makes me think someone doesn’t understand there is a difference between these kinds of UI elements. Or maybe they don’t care about the difference.

[…]

Every time I see an issue, I ask, “What problem is this solving?” And every time, there is no answer. There is seemingly no benefit to any of this. That isn’t to say there aren’t good UI changes in this release. It’s just that some of these visual decisions are impacting the UI. Instead of working together, they seem to be at odds with each other.

[…]

At the point when you have to blur the content area to make the UI stand out from it, how can you possibly argue that it gets out of the way? It makes no sense.

Technotes Safari Extension

Zhenyi Tan (via Kyle Howells):

A few months ago, I posted this image on Mastodon, because the Apple documentation website sometimes feel… err, underwhelming. Many people have already pointed this out, so I won’t repeat their complaints. When people complain about Apple’s documentation, they often compare it to php.net, saying that php.net has sample code for almost every function and community notes that explain details when the code alone isn’t enough.

So I thought, what if we just make Apple’s documentation more like php.net? I posted the question on Mastodon, but not many people were interested. Oh no! Anyway, two months later, I decided to give it a shot because I still thought the idea was good enough to try. I then called it Technotes.

Technotes is a Safari extension that adds user-contributed notes to the Apple documentation website. The notes can include sample code, warnings about common pitfalls, and other useful stuff.

Friday, June 27, 2025

EU App Store Tiers and Core Technology Commission

Apple (Hacker News, MacRumors, MacStories, 9to5Mac, AppleInsider, ArsTechnica):

Today, we’re introducing updated terms that let developers with apps in the European Union storefronts of the App Store communicate and promote offers for purchase of digital goods or services available at a destination of their choice. The destination can be a website, alternative app marketplace, or another app, and can be accessed outside the app or within the app via a web view or native experience.

App Store apps that communicate and promote offers for digital goods or services will be subject to new business terms for those transactions — an initial acquisition fee, store services fee, and for apps on the StoreKit External Purchase Link Entitlement (EU) Addendum, the Core Technology Commission (CTC). The CTC reflects value Apple provides developers through ongoing investments in the tools, technologies, and services that enable them to build and share innovative apps with users.

[…]

By January 1, 2026, Apple plans to move to a single business model in the EU for all developers. Under this single business model, Apple will transition from the Core Technology Fee (CTF) to the CTC on digital goods or services. The CTC will apply to digital goods or services sold by apps distributed from the App Store, Web Distribution, and/or alternative marketplaces.

I find this really confusing, but I think when they say “single business model” they mean unifying the CTF and the CTC and the previous “alternative” terms for apps that are not using the traditional App Store model. There are still two models in that you can do the simple flat rate that’s the same throughout the world or the complicated and ever-changing EU model that supposedly satisfies the DMA.

Apple:

By default, apps on the App Store are provided Store Services Tier 2, the complete suite of all capabilities designed to maximize visibility, engagement, growth, and operational efficiency. Developers with apps on the App Store in the EU that communicate and promote offers for digital goods and services can choose to move their apps to only use Store Services Tier 1 and pay a reduced store services fee.

They are being petty and saying that if you don’t pay for Tier 2, customers have to manually update your app, yet developers are forbidden from making their own auto-update system.

Jeff Johnson (Mastodon):

At this point, it’s unclear what exactly is meant by “Exact match”. […] What I found striking about the search differences between Tier 1 and Tier 2 is that in creating this distinction, Apple clearly considers App Store search to be a developer feature rather than a user feature. In other words, the user’s interest in finding an app via search is disregarded, and Apple is willing to be less helpful to users to the extent that app developers pay a lesser commission to Apple. A common talking point in defense of Apple’s App Store lockdown on iOS is that the App Store is supposed to be for the benefit of users rather than developers. Apple’s new policies give the lie to that notion.

Apple:

If you agree to the Alternative Terms Addendum for Apps in the EU, your developer account will be assigned the StoreKit External Purchase Link Entitlement to enable the communication and promotion of offers. The agreement allows for two ways to offer digital goods or services for sale, and includes new business terms.

You can do the alternative terms with IAP for a reduced commission (vs. the rest of the world) or with external links/purchases (but then you have to pay the initial acquisition fee and the store services fee).

You can choose to use the App Store’s In‑App Purchase system or use options to communicate and promote offers for digital goods or services per EU storefront and per-app, which you can update by changing the entitlement election in Xcode by updating the property list key with a new app submission.

I think this is Apple’s way of saying that you can no longer give the user the choice of IAP vs. external purchase within the same app.

Marcin Krzyzanowski:

I’m pretty sure EU said CTF is not compliant, and the CTC won’t be compliant.

To me it seems like changes in framing and at the margins, rather than really addressing the core issues.

Jason Snell:

Apple always disagrees and always appeals, but these are pretty big changes. The introduction of a lower App Store tier with lower fees (but more spite?), combined with the reduced rates to the regular App Store fee structure, is especially fascinating. One has to wonder if Apple would’ve had as much trouble in the EU if it had made changes like this much sooner, but here we are.

Craig Grannell:

Apple’s new EU App Store rules make my head hurt. Which is probably the point.

I wonder how many developers have seen all this churn and concluded that it’s better to just spend their time on Web apps.

Melvin Gundlach:

I was a very motivated developer for Apple platforms in the past, but Apple’s handling of its monopoly and it’s “compliance” with the DMA are now making me take a serious look at Linux and Android.

Steve Troughton-Smith:

Will Apple’s new EU fee structure pass this time?

It all boils down to: can an app trying to compete with an Apple app offer the same level of pricing that Apple has.

And the answer is, still, no. Apple still maintains the unfair advantage in both discoverability and in pricing, so by definition their proposal does not satisfy the DMA. It might reduce their rate from 30% to 12%, if you eschew App Store discoverability, but that’s still 12% more than any Apple app has to pay or needs to charge.

Apple’s distribution options will only be DMA compliant if and when e.g. a third party music app can match or undercut Apple Music’s pricing without wiping out its own profit margin.

Apple’s new terms might not be the colossal ‘fuck you’ the Core Technology Fee was to developers, but they amount to keeping the status quo, not truly enabling competition or following the law.

Previously:

Update (2025-07-04): Marcus Mendes:

In a post on X, Sweeney said Apple’s latest DMA update is “blatantly unlawful in both Europe and the United States,” calling it a “malicious compliance scheme” that “makes a mockery of fair competition.”

Tim Sweeney:

Apps with competing payments are not only taxed but commercially crippled in the App Store.

Apple blocks auto-updates to these apps, cripples search for them, and blocks customer support and family sharing, and otherwise ensures that using these apps will be an intentionally-miserable experience for users and a commercial failure for developers.

Paul Haddad:

Apparently I’m paying a certain percentage of the Apple commission to be included in search. Can I opt out of just that?

Ryan Jones:

Zero developer friends can figure out what normal app commissions will be. None. 😞

Jacob Eiting:

i think that’s the point

Jens-Fabian Goetzmann:

These changes are quite hard to parse and understand, so we read them for you so you can decide whether or not to take action.

Ryan Jones:

What’s most crazy is devs think the normal fee got lowered from 30% to 20% (in EU) but no one is saying it publicly.

  • we aren’t even sure
  • high doubt they’d do it
  • there’s so little goodwill left

I booked a lab to ask questions. 🤷‍♂️

John Gruber:

Amongst other policy and API changes, Apple also announced a new, seemingly simplified, experience on iOS/iPadOS for installing apps and alternative app marketplaces in the EU.

[…]

The new fee structure is undeniably convoluted, and I think downright confusing.

[…]

One consequence of the €0.50 per-download Core Technology Fee (CTF) being replaced by a 5% Core Technology Commission (CTC) is that there will no longer be a penalty for small developers who have a free-to-download app that hits over one million EU downloads. That was a legitimate problem with the CTF — an app with 5 million EU downloads would owe Apple €2 million for the CTF, but might be generating far less than that (or even nothing at all) in revenue. But another consequence of switching to the CTC from the CTF is that super-popular apps from super-big companies that don’t sell digital goods from their apps will continue to pay nothing at all. E.g. unless Meta starts selling digital goods from within their apps, they’ll continue to pay nothing at all to Apple for zillion-download apps like Instagram, Facebook, and WhatsApp. That was a shortcoming with the App Store’s model that the CTF was designed to correct.

Nick Heer:

But perhaps users may ultimately come out on top if App Store search is kneecapped. Perhaps Apple’s proposals will encourage more third-party app marketplaces, giving Apple competition for reaching users on its platform. Then, perhaps, the company would find reasons to loosen its reins and change its relationship with developers without being compelled by courts or regulators.

Or maybe Apple will preload Android onto its E.U.-bound iPhones. Seems similarly likely.

Claude Code Experience

Alex Grebenyuk:

I’ve been using Claude chats for a while, but tools like Cursor never clicked for me. I just didn’t want to introduce a separate IDE into my workflow, and I didn’t feel they offered enough value for an experienced engineer. That changed with Claude Code.

[…]

Claude Code is an agentic coding assistant that runs in a terminal and can research your codebase without manual context selection and make coordinated changes across files automatically. It can use command line tools (like git) and MCP servers (like GitHub) to extend its capabilities.

I tried Claude Code when it launched a few months ago and was immediately drawn to its terminal-based interface. I’ve never been a fan of similar products that required you to learn a separate IDE. Claude Code works alongside Xcode and feels like a natural extension of my current workflow.

[…]

My next attempt was more ambitious. I asked Claude to rewrite the entire Objective-C “Support Logs” screen using SwiftUI. Here’s the PR #24591. It’s a simple screen with low stakes, and my brief prompt worked. While it didn’t match my coding style perfectly, I manually corrected it.

On the other hand, he notes that it took 25 minutes to rename a struct across multiple files “while also making unnecessary changes like renaming unrelated methods.” And you are sending your private codebase to the cloud.

Peter Steinberger:

For the past two months, I’ve been living dangerously. I launch Claude Code (released in late February) with --dangerously-skip-permissions, the flag that bypasses all permission prompts. According to Anthropic’s docs, this is meant “only for Docker containers with no internet”, yet it runs perfectly on regular macOS.

Yes, a rogue prompt could theoretically nuke my system. That’s why I keep hourly Arq snapshots (plus a SuperDuper! clone), but after two months I’ve had zero incidents.

[…]

When I first installed Claude Code, I thought I was getting a smarter command line for coding tasks. What I actually got was a universal computer interface that happens to run in text. The mental shift took a few weeks, but once it clicked, I realized Claude can literally do anything I ask on my computer.

[…]

This isn’t about AI replacing developers—it’s about developers becoming orchestrators of incredibly powerful systems. The skill ceiling rises: syntax fades, system thinking shines.

Previously:

Update (2025-07-01): aliborhothamud:

Yesterday I was migrating some of my back-end configuration from Express.js to Next.js and Cursor bugged hard after the migration - it tried to delete some old files, didn’t work at the first time and it decided to end up deleting everything on my computer, including itself. I had to use EaseUS to try to recover the data, but didn’t work very well also. Lucky I always have everything on my Google Drive and Github, but it still scared the hell out of me.

Now I’m allergic to YOLO mode and won’t try it anytime soon again.

Vimeo Returns to Apple TV

Marcus Mendes:

Almost exactly two years after abruptly pulling the plug on its Apple TV app, Vimeo is making a comeback on the platform with a brand-new experience built from the ground up.

[…]

For longtime users, this update marks a pretty big reversal. Vimeo discontinued its TV apps, including for Apple TV, Android TV, Fire TV, and Roku, back in June 2023, citing a shift in focus toward business and creative tools. At the time, Vimeo’s pitch was that users should cast from their phones instead.

Previously:

News Explorer 2.1

Ron Elemans:

News Explorer 2.1 brings support for Bluesky feeds based on the official API, a large collection of Shortcuts actions, sharing to Readwise, and some other useful features and improvements.

Previously:

Thursday, June 26, 2025

Software Is Changing (Again)

Y Combinator (transcript, slides, via Duncan Davidson, Hacker News):

Drawing on his work at Stanford, OpenAI, and Tesla, Andrej [Karpathy] sees a shift underway. Software is changing, again. We’ve entered the era of “Software 3.0,” where natural language becomes the new programming interface and models do the rest.

He explores what this shift means for developers, users, and the design of software itself— that we’re not just using new tools, but building a new kind of computer.

He says that LLMs are, in a way, the new operating systems.

Thomas Ptacek (via Nick Lockwood, Hacker News):

Some of the smartest people I know share a bone-deep belief that AI is a fad — the next iteration of NFT mania. I’ve been reluctant to push back on them, because, well, they’re smarter than me. But their arguments are unserious, and worth confronting. Extraordinarily talented people are doing work that LLMs already do better, out of spite.

All progress on LLMs could halt today, and LLMs would remain the 2nd most important thing to happen over the course of my career.

[…]

but the code is shitty, like that of a junior developer

Does an intern cost $20/month? Because that’s what Cursor.ai costs.

Part of being a senior developer is making less-able coders productive, be they fleshly or algebraic. Using agents well is both a both a skill and an engineering project all its own, of prompts, indices, and (especially) tooling. LLMs only produce shitty code if you let them.

Gergely Brautigam (Hacker News):

While the post is funny at times, I feel like it’s absolutely and completely missing the point of the skepticism. Or at least I feel that it is glossing over some massive pain points of said skepticism.

Peter Steinberger:

You gotta look at the iOS app. This is a completely agent-built port of the web frontend.

ageesen (via Peter Steinberger):

I’ve been using CC NON-STOP (think 3 or 4 five hour sessions a day) over the last 11 days. Mostly Opus 4 for planning and Sonnet 4 for coding. I have a workflow going that is effective and pushing out very good quality code.

I just installed ccusage out of curiosity, and was blown away by the amount of daily usage.

Any of you feeling the same kind of urgent addiction at the moment?

Like this overwhelming sense that everything in AI tech is moving at light speed and there literally aren’t enough hours in the day to keep up? I feel like I’m in some kind of productivity arms race with myself.

Don’t get me wrong - the output quality is incredible and I’m shipping faster than ever (like 100x faster). But this pace feels unsustainable. It’s like having a coding superpower that you can’t put down…. and I know it’s only going to get better.

Ken Kocienda (Mastodon):

Well, over the last year or so, I’ve made the biggest-ever change to the way I write software. I now code with AI assistance all the time. Here’s why. Here’s how.

[…]

I write fewer lines of code than ever— by hand in the old-fashioned way—yet I create more code than ever. What’s more, as far as I can tell, there is no detectable reduction in quality. I’m just faster at making changes, fixing bugs, and turning out more features.

[…]

I still think of the features ideas. I still plan how I want the features to be implemented. I still read over all the code before I commit—and I still take the same responsibility over the code I merge—but I don’t write each and every if/then or function call anymore. No more typing out boilerplate code, either. I no longer have to. The AI does this grunt work for me.

My mind feels freed up. I remain at the higher levels of abstraction, with more time to think about ideas and plans. There’s less cognitive overhead in attempting things, so I attempt more things.

I still don’t really get how to apply this to my work. Most of what I’m doing is already thinking vs. typing grunt work. Describing how to change or enhance my existing codebase seems more daunting than just doing it directly. Is reviewing code written by an AI actually like reviewing code written by another human? And how does it help you fix bugs?

These days, I do most of my coding in python. I don’t love the language—maybe someday I’ll say why in more detail. However, since the models know python so well, it is possibly the most effective language to use for AI coding. Unlike other languages.

Kyle Hughes:

At work I’m developing a new iOS app on a small team alongside a small Android team doing the same. We are getting lapped to an unfathomable degree because of how productive they are with Kotlin, Compose, and Cursor. They are able to support all the way back to Android 10 (2019) with the latest features; we are targeting iOS 16 (2022) and have to make huge sacrifices (e.g Observable, parameter packs in generics on types). Swift 6 makes a mockery of LLMs. It is almost untenable.

This wasn’t the case in the 2010s. The quality and speed of implementation of every iOS app I have ever worked on, in teams of every size, absolutely cooked Android. I have to give Google credit: they took all of the flak about fragmentation they got for a decade and grinded out the best mobile developer ecosystem in the world, and their lead seems to be increasing at an accelerating pace. I am uncomfortable with how I have positioned my career, to say the least.

To be clear, I’m not part of the Anti Swift 6 brigade, nor aligned with the Swift Is Getting Too Complicated party. I can embed my intent into the code I write more than ever and I look forward to it becoming even more expressive.

I am just struck by the unfortunate timing with the rise of LLMs. There has never been a worse time in the history of computers to launch, and require, fundamental and sweeping changes to languages and frameworks.

John Gruber (Mastodon):

There were pros and cons to Apple’s approach over the last decade. But now there’s a new, and major con: because Swift 6 only debuted last year, there’s no great corpus of Swift 6 code for LLMs to have trained on, and so they’re just not as good — from what I gather, not nearly as good — at generating Swift 6 code as they are at generating code in other languages, and for other programming frameworks like React.

John Voorhees:

To hear the AI fans tell it, I, the developers we write about, and nearly everyone else will be out of jobs before long. Some days, that threat feels very real, and others, not so much. Still, it’s caused a lot of anxiety for a lot of people.

Rand Fishkin (via Hacker News):

Over the weekend, I went digging for evidence that AI can, will, or has replaced a large percent of jobs. It doesn’t exist. Worse than that, actually, there’s hundreds of years of evidence and sophisticated analyses from hundreds of sources showing the opposite is true: AI will almost certainly create more jobs than it displaces, just like thousands of remarkable technologies before it.

Brian Webster (Mastodon):

I’ve been an independent Mac developer for going on twenty years now (yikes!).

[…]

My initial reaction was pretty skeptical, since it’s clearly full into its hype cycle at the moment, and the previous hype cycle of crypto/blockchain/Web3/NFTs has pretty much proven to mostly be a way to run more elaborate scams. As time has gone along though, it’s undeniable that this LLM stuff has actual utility, even if it’s being thrown at everything under the sun by CEOs in hopes of being able to pay less money to their employees.

[…]

But the code itself isn’t actually the satisfying part: it’s the process of creating something new, and it’s all the things I outlined above about diving deep into a particular area, and solving problems for people.

Probably the biggest limitation of being indie is the fact that you just only have so many hours in the day, and there will always be more stuff you want to do than you possibly have time for. What has started to get me excited about using AI tools to assist with coding is that it can take a lot of the grunt work out of the process of doing what I ultimately want to do, which is to try to apply my expertise to solve problems. While my coding expertise is obviously a decent part of why I’m able to do what I do, the truth is that the individual lines of code that I type out are not really what lets me add something to the world, it’s being able to help people via the mechanism of encoding my expertise into software.

[…]

I’m only just getting started with this stuff, having been working full time with Claude Code for all of a week now, but I’ve already implemented features in hours that would have normally taken me days, with basically the same quality of code output in terms of readability, maintainability, etc.

Peter Steinberger:

A friend asked me to show off my current workflow, so I did an impromptu workshop for him and his developers. This is a snapshot of how I approach vibe coding these days.

Kyle Hughes:

I legitimately think that agentic LLMs are the future of personal computers, the new operating system. Using Claude Code to interact with your own software over MCP, and see it autonomously solve problems with it and using it, is transcendent. The rest of the computer feels so antiquated, handmade GUIs feel cumbersome. Our computers will use our computers soon.

Peter Steinberger:

The thing is, people don’t understand that you don’t actually have to pay that much to get incredible AI productivity. After using the best AI subscription deals 2025 has to offer, here’s the real math (all prices in USD). (And yes, I built Vibe Meter to track exactly how much I’m spending.)

Previously:

Update (2025-06-27): Nikhil Suresh:

I think this essay sucks and it’s wild to me that it achieved any level of popularity, and anyone that thinks that it does not predominantly consist of shoddy thinking and trash-tier ethics has been bamboozled by the false air of mature even-handedness, or by the fact that Ptacek is a good writer.

Helge Heß:

The main feature of AI is the license eraser. FOSS software for almost everything was available all the time. But you wouldn’t use it.

Jeff Johnson:

The only empirical evidence of “increased productivity” I’ve seen from AI lovers is a huge number of articles praising AI.

Cesare Forelli:

I appreciate that, to most, reading other developers’ AI success stories is far less interesting or exciting than it is for those who experienced them, but after reading @mjtsai’s Software is Changing Again I decided to share one that blew my mind today.

Setup: customer has a 4D database; for them I built an iPadOS app used by production workers, plus a Vapor “middleman” that makes that app talk with the database.

Max Seelemann:

I feel that with Claude in Cursor, I can finally work as fast as I can think.

Open App Markets Act Reintroduced

Marcus Mendes:

A bipartisan group of senators has reintroduced the 2021 Open App Markets Act, a bill aimed at curbing the gatekeeper power that Apple and Google hold over the so-called “mobile app economy.” Here’s what they’re going for.

If passed, the legislation would effectively force Apple and Google (who are not specifically named in the text) to allow sideloading, support third-party app stores, permit alternate payment systems, and stop penalizing developers for telling users about better prices elsewhere.

The bill’s reintroduction was made by U.S. Senators Marsha Blackburn (R-Tenn.), Richard Blumenthal (D-Conn.), Mike Lee (R-Utah), Amy Klobuchar (D-Minn.), and Dick Durbin (D-Ill.).

Previously:

Paula Bozinovich, RIP

Brian Croll, quoted by John Gruber:

Paula was an employee who you are not going to see profiled in any books on the history of Apple or Steve Jobs. She worked closely with the ops team to ensure CDs and then DVDs shipped on time and correctly packaged in a box. She knew all the systems and the right people to make things happen. She was always committed to getting things better than just right — perfect. Paula’s extraordinary commitment, along with all the hundreds of other unheralded employees, translated the vision of Steve, the designers, the engineers, and the marketing people into a shipping product.

One of the secrets behind Apple’s success has been its ability to execute. Paula was an important part of that fine-tuned machine. She was also quite a character!

iOS 26: Adaptive Power Mode

Joe Rossignol:

Apple says that Adaptive Power Mode can make “small performance adjustments” when necessary to extend an iPhone’s battery life, including slightly lowering the display brightness or allowing some activities to “take a little longer.”

[…]

Adaptive Power Mode is only available on the iPhone 15 Pro models and newer. This is because the AI-powered feature requires an iPhone that supports Apple Intelligence.

As described, it’s not really clear why these features have such high system requirements.

I do really like these different power modes that Apple has introduced over the last few years. I always run my Mac in High Power Mode when plugged in and Low Power Mode when on battery. I don’t miss much putting my watch in Low Power Mode when I know it’s going to be a long day, and then it lasts a surprisingly long time.

Previously:

Wednesday, June 25, 2025

Roundrect Dictator

Nick Heer:

App icons across Apple’s three most popular operating systems share a similar rounded square mask, and it is a downgrade. Simon B. Støvring correctly calls out the “expressive, varied app icons, a case of character over conformity” as a highlight of past versions of MacOS. I miss detailed and artistic app icons plenty. Indulging in realistic textures and thoughtful rendering was not only a differentiator for the Mac; it also conveyed the sense an app was built with a high degree of care.

Perhaps that is largely a product of nostalgia. Change can be uncomfortable, but it could be for good reasons. Stripping icons of their detail might not be bad, just different. But wrapping everything in a uniform shape? That is, dare I say, an objective degradation.

Since MacOS Big Sur debuted the precursor to this format, I have found it harder to differentiate between applications which, as I understand it, is the very function and purpose of an icon. I know this has been a long-running gripe for those of us of a certain age, but it remains true, and a walk through the history of Apple’s Human Interface Guidelines indicates the company also understands it to be true.

[…]

Apple used to guide designers on how to make smaller icons by removing details and simplifying. Something you will often hear from designers is the fun and challenge of very small icons; how does one convey the same impression of fidelity when you have exactly 256 pixels to use? It is a delicate feat. Now, Apple simply says no icon — no matter how large — is deserving of detail. This, to me, betrays a lack of trust in the third-party designers it apparently celebrates.

Previously:

Xcode 26 Beta 2

Apple (download):

Added a new setting that dictates how function names are displayed in C++ frames: plugin.cplusplus.display.function-name-format

[…]

The span property of UTF8View does not support the small string representation in beta 1, and traps for small String instances. A future version of the Swift standard library will lift this restriction.

[…]

The packaging tool (ba-package) and the mock server (ba-serve) crash immediately when the selected Xcode installation isn’t located at /Applications/Xcode.app.

[…]

#bundle does not refer to the correct resource bundle when used from a mergeable library.

[…]

User supplied background images in Icon Composer are composited at the same scale as the 2048x2048 pixel icon renderings, and thus appear much smaller than expected. […] Workaround: Use a very large background image.

[…]

Metric recommendations are now available for the launch time metric in the Xcode Organizer. When there is enough information, the Organizer will display a recommended value for a metric on the chart associated with your app’s metrics. Use this data to plan and prioritize performance engineering work.

[…]

You may experience build failures when building projects with Swift macro dependencies. Common symptom is a build failure around _SwiftSyntaxCShims. You can work around this by disabling the swift-syntax prebuilts for macros feature.

John Siracusa:

The second betas of Tahoe and Xcode are both out, but I still can’t do a release build of my app. A very large “swift-frontend” command fails, stopping the build. FB18090372 for any Xcode and/or Swift compiler folks who see this… 🙏

Steven Woolgar:

I filed a ticket on Xcode 16.0 beta. Every release I add a new entry. The latest being: “Still broken in Xcode 26.0b2”. Sigh

I use this feature every single time I use Xcode.

Just found a new one today. I wonder how long I’ll be “still broken”ening this one?

Craig Hockenberry:

Now that the Finder icon is under control, can we get some attention on the Xcode icon?

Previously:

Update (2025-06-26): Jonathan Wight:

Xcode 26 changing cmd+w behaviour fucking everyone else up too?

Jonathan Wight:

Oh and has anyone figured out how to view two source files side by side in Xcode 26?

They’re really fucking with my muscle memory.

Yes I know the feature is still there but i used to be able to click on a symbol to open it up in a split… was useful for referring to something while working on something else - now it’s a bunch of extra clicking.

Radar AI Training

Marko Zivkovic (via Ric Ford, Reddit):

Apple announced its plans for a new opt-in Apple Intelligence training program. In essence, users can let Apple use content from their iPhone to train AI models. The training itself happens entirely on-device, and it incorporates a privacy-preserving method known as Differential Privacy.

The opt out seems to be via the Share iPhone & Watch Analytics button, which is the iOS equivalent of the Mac button that Mysk demonstrated Apple doesn’t actually honor.

In a social media post, developer Joachim outlined a new section of Apple's privacy notice in the Feedback application. When uploading an attachment as part of a bug report, such as a sysdiagnose file, users now need to give Apple consent to use the uploaded content for AI training.

Joachim Kurz:

After a long time, I filed another bug report using Feedback Assistant because the bug was bad enough that it’s worth the effort of writing it all down.

When uploading a sysdiagnose (or probably any other attachments) you get the usual privacy notice that there is likely a lot of private and other sensitive info in those log files. It’s not a great feeling but it is what it is with diagnostic data and I mostly trust the folks at Apple to treat it with respect and I trust the Logging system to redact the most serious bits.

However, when filing a feedback today a noticed a new addition to the privacy notice:

“By submitting, you […] agree that Apple may use your submission to [train] Apple Intelligence models and other machine learning models.”

WTF? No! I don’t want that. It’s extremely shitty behavior to a) even ask me this in this context where I entrust you with my sensitive data to help you fix your shit to b) hide it in the other privacy messaging stuff and to c) not give me any way to opt out except for not filing a bug report.

I could understand if the plan were for Apple to train some kind of internal AI model to help them triage bugs. Some developers might still have a problem with this because they don’t want their private data leaking out of the context of their particular bug. But when Apple says Apple Intelligence models that sure sounds like training the general models that will be available to the general public.

They probably have something in the terms of service that allows them to retroactively do this for previously submitted bugs, going back decades. Really, the only solution for keeping your data private is not to share data—even for internal use by the Privacy Company—that you don’t want to be shared. That is, only submit sysdiagnoses from a clean test Mac.

Joachim Kurz:

Also, there is a lot of sensitive information in a sysdiagnose. Taking it and throwing it into a big pile of data and compute and hoping something useful comes out of it is not treating my data with the respect it deserves.

On the topic of Radar, also see this thread by Max Seelemann:

Apple’s disrespect for the time and energy going into developer bug reports is making me sad. 🙁

Reported a performance issue with a sample app a couple of months ago. Of course, no feedback.

And now, Beta 2, they just ask if it’s still present and a sysdiagnose. They could have just launched the sample themselves and would have seen that NOTHING has changed. My guess is that no single developer at Apple has ever seen the issue and they just randomly ask about this out of procedure? Depressing.

Der Teilweise:

My model of the radar world is that they tag reports like “Finder icon position” or “… performance” and the devs add tags to their commits. Whenever a release contains a commit where the tags match, you automatically get those “please verify” mails.

Like “if we touch a part of the code that is closely related to a report, just ask the reporter if we fixed it as a side effect.”

I doubt this is the case because I’ve had bugs that did get fixed but where I never got this e-mail, even though really rough tagging would have made my bugs match. Or maybe some percentage of bugs just never get tagged.

Peter Steinberger:

The best is when they personally reach out via DM and then you make them an example and you NEVER hear back.

My favorite is when they do write back once and say that you can ask for updates on the bug, and then each year you ask for an update and never ever hear anything again.

Previously:

iPadOS 26 Audio and Video Capture

Jason Snell:

It’s probably worth explaining why this feature has so many podcasters and other creators in a bit of a tizzy. Many podcasts record remotely, with people all over the world, and they usually use some sort of app to have that real-time conversation. It was Skype back in the day, and these days it’s often Zoom or a web-based recording program like Riverside. Because those apps prioritize real-time audio and video over quality, the quality is frequently bad by necessity.

To ensure that the very best audio and video is used in the final product, we tend to use a technique called a “multi-ender.”

[…]

The problem has been iPadOS and iOS, which won’t let you run a videoconferencing app and simultaneously run a second app to capture your microphone and video locally. One app at a time is the rule, especially when it comes to using cameras and microphones. Individual iPhone and iPad videoconferencing apps can choose to build in local-recording features if they want, but in practice… they just don’t.

Apple has solved this in an interesting way. What it’s not doing is allowing multiple apps access to the microphone (so far as I can tell, I just tried it and the moment I started a FaceTime call, my local recording app stopped). Instead, Apple has just built in a system feature, found in Control Center, that will capture local audio and video when you’re on a call.

This is a great illustration of the (old) Mac vs. iOS philosophies. With the Mac, you get a more open system that lets developers innovate as well as potentially interfere with other apps. With iPadOS, if you wait 15 years you may get a tailored solution built-in, but if what you need isn’t exactly what Apple pre-imagined and blessed you might still be out of luck.

Fernando Silva:

Before we deep dive into this topic, I want to mention that I love iPadOS 26. Yes, it’s the first beta, so plenty of tweaking and optimization still needs to get done. But overall, it’s been what I have wanted on iPadOS for years. That being said, a few things still hold it back from being a true MacBook replacement for some people. So if you’re debating between an iPad Pro or a MacBook, here are five essential things iPadOS still can’t do.

Previously:

Tuesday, June 24, 2025

macOS Tahoe Beta Forces Sharing FileVault Key

Jeff Johnson:

Wait, what? macOS Tahoe beta 2 automatically enabled FileVault and uploaded a recovery key to iCloud.

I did not have a choice in the matter.

First, they silently enable iCloud Keychain, then they upload your FileVault key to it without asking.

Sarah Reichelt:

Beta 1 did this too. I turned it off immediately.

I’m not sure what’s going on here. This did not happen to me with either beta 1 or beta 2 (booting from an external drive). That said, I consider it a dark pattern that there’s still no way to opt out of storing your FileVault key in your iCloud account once and for all. I have to keep unchecking that option in the setup assistant, and it’s easy to miss if you’re just trying to get through all the pages as quickly as possible.

FB18310782:

When upgrading to macOS 26 Tahoe, the auto enabling of FileVault during Setup Assistant with no way to disable/not enable FileVault breaks personal setup of a device that is used as a personal home server that maybe headless.

[…]

I need to be able to restart the Mac Mini “server” remotely and have it come back up automatically to a full booted state without putting in a password for a local user to get services back up and running.

Previously:

Update (2025-06-26): Update (2025-06-26): See also: Hacker News.

macOS Tahoe 26 Developer Beta 2

Andrew Cunningham:

We are not highlighting this second round of developer betas because we think you should go out and install them on the Macs, iPhones, iPads, and Apple Watches that you use daily. These are still early versions, and they’re likely to have significant performance, battery, and stability problems relative to the current publicly available versions of the software.

But generally speaking, these second developer builds are the first ones I install on my secondary test devices—a collection of mostly older devices that have been replaced but are still considered current enough to run the new update.

The official release notes don’t seem to say what’s new in beta 2. After day of waiting for Software Update to show the new build, I finally gave up and downloaded the full installer.

Michael Flarup (MacRumors):

We did it! New finder icon in Tahoe beta 2!

Zac Hall:

The issue? Finder has a dark side and a light side. The dark side is located on the left half of the face while the light side makes up the right half. Finder in macOS Tahoe 26 reversed this arrangement (while using an outline effect around the right side).

Juli Clover:

In macOS Tahoe Beta 2, Apple included a new option to add a background to the menu bar, making it possible to have a menu bar design that’s similar to the menu bar in macOS Sequoia.

John Siracusa:

Mmmmm…settings…

Joe Rossignol:

The second beta also gives a fresh coat of paint to the Migration Assistant app icon.

John Siracusa:

I think we need to talk about what has happened to Disk Utility.

Basic Apple Guy:

With this release being one of the most dramatic visual overhauls of macOS’s design, I wanted to begin a collection chronicling the evolution of the system icons over the years. I’ve been rolling these out on social media over the past week and will continue to add to and update this collection slowly over the summer.

Jack Wellborn:

Five thoughts on Tahoe’s Safari monstrosity that @siracusa shared via ATP show notes[…]

Steve Troughton-Smith:

I think the Journal app in macOS Tahoe is the first first-party Mac Catalyst app to rely on rich text editing, traditionally a pretty weak spot along Catalyst’s API surface (text editing and document management in general). Hopefully that kind of dogfooding will finally close that gap.

Previously:

Update (2025-06-25): Dan Counsell:

While the Finder icon is improved on beta 2 of Tahoe, I do still wish they’d gone with something closer to @flarup’s rendition of the icon 🥹

Dan Counsell:

And @louie made this version in Icon Composer that’s arguably even better, and honours the original 🥰

Stephen Hackett:

I know some folks (cough, cough, John Siracusa, cough) want Apple to go even further and make the lighter color on the right extend all the way to the edges of the the icon, which would look something like this very rough mockup I did in just a few minutes[…]

I can understand that, and the desire for the line between the two halves of the icon to be more rounded as it is in macOS Sequoia. However, Apple’s current Finder icon works well for me[…]

John Gruber (Mastodon):

The Tahoe beta 2 Finder icon is slightly better, but seeing it this way makes it obvious that the problem with the Tahoe Finder icon isn’t whether it’s dark/light or light/dark from left to right. It’s that with this Tahoe design it’s not 50/50. It’s the appliqué — the right side (the face in profile) looks like something stuck on top of a blue face tile. That’s not the Finder logo.

Louie Mantia:

As a person who used to make app icons at Apple, I don’t think the situation is that the designer doesn’t know, but rather the decision maker who is supposed to have taste doesn’t know. (If this person isn’t Alan Dye, then that’s even more embarrassing for him that he’s not the person making that call.)

Also, slightly purpler is better. More Mac, less Mail / Safari like I said before.

Rui Carmo:

Sometimes designers want to make their mark so bad on a project they go and gloss over either tradition, established branding or earlier styles that were there for a reason, and the updated Beta 2 icon still does not look like the Finder to me, even if I squint at it without glasses.

Riccardo Mori:

The new Migration Assistant icon is a fucking joke. Meaningless. Maybe it can work in an airport to mark an emergency exit or something.

The old one is so simple and clear. From an ‘old, now inactive’ system to a ‘fresh new one’. Migration, indeed. Right there.

Jonathan Wight:

Feels weird to see Apple tossing decades of beautiful iconography down the drain for what seems like… bad generic clip art.

Steve Troughton-Smith:

Can of worms aside… I’ve been thinking it since WWDC, but Liquid Glass on macOS really feels broken without the fluid animations on iOS, much in the same way a screen without touch ‘feels broken’. So many more state changes in the OS seem like they need some kind of animation or transition, and the new design language asks questions of the Mac that it’s just not ready to answer.

Cabel Sasser:

i know this is nitpicky potatoes but this interaction between the macOS Tahoe Finder’s sidebar and status bar is truly wild.

it’s an extremely hard problem to solve! when you suddenly “float” a thing that has to sit directly next to lots of weird things

John Siracusa:

As requested by @rvr, here’s a control sample from Lion, the reimagined Lion by @realmacdan, Sequoia, and Tahoe beta 2.

Dave Nanian:

Using a custom NSSegmentedCell for an NSSegmentedControl on Tahoe, the overridden NSSegmentedCell methods are not called however, using they are called using the exact same code on Sequoia

Update (2025-06-26): Dave Nanian:

NSAlert constantly throwing constraint errors on Tahoe (FB18020308) is lots of fun[…]

Update (2025-06-27): Mario Guzmán:

I mean, just compare Music under Sequoia and Music in Tahoe. One is clearly easier to read than the other one. It is also far less distracting. I can tell you it isn’t Music under Tahoe.

[…]

I’ve been an iTunes user since 1.0 under Mac OS 9.x. This is the biggest UX regression in its entire 24 year history. Sigh. 😔

Pierre Igot:

[The Finder icon] might be better than in beta 1, but the edges now look fuzzy as hell… At this rate, we’re going to end up with macOS 26 “Cotton Ball” Tahoe. And everyone’s going to waste their time rubbing their eyes and cleaning their eye glasses all day long.

Norbert Heger:

What’s really great about these early Aqua designs (the buttons in particular) – they looked translucent without actually being translucent. So they looked cool and glassy but also had perfect legibility at the same time.

Gus Mueller:

The new Safari on Tahoe is so bad I’ve switch browsers for the first time in … fuck, when did Safari come out?

Steve Troughton-Smith:

Safari seems to be capable of viewing fewer and fewer sites, sans performance issues, with each OS release 😪 I feel like I’m back in the early 2000s.

It’s sad.

Update (2025-07-01): Mario Guzmán:

This is sort of what I was afraid of in #macOSTahoe. There are inconsistencies even with menu items consistent across all apps, like the About… menu item.

Some of Apple’s apps don’t have an icon. Some do, it is the “i” in a circle. Then you got Photos which luckily has a Photos icon in SF Symbols they can use.

Mario Guzmán:

Feels like the entire “design” of the new playback controls in Tahoe’s Music app are due to consequences of their new design. The lack of space & clarity turned everything into more clicks & barely visible controls/labels.

You now click to open the volume slider. But you hover to open the playback track slider. There’s an Action Menu (but you can only see it if you have Hawk eyes).

Track/playback timestamps are impossible to read. Pressing the Up Next button yeets everything off to the side.

Alexander Deplov:

The volume control covers up the other buttons, wow!

Joe Rosensteel:

One of my beefs with the Tahoe icons is that in many cases they reproduce simplified forms of existing icons in a glass material without considering what the result is communicating—absent knowing the lineage. The App Store is a series of haunted popsicle sticks because it used to be tools that formed the letter “A” for “App” the podcasts icon was a simplified form of a person with lines radiating outward indicating they were broadcasting so it becomes a series of overlapping circles as a lamp.

Michael Flarup:

How do you like your new trash can?

Brent Simmons:

I’m wondering what I’d have to reimplement in order to provide a setting in the Mac version of NetNewsWire to turn on/off Liquid Glass.

Adrian Schönig:

TIL that the “Here’s to the crazy ones” text disappeared from the TextEdit icon over 10 years ago. I thought it was still on there and was about to rant about it disappearing in Tahoe. Ah, well. That was such a nice touch.

Previously:

Update (2025-07-04): BasicAppleGuy:

macOS Icon History
Maps 🗺️

Dave Nanian:

Apple friends: we’re seeing a problem in Tahoe where if a Mac is in Dark Wake, and our schedule is set to run, we kind of start and then hang.

iOS 26 Developer Beta 2

Juli Clover:

Apple provided developers with the second beta of iOS 26, introducing the first changes and refinements to the new operating system since it debuted after the WWDC keynote. Because we’re early in the beta testing process, there are quite a few tweaks to iOS 26, which we’ve rounded up below.

The official release notes don’t seem to say what’s new in beta 2.

Dave Mark:

I’m a big fan of iOS 26 beta two.

Apple made lots of lovely tweaks. Especially where liquid glass is concerned.

One tweak made Control Center more opaque, easier to read (see pic).

Juli Clover:

The Control Center buttons are now slightly more opaque, making it easier to see the different control options even on a multicolored background. The new, more opaque look is apparent with the standard app icons and the glass icon style.

Zac Hall:

‘Alt 1’ ring tone is now present under Reflections. This was previously discoverable in code but not visible in Settings. The presentation is still odd and certainly incomplete in beta.

Unknown senders uses a blue notification badge instead of a red notification badge to distinguish between the two types of alert badges.

The iOS 26 wallpaper also now uses a parallax effect that was absent during beta 1.

[…]

Safari controls within the More Menu (…) have been reorganized with different sort order and icons (but same functionality).

Marco Arment:

The Liquid Glass toolbar in Music has NOT noticeably changed its legibility with colorful artwork behind it.

Simon B. Støvring:

NOOOO, WHAT ARE YOU DOING, APPLE? Why aren’t app icons centered in the iPhone’s Dock when there are only two app icons in iOS 26 beta 2?

Previously:

Update (2025-06-25): Juli Clover:

With the launch of iOS 26 and HomePod Software 26, Apple is adding support for Crossfade, an Apple Music feature that improves transitions between songs.

Juli Clover:

Image Playground lets you type in any phrase to generate an image in one of three non-realistic styles. You can also select pre-determined scenes and props that Apple suggests, and generate images featuring your friends and family. It’s these images where you will see the biggest difference in iOS 26, because the content generated based on images of people has changed quite a bit.

Update (2025-07-01): Jesse Squires:

I really want to like Liquid Glass, but goddamn.

iOS 26 Books app[…]

Previously:

$10 Off at Fandango

Casey Liss:

🤮

In case you forgot after F1 got multiple sections of the keynote at Apple’s developer conference.

Marco Arment:

This is a core system app interrupting you, promoting a sale by a movie-ticketing company, to push you to go see the platform vendor’s new movie.

Why not just pop up random ads all the time, always creating new channels that everyone’s opted-into by default so you can never keep up with opting out of them all?

Oh wait, that’s already what happens.

You can’t opt out because the Wallet app also shows notifications that are actually important.

And non-notification ads are mixed in everywhere now: the services apps, System Settings, etc. (I also got the F1 ad as a banner within the Wallet app.) You could make that case that people don’t know about the different services and the content that they offer and so this is helpful onboarding. But this has been going on for years with no way to opt out. We’re long past the point where key system apps have become nagware. I need extra taps/clicks to get through the ad and just play my music. Screen space is wasted showing thumbnails for movies and articles that are not available to me instead of the ones that actually are.

Previously:

Update (2025-06-25): Dave Wood:

Carrot on top of it as always!

Joe Rossignol:

Some of the iPhone users who received the push notification have complained about it across the MacRumors Forums, Reddit, X, and other online discussion platforms.

“As far as I can tell, Apple is now just sending me ads to my screen now as push notifications, something I hate with an absolute passion and disable across the board in every app that tries this,” said one person who received the notification.

Some people are especially upset about receiving a push notification ad through the Wallet app because it is a very important app for personal finances, so simply turning off notifications for the entire app is not a feasible solution.

Worse, Apple seems to be ignoring the guidelines that apply to App Store apps.

Kerry:

There’s a wallet notifications setting to disable offers and promotions. 🙃

This is only in iOS 26, and it’s hidden behind the ··· menu—lately I’ve been seeing this called the meatballs menu, I guess as a take off the hamburger menu—rather than in the notification settings.

Warner Crocker:

Granted there aren’t too many who lust for the ever increasing onslaught of advertising and marketing pitches we’re bombarded with hourly. I’m certainly not one who does. But advertising and marketing, as overused and overwrought as it has become, in and of itself isn’t enshittification, no matter how fast it grows like weeds rapidly enveloping every corner of our Internet usage.

M.G. Siegler:

Look Apple, we get it. You really, really, really, really want F1 to be a hit. And after a series of feature film flops, you really need it to be to maintain any level of credibility in the space. The Apple TV+ shows have been, for the most part, great. The movies, prettymuchtheopposite. That’s obviously somewhat subjective, but it also matters for things like word-of-mouth. And that matters more than it normally would for Apple’s movies because they’ve inexplicably been so bad at marketing them.

[…]

This is not the first time Apple has dabbled in promotion for Apple Pay and their partners, of course. But it is the first time they’re hitting this trifecta: using their device to push their service and their movie. It’s a bit much. But it’s also just a push notification (and a notice in the Wallet app), you can just shoo it away, right? Sure, but there’s also clearly a reason why this backlash keeps bubbling up.

As I wrote last night (referencing the most famous linewritten by Jonathan Nolan): You either die ranting against inserting ads or live long enough to start inserting ads.

[…]

But again, the problem is their previous rhetoric against this general business. One imagines that they’ll try to use the “intrusive” and “personal data” distinction, but those are semantic lines that will fade eventually. If Apple does indeed keep pushing more into ads, they’ll also keep doing things to make those ads more effective. They already failed in the space once with ‘iAd’, and much as with F1 itself, they can’t afford to fail again. If and when Tim Cook is no longer CEO, that could be the perfect timing to fully revisit previously precious stances…

For now, we just have the scent of hypocrisy and the appearance of greed with these ads. Again, I’m not sure it’s the latter – I think they just really, really, really want and need F1 to be a hit and are pulling out every advertising stop that they can, including on their own properties. But it’s no less hypocritical.

Update (2025-06-27): John Gruber (Mastodon):

What supplies are running out on this promotion? Why add that “terms apply”? This is just a shit notification from top to bottom, putting aside whether any such notification should have been sent in the first place.

[…]

(a) iOS 26 is months away from being released to the general public — there exists no way to opt out of such notifications now; and (b) at least for me, I was by default opted in to this setting on my iOS 26 devices.

This was such a boneheaded marketing decision on Apple’s part. They cost themselves way more in goodwill and trust than they possibly could have earned in additional F1 The Movie — wait, sorry, my bad, F1® The Movie — box office ticket sales. It’s like Apple got paid to exemplify Cory Doctorow’s “enshittification” theory. Apple Wallet doesn’t present itself as a marketing vehicle. It presents itself as a privacy-protecting system service.

John Gruber (Mastodon, Hacker News):

It’s a fact that no company can inject an ad into your physical wallet. It just can’t happen. So if Apple’s message to users is that they should trust Apple Wallet, and move more of their “shit that goes in your wallet” life from their traditional analog wallet into their digital Apple Wallet, that’s the bar. No ads, ever. They’re competing against the privacy and intimacy of one of the most personal things people carry with them.

[…]

I’m 99.9 percent certain this F1 ad was just blasted out to zillions of Wallet users indiscriminately, but some number of users who got it — especially people who know they’re in the demographic for the movie — surely think they got the ad because Wallet is tracking their interests and activities. Like, what if you recently bought tickets to see another summer blockbuster movie? Using Apple Wallet? And then you got this ad? It’d be completely sensible to be spooked by that, and conclude that Apple Wallet is tracking you.

So much for the notion that it doesn’t matter how much money and attention Apple’s spending on TV content because it doesn’t affect their core products. It turns out they’re fully willing to strategy tax their brand equity because the movie business hasn’t been going great and they need this one to be a hit.

Previously:

Update (2025-07-01): Francisco Tolmasky:

Obviously old news now, but one thing that is particularly baffling about the F1 ad blunder is how low stakes the potential upside was. It would be one thing to send an ad out about the new iPhone, or even the Vision Pro… but some nothing movie that will absolutely be forgotten about in 3 months and whose entire demographic is “dads”? Really? That’s what you blow your trust capital on? One thing that is certain is that the F1 ad debacle will be remembered for far longer than the F1 movie.

Jonathan Wight:

Maybe spend 0.01% of that F1 movie marketing budget on fixing the Apple Bluetooth stack.

John Gruber:

This is all the work of ham fisted marketing doofuses. And it’s not consistent. Here’s the ad getting tons of play in the App Store[…]

Geoff Duncan:

This isn’t as egregious as Apple’s F1 promotion via Apple Wallet and there are a zillion more important things happening, but Apple has again chosen to spam Logic Pro users.

M.G. Siegler:

Well, it seems to have worked. At last – as long predicted – a box office victory for Apple. Well, call it winning lap one, perhaps. Still a win is a win. And the F1 opening box office results are clearly a win, per the numbers Pamela McClintock is reporting for The Hollywood Reporter[…]

Apple Pulls “Convince Your Parents to Get You a Mac” Ad

Joe Rossignol:

Apple today shared The Parent Presentation, which explains why a Mac is a useful tool in college. The customizable 81-slide presentation is available in PowerPoint, Keynote, and Google Slides formats. After downloading the template on this page, you can fill in your name and some other key details, and make other edits to your liking.

The presentation mostly contains tongue-in-cheek comments, but it also outlines a few real benefits of Macs, such as the MacBook Air's portability.

In an accompanying YouTube video shared by Apple, comedian Martin Herlihy shows a group of high school students how to effectively use The Parent Presentation.

Joe Rossignol:

Apple has marked as private its day-old The Parent Presentation video on YouTube, meaning that it is no longer available to watch.

Apple has also moved The Parent Presentation to the bottom of its College Students page, effectively burying it. When we reported on the marketing campaign yesterday, the presentation was prominently featured at the top of the page.

John Gruber:

I wouldn’t describe it as “cringe”, but I also wouldn’t describe it as “funny”.

[…]

It’s also not the least bit offensive, so it really is unclear why Apple pulled it.

[…]

One obvious problem with “The Parent Presentation” video is that the gist is that everyone involved is stupid: high school kids (the ostensible target audience?) are too stupid to know how to ask their parents for a MacBook for college, parents are too stupid to know they should buy their kids a good laptop, and even Herlihy’s lecturer is a doofus who himself doesn’t know how to deliver a presentation. I don’t know how this got past the concept stage.

To top things off, the downloadable slide presentation — which Apple still has available in Keynote, PowerPoint, and Google Slides formats — is entirely typeset in Arial.

julesme:

Here’s why the ad doesn’t work: It features a shady salesman. The implication is that you have to be shady to convince someone to buy a Mac (which makes no sense given that Apple arguably makes the best laptops, with the highest quality hardware and OS). The tone of the ad is off base relative to the real-world value proposition of a Mac.

The “presentation” is reminiscent of other shady sales pitches, like selling timeshares or any disreputable door-to-door business of the past (expensive vacuums, magazine subscriptions, etc).

I understand it’s trying to be funny (and I also found the comedian to be funny), but the tone and connotation of the ad don’t align with Apple’s brand. Don Draper would not have greenlit this.

It seems to come from the same place as the ad about forgetting the husband’s birthday.

Previously:

Monday, June 23, 2025

iOS 26 Alarm Buttons

9to5Mac:

iOS 26 alarms 🐘 vs iOS 18 🤏

Previously, the Snooze button was much larger than Stop, and they were separated. I think both of these points helped prevent accidentally turning off an alarm that you only meant to snooze.

Jack Fields (via Trung Phan):

At Apple, we found that when both buttons are the same size, people were 30% more likely to oversleep. During testing, we had a version of Clock that logged all touch gestures into a heat map. It was recording where our sleepy hands were smacking around on the screen in order to see how accurate we were in turning off the alarms. It turns out we are pretty shit at it. Snoozing an alarm means you get another chance to try waking up again in a few minutes so it’s low risk. By making the button the stop button such a small hit target, it ensures you’re awake enough to actually stop it.

Jack Fields:

This new design is…interesting. It goes against any studies I was a part of so I’m curious what data they have to support the change. It’s terrifyingly large now.

This seems like the phone call buttons to me, where the previous design was clearly better.

Maynard Handley:

I’m less interested in the UI of buttons and much more interested in the fact that, 10+ years after Apple Watch was first released, it’s still utterly shit at handling time zones.

We have three types of object, Alarms [with Sleep alarm as a special case], Reminders, and Calendar events. They all behave differently when you change time zones, and every one of them gets something wrong.

Not to mention that since some watch update a few months ago, the time shown in an alarm complication is wrong. If you switch off the sleep alarm after sleep time has kicked in, the complication does not update the displayed time.

Previously:

ASIF Disk Images in macOS Tahoe

Howard Oakley (Hacker News):

Disk images have been valuable tools marred by poor performance. In the wrong circumstances, an encrypted sparse image (UDSP) stored on the blazingly fast internal SSD of an Apple silicon Mac may write files no faster than 100 MB/s, typical for a cheap hard drive. One of the important new features introduced in macOS 26 Tahoe is a new disk image format that can achieve near-native speeds: ASIF, documented here.

This has been detailed as a major improvement in lightweight virtualisation, where it promises to overcome the most significant performance limitation of VMs running on Apple silicon Macs. However, ASIF disk images are available for general use, and even work in macOS Sequoia. This article shows what they can do.

Documentation is minimal at this point, and the macOS tools for manipulating ASIF disk images are limited compared with those for other formats, but this looks really promising.

Oakley has a table comparing the performance with other types of disk images when stored on internal SSDs, but the comparisons are not really apples-to-apples because they were made using different Macs. I did some quick benchmarks using the same Mac and SSD and got much slower results than he did in absolute terms, I think because I was using an external SSD connected via USB. However, in relative terms I found that .sparsebundle was about 50% faster at writing than .sparseimage and that .asif was about 1,000% faster. Read speeds were similar (and fast) among the formats. Benchmarking is tricky, especially with SSDs, so I don’t make any specific claims about what these numbers mean, but they are at least encouraging.

I’ve added preliminary support for ASIF disk images to the new public beta version of DropDMG.

Previously:

Icon Composer Notes

John Brayton:

I would not have figured out how to use this tool without help, so I wanted to pass along the correct way to use it.

[…]

On macOS, one sets an alternate icon by drawing it in code using the NSDockTile API. I believe Mac apps have no access to the system-wide Icon & widget style setting or the current tint color.

You can create an icon using NSImage(named: String) and display it in the app with an NSImageView. If the icon has any variation between the light mode version, dark mode version, or mono version, the image drawn shows the mono version.

When I add multiple .icon files to a Mac app, Xcode seems to only include the app’s default icon. It seems to ignore the others. The icon is included as a .icns file that appears to be generated from the .icon file. It is probably possible to generate those .icns files some other way and include those as resources.

See also: Brad Ellis (via Mastodon).

Previously:

Update (2025-06-24): Keith Harrison:

You no longer need to add default, dark, and tinted variants of the app icon to the asset catalog in the app bundle. What you need to do is drag the Icon Composer .icon file into the project navigator sidebar of the Xcode project[…]

[…]

One final step, in your app target settings, make sure the App Icon Set Name matches the name of the Icon Composer icon file name (without the .icon extension)[…]

[…]

One thing that is missing is support for alternate app icons.

Update (2025-06-26): Sam Rowlands:

What am I doing wrong? Tahoe icons.

  1. Created Icon in Icon Composer.
  2. Added .icon file to Xcode project (not assets section).
  3. Renamed it to AppIcon.icon.

But it won’t show either when running or when archiving.

macOS 27 to Drop Support for AirPort and Time Capsule Backups

Zac Hall:

Spotted by @StellaFudge on X, macOS Tahoe 26 includes a warning message when using Time Machine to back up a Mac to Apple router-connected storage.

The next major version of macOS will no longer support AirPort Disk, or other Time Capsule disks, for Time Machine backups.

I wonder if this is because they’re removing AFP entirely, after recently deprecating it in macOS 15.5.

Joe Rossignol:

Starting with macOS 27, [network Time Machine] backups will require a storage drive that supports more current file-sharing protocols like SMBv2 and SMBv3.

Time Capsules only support AFP and SMBv1, I think.

Previously:

Friday, June 20, 2025

Subtle Swift Retain Cycle

Paul Samuels:

The problem we have looking at the scope is that the strong reference is in scope until the end of the function, but we have our repeat loop before the end of the function so we will never get to the end.

[…]

You could write a unit to verify that the reference does not leak something like this.

Previously:

Update (2025-06-26): Greg Bolsinga:

Beside other issues, the code here does work before seeing if the Task is cancelled. This is contrary to the documentation.

Apple Previews Passkeys Credential Exchange

Dan Goodin (Slashdot):

The import/export feature, which Apple demonstrated at this week’s Worldwide Developers Conference, will be available in the next major releases of iOS, macOS, iPadOS, and visionOS. It aims to solve one of the biggest shortcomings of passkeys as they have existed to date. Passkeys created on one operating system or credential manager are largely bound to those environments. A passkey created on a Mac, for instance, can sync easily enough with other Apple devices connected to the same iCloud account. Transferring them to a Windows device or even a dedicated credential manager installed on the same Apple device has been impossible.

[…]

The system provides a secure mechanism to move the data between apps. No insecure files are created on disk, eliminating the risk of credential leaks from exported files. It’s a modern, secure way to move credentials.

This is progress, but personally I still wish for a way to directly get at my data, so that I’m not at the mercy of the sending app being available and working properly, and the receiving app being approved, at some indeterminate time in the future.

Kyle Howells:

And still I ultimately hope it fails and disappears.

The concept of so fully locking a user out of their login credential that they can never ever have any access to them. It is technologically impossible for them to login to any “unapproved” app, using any “unapproved” device. Is a goal I hope withers and dies bogged down in technical complexity.

The amount of lockdown involves is such that password managers suggesting they might give users the ability to freely import/export their credentials between password managers was met with threats of blacklisting those programs if they did so in a way that actually gave the end user their credentials.

Only “pre-approved” (by the platform vendor, not you) applications which could securely link to each other in a way to ensure you the user were never permitted access to your credentials in any way.

Previously:

Forcing Passkeys

Jeff Johnson:

The new setting is enabled by default; I’ve seen this on multiple computers.

Automatically create a passkey to sign in faster

Allow sites and apps to upgrade existing accounts to use passkeys

This new setting is not actually included on the What’s New in Chrome page (chrome://whats-new/), which doesn’t even mention passkeys.

It is mentioned by the New in Chrome 136 post on the Chrome for developers blog:

You can now upgrade existing password credentials to a passkey.

“You” here apparently refers to web developers, not to users, who aren’t given a choice[…]

Brandon Vigliarolo:

Microsoft has decided to push its consumer customers to dump passwords in favor of passkeys.

The software giant announced the move Thursday, May 1, traditionally known as “World Password Day,” with a declaration it had joined forces with the Fast Identity Online (FIDO) Alliance to re-name the pseudo-holiday “World Passkey Day.”

Redmond’s not just playing with words as the Windows giant has also decided that all new Microsoft accounts will use passkeys by default.

[…]

As we noted late last year, Microsoft isn’t giving its customers an option to continue using passwords, saying that opting out of passkey invitations wasn’t possible.

Troy Hunt:

This is a good point to reflect on the paradox that securing your digital life presents: as we seek stronger forms of authentication, we create different risks. Losing all your forms of non-phishable 2FA, for example, creates the risk of losing access to your account. But we also have mitigating controls: your digital passkey is managed totally independently of your physical one so the chances of losing both are extremely low. Plus, best practice is usually to have two U2F keys and enrol them both (I always take one with me when I travel, and leave another one at home). New levels of security, new risks, new mitigations.

Most people are not going to do this, so it seems like the end game is that either users will lose control of their logins or that passkeys will become mainly a convenience for quickly logging in, with passwords, SMS, and e-mail as a less secure fallback.

Isaiah Inuwa (via Ricky Mondello):

With the announcements from big companies at World Password Day about passkeys, I thought I should share what I've been working on for passkey support on Linux.

Previously:

iOS 26: AlarmKit

Juli Clover:

With iOS 26, Apple is adding a new AlarmKit framework for developers that offer apps with alarm clocks and timers. AlarmKit provides system-level access to alarm functionality, which was previously reserved only for Apple’s Clock app.

Developers will now be able to create apps that have the same feature set and permissions as Apple’s built-in alarm functionality, including alerts that always activate even if Silent mode or a Focus mode is enabled, full-screen snooze and stop display options, and access to the Lock Screen, Dynamic Island, and Apple Watch.

Steve Troughton-Smith:

I thought AlarmKit would be more than it is, that maybe it would be something neat I could incorporate into Broadcasts (i.e. wake up to streaming radio), but the API is very barebones — it’s all handled at the system level, doesn’t wake up your app, and only local sounds can be played, I guess that one’s out for this year

Simon B. Støvring:

Tried out AlarmKit and was really disappointed to find there’s no way to detect when a user swipes an alarm away. The stop intent doesn’t get called. Alarms are for important actions, so apps should be able to react in case of accidental dismissals.

It’s unclear whether the limitations are because this is just 1.0 or because the purpose of the new API is only to appease the EU regulators.

Thursday, June 19, 2025

Swift Assist, Part Deux

John Voorhees (Mastodon):

I’m not a developer, so I’m not going to review Swift Assist (a name that is conspicuously absent from Apple’s developer tool press release, by the way), but the changes are so substantial that the feature I was shown this year hardly resembles what I saw in 2024. Unlike last year’s demo, this version can revise multiple project files and includes support for multiple large language models, including OpenAI’s ChatGPT, which has been tuned to work with Swift and Xcode. Getting started with ChatGPT doesn’t require an OpenAI account, but developers can choose to use their account credentials from OpenAI or another provider, like Anthropic. Swift Assist also supports local model integration. If your chosen AI model takes you down a dead end, code changes can be rolled back incrementally at any time.

It’s also notable that this is Apple’s first stab – in any app – at a chatbot. The chat interface lives in the left sidebar, where you can request code changes, bug fixes, documentation, and other information relevant to a project. Changes proposed by your selected LLM are color-coded to make them easy to review, too.

Previously:

Update (2025-06-24): Peter Friese:

Since all requests to the model are now routed through Proxyman, we can now inspect the communication between Xcode’s Coding Intelligence feature and the LLM in plain text, which gives us a unique insight into how this feature works.

[…]

If you’ve ever wondered how code-editing agents work, and what kind of secret sauce is behind the seeming magic of generating code, resolving compile errors, or even running the app to verify if the implementation works as specified - it’s mostly a more or less elaborate system prompt, a relatively straightforward loop, and an LLM. Oh, and a lot of attention to detail to make it look and work smoothly.

SwiftData and Core Data at WWDC25

SwiftData: Dive into inheritance and schema migration:

Discover how to use class inheritance to model your data. Learn how to optimize queries and seamlessly migrate your app’s data to use inheritance. Explore subclassing for building model graphs, crafting efficient fetches and queries, and implementing robust schema migrations. Understand how to use Observable and persistent history for efficient change tracking.

I’m glad to see that inheritance isn’t on the chopping block, as some feared, but otherwise this was disappointing. For the second year in a row, there don’t seem to be any new features for Core Data (not even a mention in the session) or for integrating Core Data and SwiftData. Is Core Data frozen in time or still getting maintenance? How are you supposed to migrate when the feature sets—and even IDs—aren’t equivalent? Aren’t there tons of apps built on Core Data? What are they supposed to do? It seems like Apple doesn’t care.

Fatbobman:

SwiftData added only one feature this year—model inheritance—which isn’t widely used by most developers. Other highly requested capabilities, such as additional sync options (shared, public) and dynamic predicate adjustments, didn’t materialize in this release. That said, this update isn’t a failure. By fixing several critical bugs from previous versions and filling in some long-overdue functionality, SwiftData in Xcode 26 has become increasingly viable for real-world apps.

Previously:

Apple’s Spotlight Clipboard Manager

Juli Clover:

Spotlight got a major overhaul, and you can now use it to do just about anything on your Mac. It supports actions, so you can send emails and messages without ever opening up an app. Spotlight also incorporates a list of all of your apps plus a clipboard manager that keeps track of what you’ve copied and pasted. You can get to Spotlight’s features with the Command Key and 1, 2, 3, or 4, and you can launch actions with short little phrases like SE for send email.

It seems like there’s no way to open the clipboard history with a single keyboard shortcut. You need to press Command-Space followed by Command-4.

Dan Moren:

Speaking of third-party developers, one claim that often gets leveled at Apple is its tendency to “Sherlock” apps: that is, provide functionality in its OS that’s already offered by third-party apps, thus arguably making it harder for those apps to survive.

However, that phenomenon has always been more nuanced, thanks to the fact that Apple more often than not implements only the lowest common denominator version of these pieces of functionality.

For example, take the new Clipboard History feature of macOS. It does only what its name suggests: keeps a history of things on your clipboard. That’s useful enough in and of itself, but what it doesn’t do is any of the features offered by the slew of third-party clipboard managers. Myself, I’m a longtime user of Tapbots’s Pastebot, which not only provides a clipboard history but also lets me store snippets for frequent use or apply filters to text on the clipboard, such as converting it to plain text or turning Markdown into HTML. Those are features Apple’s not about to build into its own Clipboard History feature because they don’t really deal with the stated purpose: keeping track of items that were on your clipboard.

Marcus Mendes (via Simon B. Støvring):

Apple’s new clipboard history only goes back eight hours.

I plan to keep using LaunchBar for this, but it’s nice to have something built in.

Previously:

Update (2025-06-20): Christian Bender:

LaunchBar, my launcher of choice, has not been replaced by the initial launch of Spotlight, nor by Quicksilver or Alfred or anything that followed. I know firsthand that it won’t go anywhere. This is because it is a labor of love. It does not need to justify a ton of VC funding. It does not need my private data. It has a very solid core, is extensible, and has never lost its focus. So I am not worried about LaunchBar one bit.

What caught my attention most is the App Intent integration. Spotlight now is another app besides Shortcuts that is able to do stuff with them.

Is there a chance that Apple opens that private API at some point?

This is what I really want. I don’t want to be limited to the Shortcuts interface to use App Intents. I want direct access to them. I want to integrate them into LaunchBar actions.

macOS Tahoe’s New Theming System

Tim Hardwick:

In System Settings ➝ Appearance, there are still the standard Auto, Light, and Dark modes, but Apple has added several options that allow you to really mix things up and create your own stylized desktop environment.

[…]

Meanwhile, a new “Icon & widget style” section offers three distinct modes alongside the Default. Like iOS 18, the new Dark option applies black backgrounds to icons throughout the system interface, including System Settings sidebar icons (this works in both Light and Dark modes). You can set this to Always or Automatic, which switches to dark icons at night while maintaining the default appearance during daylight hours.

The new Clear setting emphasizes the Liquid Glass redesign and adds a new transparency by picking up background colors, creating a more translucent interface effect. Clear also includes Light and Dark variants, or it can be set to Auto for automatic day-night switching.

Apple:

You use your favorite design tool to craft the individual foreground layers of your app icon. For iOS, iPadOS, macOS, and watchOS icons, you then import your icon layers into Icon Composer, a design tool included with Xcode and available from the Apple Developer website. In Icon Composer, you define the background layer for your icon, adjust your foreground layer placement, apply visual effects like transparency, define default, dark, clear, and tinted appearance variants, and export your icon for use in Xcode. For additional guidance, see Creating your app icon using Icon Composer.

Apple:

The system renders your app icon for the different platforms, appearances, and sizes from the single Icon Composer file located in your app’s bundle. For previous releases that don’t have the same icon and widget style appearances and Liquid Glass material, Xcode generates the app icon images at build time from the Icon Composer file.

If you choose not to use Icon Composer, you can still use an AppIcon asset catalog in your project containing individual app icon images and let the system apply the Liquid Glass material.

I think I read that you still need the old icon file, anyway, since the new .icon file only deploys back to macOS Sequoia.

Create icons with Icon Composer:

Learn how to use Icon Composer to make updated app icons for iOS, iPadOS, macOS, and watchOS. Find out how to export assets from your design tool of choice, add them to Icon Composer, apply real-time glass properties and other effects, and preview and adjust for different platforms and appearance modes.

Flora Damiano:

Now, with the newest version of its platforms (26) being announced, new appearance modes were introduced alongside the new unified design language, Liquid Glass. There are now multiple ways an app icon can be rendered, depending on the user’s system appearance settings and how it interacts with the background content. They are Default, Dark, Clear Light, Clear Dark, Tinted Light and Tinted Dark.

Simon B. Støvring:

macOS 26 Tahoe replaces the oddly shaped app icons that once brought joy and personality to the Dock with the familiar squircle icons from iOS.

[…]

When you manually assign an app icon through Finder, macOS respects the shape and doesn’t force the glass background. Interestingly, this also works if you just replace the icon with the same one.

[…]

Although squircle icons are now the default, developers can still display a custom-shaped icon in the Dock by setting a view on NSApplication.shared.dockTile.contentView.

People are using this to get their Dock icon out of “squircle jail” if they haven’t updated it yet. But I don’t understand what you’re supposed to do if you want to programmatically set your Dock icon (e.g. to draw a custom badge on top) but you do want to adapt it for the different appearance settings. If I set the applicationIconImage, it seems like macOS displays exactly what I gave it (which makes sense). But does that mean that you have to handle drawing all the different theme combinations yourself?

Previously:

Update (2025-06-20): Howard Oakley:

AFAIK you don’t need (and can’t use) old icons; Xcode turns its new .icon file into .icns for you.

Update (2025-07-04): Craig Hockenberry:

If you’re using NSApplication.shared.applicationIconImage to dynamically change your app’s Dock/Switcher icon, here are some things to know:

  • You DON’T get the edge highlights like other icons in the Dock.
  • You DO get to fill the entire space.
  • You DON’T get put in Squircle Jail.

Steve Troughton-Smith:

Icon Composer looked a little different in 2001

Previously:

Wednesday, June 18, 2025

Showing Settings From macOS Menu Bar Items

Peter Steinberger (Mastodon):

SwiftUI provides SettingsLink for opening settings[…] Simple, right? Except it doesn’t work reliably in MenuBarExtra. The documentation doesn’t mention this limitation.

[…]

The root issue is that NSApplication treats menu bar apps as background utilities, not foreground applications. This affects how windows are ordered and receive events.

[…]

Apple provides an openSettings environment action for programmatic access (available since macOS 14.0+)[…] This currently works on macOS 15, but doesn’t work on macOS Tahoe (26). The logic needs an existing SwiftUI render tree, and simply calling the environment variable does nothing if none is found.

[…]

This shouldn’t be so hard. Opening a settings window is one of the most basic operations any app needs to perform. The fact that it requires hidden windows, activation policy juggling, and precise timing delays in 2025 is a testament to how menu bar apps remain second-class citizens in SwiftUI.

Brian Webster:

Anyone who’s done any amount of SwiftUI on the Mac would not be at all surprised at the amount of hoops required to jump through for things that seem like they should be quite simple.

Previously:

Update (2025-06-19): See also: Rosyna Keller.

SwiftUI at WWDC 2025

What’s new in SwiftUI:

Learn what’s new in SwiftUI to build great apps for any Apple platform. We’ll explore how to give your app a brand new look and feel with Liquid Glass. Discover how to boost performance with framework enhancements and new instruments, and integrate advanced capabilities like web content and rich text editing. We’ll also show you how SwiftUI is expanding to more places, including laying out views in three dimensions.

Is list/table performance actually fixed? The quoted 6x (loading) and 16x (updating) improvements sound good but don’t seem like enough to match NSTableView. The session cites improved scheduling and lazy loading rather than an architectural change. Maybe that’s not possible without changing the API.

Optimize SwiftUI performance with Instruments:

Discover the new SwiftUI instrument. We’ll cover how SwiftUI updates views, how changes in your app’s data affect those updates, and how the new instrument helps you visualize those causes and effects. To get the most out of this session, we recommend being familiar with writing apps in SwiftUI.

Explore concurrency in SwiftUI:

Discover how SwiftUI leverages Swift concurrency to build safe and responsive apps. Explore how SwiftUI uses the main actor by default and offloads work to other actors. Learn how to interpret concurrency annotations and manage async tasks with SwiftUI’s event loop for smooth animations and UI updates. You’ll leave knowing how to avoid data races and write code fearlessly.

Build a SwiftUI app with the new design:

Explore the ways Liquid Glass transforms the look and feel of your app. Discover how this stunning new material enhances toolbars, controls, and app structures across platforms, providing delightful interactions and seamlessly integrating your app with the system. Learn how to adopt new APIs that can help you make the most of Liquid Glass.

Meet WebKit for SwiftUI:

Discover how you can use WebKit to effortlessly integrate web content into your SwiftUI apps. Learn how to load and display web content, communicate with webpages, and more.

Bruno Rocha:

SwiftUI’s performance does seem to be pretty good on iOS 26, at least on the simulator. Seems that all of the table view issues I had with BurnoutBuddy are now gone!

JD Gadina:

So AppKit controls are now just wrappers on some custom/private SwiftUI views on macOS 26 Tahoe?

Daniel Saidi:

After the 6 years that has passed since SwiftUI was first announced, we finally get a native WebView, with some additional web-related tools.

Mario Guzmán:

So this is new in #SwiftUI! In AppKit, it was a paaaaaain to have your Settings window animate from tab to tab based on the view’s content. Some developers (even Apple) wouldn’t bother to do it in some apps.

SwiftUI has a modifier for resizing the window based on the content of the view for the selected tab!

Steve Troughton-Smith:

WWDC25 seems like the least pushy re SwiftUI so far. It seems much more like ‘just another technology’ that you can use in your apps, as it should be, rather than the only way you should be making things.

All of the new UI across the platforms is built with and available to UIKit & AppKit (even if there may be sprinklings of SwiftUI under the hood), and a number of barriers that pushed you to SwiftUI before (like on visionOS) are now open to UIKit.

Seems much healthier!

I don’t know if this is just a temporary pause in messaging, or if the practical realities of SwiftUI have set in now that we’re six years in. It’s great for some things, but it’s not great for everything, and you will always be served well by having a bigger, better, more-powerful framework underneath — whatever that may be in the future

Sarah Reichelt:

I always used to say SwiftUI unless your app needed long form text editing or a list/table with lots of data. With this year’s updates, I’m not sure about either of those limitations, so SwiftUI gets my vote.

Thomas Ricouard:

Remember when SwiftUI launched and we all pretended it was production-ready, and it was. And now it’s been 26 years (but more like five) of SwiftUI and it’s better than ever.

Majid Jabrayilov:

While navigation stacks API didn’t change, the tab navigation provides us with a few new APIs allowing us to improve user experience respecting the new design language. If you still use old TabView APIs, it is a perfect time to refactor your tab navigation. While old APIs also get glassy transformations, the new ones allow us to craft them much better.

Paul Hudson:

Now that you’ve seen everything from SwiftUI 26, what is still missing? What are the key pain points you hit?

Tomas Kafka:

Interaction of drag gestures and scroll view (that I need for scroll/long press and drag to scrub charts in @weathergraph - see below) is still bugridden and requires ugly hacks, some of them even OS version specific.

Previously:

Update (2025-06-19): Gwendal Roué:

Last time I checked (a few years ago), List was requiring a Swift Collection, which means that all elements must pre-exist (there is no support for lazily loading data on demand). This requires an API change.

List was iterating all elements in the collection, upfront, even those which are far off-screen, for some reason, ruining the performance. But that looks like a fixable problem (maybe fixed already).

Nothing beats the performance of fixed-height rows, and that also requires an API change. Apps should be able to better support SwiftUI for computation/caching of element dimensions. Now this is really not trivial: IndexPath is gone, so we are no longer able to deal with plain and fast integers. Instead, elements are identified by their ID. Computing hashes is really frustrating when you want to deal with indexes for raw performance.

Automatic Observation Tracking in UIKit and AppKit

Peter Steinberger:

Remember when SwiftUI came out and we all marveled at how views automatically updated when @Published properties changed? Well, Apple has been quietly working on bringing that same magic to UIKit and AppKit. The best part? It shipped in iOS 18/macOS 15, but hardly anyone knows about it. You don’t even need Xcode 26, it’s just one simple plist entry away.

[…]

The automatic observation tracking is supported in a variety of UIKit and AppKit methods. For most cases, viewWillLayoutSubviews() in UIKit view controllers, layoutSubviews() in UIKit views, and their AppKit equivalents (viewWillLayout() and layout()) are the go-to choices.

[…]

If you’ve used SwiftUI, you know the joy of @EnvironmentObject - drop an object at the root, access it anywhere. UIKit developers have been jealous of this pattern for years. Well, jealous no more. (Mac devs miss out tho - there’s no equivalent on AppKit yet)

The keys are UIObservationTrackingEnabled and NSObservationTrackingEnabled.

It tracks which object properties are accessed when updating the view and then observes future changes to then to trigger view updates automatically. This sounds great, but it looks like it only handles a view displaying a fixed set of objects. How do you handle changes that affect which objects are eligible to be displayed in the view? I guess it will be like KVO where you need some other way of observing changes so that you know to mutate the array of matching objects, and then that last part can be observed automatically.

Previously:

Tuesday, June 17, 2025

Chrome Doesn’t Support JPEG XL

Jim Bankoski (2022):

Helping the web to evolve is challenging, and it requires us to make difficult choices. We’ve also heard from our browser and device partners that every additional format adds costs (monetary or hardware), and we’re very much aware that these costs are borne by those outside of Google. When we evaluate new media formats, the first question we have to ask is whether the format works best for the web. With respect to new image formats such as JPEG XL, that means we have to look comprehensively at many factors: compression performance across a broad range of images; is the decoder fast, allowing for speedy rendering of smaller images; are there fast encoders, ideally with hardware support, that keep encoding costs reasonable for large users; can we optimize existing formats to meet any new use-cases, rather than adding support for an additional format; do other browsers and OSes support it?

After weighing the data,  we’ve decided to stop Chrome’s JPEG XL experiment and remove the code associated with the experiment.  We’ll work to publish data in the next couple of weeks.

For those who want to use JPEG XL in Chrome, we believe a WebAssembly (Wasm) implementation is both performant and a great path forward.

Jon Sneyers (2023, via Hacker News):

In early April 2021, the Chrome browser added experimental support (behind a flag), even before the JPEG XL standard was officially published. (The final draft had been submitted to ISO, but it would still take until March 2022 before it was approved and published as the international standard ISO/IEC 18181.) Firefox followed suit quickly and added experimental support. Things were looking good.

Then, on Halloween 2022, Chrome developers suddenly announced that they would be removing JPEG XL support. This decision was quite unexpected and controversial. In my blog The Case for JPEG XL, I argued why this decision should be reversed. In December, Chrome developers provided test results that were used to justify the decision and invited feedback. I analyzed the results and pointed out several methodological flaws and oversights. So far, my feedback has been ignored.

Beyond browsers, adoption of JPEG XL continued, in particular in image authoring software like Serif Affinity, Adobe Camera Raw, GIMP, Krita, etc. Unfortunately, Chrome’s decision has slowed wider adoption in web browsers of JPEG XL.

Ernie Smith (via Hacker News):

The JPEG file format has served us well. It’s been difficult to remove the format from its perch. The JPEG 2000 format, for example, was intended to supplant it by offering more lossless options and better performance. The format is widely used by the Library of Congress and specialized sites like the Internet Archive, however, it is less popular as an end-user format.

Other image technologies have had somewhat more luck getting past the JPEG format. The Google-supported WebP is popular with website developers (and controversial with end users). Meanwhile, the formats AVIF and HEIC, each developed by standards bodies, have largely outpaced both JPEG and JPEG 2000.

JPEG XL seems better, but even Apple’s not supporting it everywhere yet.

Previously:

Psylo Web Browser 1.0

Mysk:

We’re super excited to finally launch Psylo, a new kind of private web browser for iOS and iPadOS. In Psylo, each tab is its own silo with isolated storage, cookies, and even its own IP address. Psylo introduces advanced anti-tracking and anti-fingerprinting features that go beyond what a VPN can offer, thanks to the deep integration between Psylo and our own Mysk Private Proxy Network.

[…]

Currently consisting of 40+ proxy servers worldwide, it’s designed to scale as we grow our service. […] The system must operate exclusively on software that we either developed ourselves or maintain complete control over. […] The system must never log or otherwise store any personally identifiable information or browsing data, including but not limited to IP addresses, DNS requests, and any other data that could potentially identify a user. […] The system must be accessible without requiring users to create an account—in fact, the system must have no notion of user accounts whatsoever.

It’s $9.99/month or $99.99/year.

Previously:

Update (2025-07-01): Talal Haj Bakry and Tommy Mysk:

This is the first in a series of posts covering technical aspects of Psylo. Here, we’ll explore the overall system architecture, including subscriptions, authorization, integration with the Mysk Private Proxy Network, and highlight trade-offs and future improvements identified in this initial 1.0 release.

Safari Audio Fingerprinting Protection

Sergey Mostsevenko (via Hacker News):

Apple introduced advanced fingerprinting protection in Safari 17. Advanced fingerprinting protection aims to reduce fingerprinting accuracy by limiting available information or adding randomness.

By default, the advanced protection is enabled in private (incognito) mode and disabled in normal mode. It affects both desktop and mobile platforms. Advanced fingerprinting protection also affects Screen API and Canvas API, but we’ll focus only on Audio API in this article.

[…]

The technique is called audio fingerprinting, and you can learn how it works in our previous article. In a nutshell, audio fingerprinting uses the browser’s Audio API to render an audio signal with OfflineAudioContext interface, which then transforms into a single number by adding all audio signal samples together. The number is the fingerprint, also called “identifier”.

But he says the protection measures “don’t fully work.”

Saagar Jha:

I feel like these days (especially given the recent focus on side channel attacks) it is basically a given that adding uniform noise to something that leaks data does not work, because you can always take more samples and remove the noise. Why did Safari add this? I understand that needing more samples is definitely an annoyance to fingerprinting efforts, but as this post shows it’s basically always surmountable in some form or the other.

Jeff Johnson:

I’m not going to wait another seven years to opt out of the advanced tracking and fingerprinting protection warnings, so I’m opting out of advanced tracking and fingerprinting protection entirely.

Previously:

Foundation Models Framework

Apple (MacRumors, 9to5Mac, Hacker News, Slashdot):

Apple is opening up access for any app to tap directly into the on-device foundation model at the core of Apple Intelligence.

With the Foundation Models framework, app developers will be able to build on Apple Intelligence to bring users new experiences that are intelligent, available when they’re offline, and that protect their privacy, using AI inference that is free of cost. For example, an education app can use the on-device model to generate a personalized quiz from a user’s notes, without any cloud API costs, or an outdoors app can add natural language search capabilities that work even when the user is offline.

The framework has native support for Swift, so app developers can easily access the Apple Intelligence model with as few as three lines of code. Guided generation, tool calling, and more are all built into the framework, making it easier than ever to implement generative capabilities right into a developer’s existing app.

There are two WWDC sessions and documentation.

Daniel Jalkut:

This is EXACTLY (the bare minimum) what developers have been asking for!

mxdalloway:

In my opinion this is revolutionary.

It was obvious that we would get framework access to models eventually, but I’m a little shocked that it’s already here.

I was skeptical of the performance in the demos, but running on M1 MBP I’m happy with the performance.

@Generable macro is intuitive to use and so far I’m impressed with the quality of the structured results that the model generates (admittedly, I need to do more extensive testing here but first impressions are promising).

Steve Troughton-Smith:

The wider tech press seems to think that Apple failed to show anything meaningful to do with AI at WWDC, without understanding that access to the Foundation Models is bigger than anything Apple announced at last year’s WWDC with Apple Intelligence. It’s what will give a million apps new AI features, and it’s built-in, and free.

As much as I want Siri to not suck, I have ChatGPT on all my devices, and that solves 95% of the use-cases I have.

Drew McCormack:

Having played with the new Foundation Models framework and thought about ways we can use it in our apps, I think it could be Apple’s Trojan horse for AI. It barely gets a mention in mainstream media, understandably, but it leverages Apple’s developer base. I think we are going to see very creative uses in apps, and Apple just have to iterate year on year (eg add private cloud compute next year).

Drew McCormack:

Was optimistic about Foundation Models yesterday, and today I think I know why they didn’t ship the improved Siri. The local model really is pretty thick. I thought it would be capable of stringing together tool calls in a logical way, and sometimes it is, but other times it fails to understand. Exactly the same prompt will work one time, and fail the next. Sounds like what Apple was saying about the new Siri.

Kuba Suder:

Ahh wait, so the Foundation Models thing will only work on the latest and greatest phones, right? 🫤

It doesn’t fall back on Private Cloud Compute.

Steve Troughton-Smith:

Oof, the FoundationModels framework is not exported to Mac Catalyst in Xcode 26 seed 1 😫 That puts a damper on prototyping

Matt Gallagher:

The Foundation Models in macOS 26 are quantized to 2 bits? I’m amazed anything coherent comes out.

Peter Steinberger (Reddit):

Apple’s on-device AI has a brutally small 4,096 tokens window.

Jordan Morgan:

In this post, I’ll show you the basics of how to get started with the Foundation Models framework, and we’ll even make a few calls to its API to generate some responses.

Previously:

Update (2025-06-19): Mohammad Azam:

In this article, we will walk through how to get started with Apple’s Foundation Models framework and explain the core concepts you need to understand in order to take full advantage of its powerful on-device AI capabilities.

Update (2025-07-01): Natasha Murashev:

This blog post is focused on the Meet the Foundation Models framework video[…]

Friday, June 13, 2025

WWDC 2025 Links

General:

What’s New:

Release Notes:

Key Sessions:

Previously:

My WWDC 2025 viewing guide to help you plan the sessions you want to watch.

Xcode 26 Announced

WWDC 2025: Platforms State of the Union:

Discover the newest advancements on Apple platforms.

Apple:

Xcode 26 is packed with intelligence features and experiences to help developers make their ideas a reality.

Developers can connect large language models directly into their coding experience to write code, tests, and documentation; iterate on a design; fix errors; and more. Xcode has built-in support for ChatGPT, and developers can use API keys from other providers, or run local models on their Mac with Apple silicon, to choose the model that best suits their needs. Developers can start using ChatGPT in Xcode without needing to create an account, and subscribers can connect their accounts to access more requests.

Coding Tools help developers stay in the flow and be more productive in their tasks. Accessible from anywhere in a developer’s code, Coding Tools provide suggested actions like generating a preview or a playground, or fixing an issue, and can also handle specific prompts for other tasks right inline.

WWDC 2025: What’s new in Xcode 26:

Discover the latest productivity and performance advancements in Xcode 26. Learn how to leverage large language models in your development workflow. Explore editing and debugging enhancements, improved performance and testing tools, and Swift Build - the open-source build system engine used by Xcode.

Xcode 26 release notes:

Xcode 26 beta requires a Mac running macOS Sequoia 15.4 or later.

[…]

Compilation caching has been introduced as an opt-in feature, which speeds-up iterative build/test cycles for Swift and C-family languages. The compilation caching feature caches the results of compilations that were produced for a set of source files inputs and, when it detects that the same set of source files are getting re-compiled, it speeds-up the build by providing the prior compilation results directly from the cache. The workflows that will benefit the most from compilation caching are when switching between branches (which ends up re-compiling the same source files again) or when doing clean builds.

[…]

The #bundle macro allows referring to the resource bundle associated with the current Xcode target. You can pass this to any Foundation API expecting a Bundle, such as when looking up images or localized strings.

[…]

The SwiftUI [Instruments] template has been updated with a next-generation SwiftUI instrument. The new instrument captures the duration of all of the updates SwiftUI performs, making it easy to identify long updates that may be negatively impacting app performance. It also tracks the causes of each update, allowing you to understand why view bodies are running, using the new Cause & Effect Graph.

[…]

Xcode can now generate type-safe Swift symbols for manually-managed strings in String Catalogs. For example, a string in Localizable.xcstrings with key “Landmarks” and value “%(count)lld landmarks” can be accessed via LocalizedStringResource.landmarks(count: 42). You can enable this via the build setting “Generate String Catalog Symbols”.

[…]

Concurrent mutation of nonatomic properties in Objective-C will now sometimes produce more actionable crashes. Synthesized setters will briefly store the sentinel value 0x400000000000bad0 (0xbad0 on 32-bit watchOS) which may be read by another thread accessing the property unsafely. A crash on this sentinel value indicates a thread safety issue with the property it came from.

[…]

Predictive Code Completion in Xcode now supports progressively accepting completions in smaller segments by holding the ^ key.

[…]

An annotation displaying the #if condition is displayed at the end of a line starting with #endif.

[…]

Starting from Xcode 26, Swift explicit modules will be the default mode for building all Swift targets.

• • •

Benjamin Mayo:

What Apple says: We’ve expanded our vision for Swift Assist

What Apple means: we screwed up we had to start over

Saagar Jha:

rip all those AI tools that try to hook into Xcode

Isaiah Carew:

GPT in Xcode with assistants??!! That was one of my hoped-for things!!!

Colin Cornaby:

The ChatGPT integration in Xcode is ok. I guess. Visual Studio has a very similar feature and I haven’t found it helpful for anything once the complexity increases. It’s nifty for summarizing complex code that spans several classes - especially if you need to trace a certain path.

More broadly - I know that the market wants Apple to go after AI. But someone needs to still ship a basic functioning platform and maybe that should really be Apple’s focus and leave the AI to others.

Steve Troughton-Smith:

Xcode’s integration with ChatGPT (and other models) this year is incredible, and surprisingly deep. It can pass your project files along, deeplink to specific lines and classes, and scrub back through a change history to see what it’s doing. Syntax errors/deprecation warnings in code will prompt you to pass the reins to ChatGPT in the sidebar to help you fix them up. You can also @-reference specific classes or files in your prompt to have their context included.

Max Seelemann:

Been trying Xcode 26's new Coding Assistant for production the past two days. Here’s a few observations…

It’s a good start. But this is it. Cursor’s Chats are much more capable, including regex searches and command line access. Hence, Xcode can’t commit.

Also Coding Assistant lacks the ability to get context. I know context in Cursor is not well done, but it makes prompting so much easier.

Also dunno what version of ChatGPT Apple is using, it’s horrible. It deletes code instead of fixing. And makes broken changes.

It’s great that we can plug into Claude. But anything beyond trivial requests quickly runs into throttling (“too many tokens per minute“). Never had this with Claude, so it must be fixable.

Thomas Ricouard:

People are asking me if I’ll go back to Xcode from Cursor. I’m back in it a bit, because it’s easier to work with the new stuff in there for now, but not really. Cursor + Claude Code is just so much better than anything else.

• • •

Felix Schwarz:

Looks like you can only use Xcode’s AI features when installing Tahoe on the internal SSD of your Apple silicon Mac.

Gui Rambo:

PSA: even though Apple Intelligence is not currently supported in virtual machines, third-party LLMs in Xcode work just fine if you set them up with an API key.

Craig Hockenberry:

Don’t waste 5 hours trying to build apps with Xcode 26 in a VM.

It just doesn’t work.

• • •

Pedro:

See the biggest improvement in xcode 26: your incremental builds should hopefully be more reliable, and this lays the ground for remote caching down the line

Rob Napier:

I seriously think this is the first time in years and years that I could upgrade Xcode and not delete derived data and have it work.

• • •

Isaiah Carew:

Xcode looks silly in liquid glass. The design is distinctly non-pro.

Khaos Tian:

Wow Xcode 26… I’m not sure I can handle that UI 😩 Somehow it just feels so distracting with all the floating elements….

Jesse Squires:

Wow. They really ruined Xcode Settings with v26.

This is unusable.

Everything is a million clicks away now.

Marcin Krzyzanowski:

Don’t follow Apple lead and do not, I beg you, do not make Settings like this.

Marcin Krzyzanowski:

yes, feels and works as broken as system settings

Sean Heber:

Why does the new Xcode settings panel look like System Settings? This is a step backward - it was System Settings that needed the redesign!

Casey Liss:

Oh I do not like this at all

Saagar Jha:

huh

• • •

Colin Cornaby:

Oh no - the improved user icons got paired with a really bad Xcode icon :(

Michael Flarup:

I am sorry, Xcode.

Benjamin Mayo:

Apple’s motivation for this is somewhat addressed in the WWDC icon design session. They recommend to avoid ‘complex illustration styles’ and remove finer details, preferring larger symbolic layers that let the glass material effects provide the sophistication.

• • •

Jesse Squires:

Nice improvement in Xcode 26.

Show’s the #if that matches the #endif

Rosyna Keller:

Does anyone know how to get the full names back for open editors in Xcode 26? These series of the same icon are useless to me…

Ian:

I’m sorely missing the old way with editor tabs. All the keyboard shortcuts are missing (“⌥+click a file” to open in another pane, “⌥+⇧+click” to choose where to open the file). And editor grid mode seems to be totally missing? 💔

Gui Rambo:

Is there a way to have Xcode 26 not close the project on Command+W when I close the last opened tab? I keep accidentally closing projects because sometimes I just want to close all tabs 😅

Previously:

Update (2025-06-16): Dominik Hauser:

Next time someone tells me that one can build apps with SwiftUI, I’ll show them this[…]

Steve Troughton-Smith:

Xcode 26's ChatGPT integration does the job; I threw it at a little internal project I have to browse and lookup my old social media posts, and asked it to go through the project and add support for loading and showing the attached images inline in the table view, something I never bothered to do before, and it just… did it. It’s going to be so hard not to want to use this for all the boring, menial tasks I haven’t got the time to address

Dave DeLong:

It’s absolutely crazy to me that @swiftlang Package Traits were proposed over a year ago and publicly released months ago and no version of Xcode has ever supported actually using them, and #Xcode26 is currently on track to also ship without support.

Update (2025-06-17): Peter Steinberger:

Did anyone try the new fancy Xcode 26 icon format yet? It kinda works, BUT it throws warnings and Apple’s “backwards compatibility” means exactly macOS 15. Doesn’t seem to work correct on 14, loading icon from the bundle returns nil there.

Update (2025-06-24): Felix Schwarz:

Xcode 26 adds an option to generate string catalog comments for newly-added strings by analyzing surrounding source code.

Sarah Reichelt:

I’m a bit confused by the tabbing system and I haven’t discovered a fast way to open two files side by side yet, but I’m sure I’ll get used to it.

Swift Marketing and Speed

Mishal Shah (Reddit):

Over the past few months, the website workgroup has been redesigning Swift.org. On behalf of the website workgroup, I’m pleased to announce that we have merged the initial changes.

Our goal with the site redesign has been to make Swift.org more approachable for newcomers to Swift, highlight the language’s technical strengths, and make it easy to get started. That led to a focus on the website’s appearance, improving the user experience, and emphasizing important features such as Swift’s multiplatform support.

jawbroken:

it’s unfortunate that the analytics script causing cmd-click to not open links in a new tab hasn’t been fixed in the redesign, something that has been an issue for at least 7 years. better luck next redesign, i guess

Swift.org:

Swift is the powerful, flexible, multiplatform programming language.

Fast. Expressive. Safe.

[…]

Swift is the only language that scales from embedded devices and kernels to apps and cloud infrastructure.

Nevin:

I’ve been using Swift and contributing to Swift Evolution for a decade, it is by far my favorite and most used programming language, and I am a huge fan.

Nonetheless, when I read those lines, my immediate reaction is “Wait, the, and the only? Are they saying that no other language does those things?”

Even if true, statements like that make me question the reliability of the narrator, and they come across as somewhat disparaging of other languages rather than just building up this one.

Overall, I like the new homepage, but some of the wording is a bit much, and I think it’s unnecessary. There’s no need to pretend it’s something it’s not. I felt the same way about some of the benchmarks used to tout Swift’s performance when it was first introduced.

Frank A. Krueger:

Swift String parsing is embarrassingly slow. I just converted code from String indices/SubStrings to Data indices/SubSequences (assuming UTF8, meh) and performance was 100x faster. Went from 8 minutes to parse an 80 MB file to 5 seconds.

(Also 5 seconds is stupidly slow. Even Python can parse the same file, with the same algorithm, in about 1 second.)

My experience is that Swift can be very fast. But, especially with strings and bridging, you have to be careful and measure because sometimes there are unexpected sources of slowness. Likewise, code using Data can really fly, but it can also get incredibly bogged down in safety checks if you don’t annotate your code such that Swift can statically prove exclusive access.

There were some important new String optimizations announced at WWDC.

David Smith:

Bridging non-ASCII NSMutableStrings from ObjC will be slower at the point of bridging, but the String produced as a result will be much faster.

One particular case this tradeoff can end up not paying off in is if you then bridge the resulting String back to ObjC. If you’re in that situation the recommendation is to not double-bridge strings if you can avoid it.

Previously:

Update (2025-06-24): Daniel Steinberg:

The week before we launched java.net, Sun presented us with a page much like the swift.org homepage that would be the landing page. They explained that people would click through to our page but Sun would own the home page.

[…]

Not to get sidetracked, but here’s a link to an excerpt of a previous post that argues for an independent Swift Foundation funded by Apple that would run swift.org and a fall Swift conference.

I would argue that Apple has been a great steward of Swift and is bringing the language to other platforms and doing great things with the language.

The swift.org web site must reflect this. Adding Linux and Windows references to the home page isn’t enough. In addition, Apple marketing can’t be any where near the website. There needs to be an independent editorial team that is responsible for the home page.

[…]

Here’s what I’d like to see on a front page that is refreshed many times a week to highlight that Swift is part of a vibrant ecosystem.

Generated Transcripts in Pocket Casts

Pocket Casts:

With version 7.85, we’ve introduced Generated Transcripts, a powerful new feature that makes engaging with your favorite podcasts easier than ever. Available on both Android and iOS for our Plus and Patron members, this feature allows you to follow along with podcast conversations.

Podcasts are full of incredible insights, but sometimes you want to revisit a key moment without scrubbing through the entire episode. With Generated Transcripts, you can now read along, search for specific phrases, and quickly find key discussions—even if a show doesn’t have their own transcripts.

As with Apple’s offering, this happens on the server, so it doesn’t work with your own uploads. In fact, it’s only available for a subset of popular podcasts.

Steven Aquino:

Despite Marco Arment being a longtime friend, I switched from using his Overcast as my preferred podcast player to using the stock Apple Podcasts app on my iPhone and iMac. I did so largely because of the immense accessibility transcripts provide me; Apple announced support for transcripts a little over a year ago, which is when I made the decision to change over.

It looks like there were some APIs announced at WWDC that will make it possible for future versions of Overcast and other apps to generate transcripts on-device.

Kyle Howells:

I was watching the new speech transcription APIs video and looking at the example code. It doesn’t feel like an Apple API. They’ve always been very straightforward simple easy to use APIs for powerful features.

Now with all the Swift async sequences and the new 4 part API they have you have to setup and create helper objects you just need to “know” that’s how you create it 5 steps earlier than you’d think you need it.

The APIs are going the same way.

Adam Engst:

Notes does not perform identically across platforms, with the Mac version producing notably better results than the iPhone version. If you care about transcription accuracy, let a Notes recording on the iPhone sync to an Apple silicon Mac and transcribe it there.

[…]

Audio Hijack and MacWhisper support about 100 languages because they use Whisper. Notes, on the other hand, is currently limited to English.

[…]

Audio Hijack is more accurate than Notes, and transcription comes on top of numerous other audio recording capabilities. However, it doesn’t provide line breaks, and if accuracy is important to you, MacWhisper is a better choice.

Previously:

Update (2025-06-17): John Voorhees:

What stood out above all else was Yap’s speed. By harnessing SpeechAnalyzer and SpeechTranscriber on-device, the command line tool tore through the 7GB video file a full 55% faster than MacWhisper’s Large V3 Turbo model, with no noticeable difference in transcription quality.