Archive for May 2025

Thursday, May 1, 2025

Swift Proposal: weak let

SE 0481:

Currently, Swift classes with weak stored properties cannot be Sendable, because weak properties have to be mutable, and mutable properties are not allowed in Sendable classes[…]

[…]

In fact, wrapping weak references in a single-property struct is a viable workaround to the var restriction in both properties and captures[…] The existence of this simple workaround is itself an argument that the prohibition of weak let is not enforcing some fundamentally important rule.

[…]

An explicit weak capture is now immutable under this proposal, like any other explicit capture. If the programmer really needs a mutable capture, they must capture a separate weak var.

Court Orders Apple to Comply With Anti-Steering Injunction

Juli Clover (Hacker News, Jay Peters, Zac Hall):

In a victory for Epic Games, Apple was today found to be in violation of a 2021 injunction that required it to allow developers to direct customers to third-party purchase options on the web using in-app links.

Yvonne Gonzalez Rogers:

Apple’s response to the Injunction strains credulity. After two sets of evidentiary hearings, the truth emerged. Apple, despite knowing its obligations thereunder, thwarted the Injunction’s goals, and continued its anticompetitive conduct solely to maintain its revenue stream. Remarkably, Apple believed that this Court would not see through its obvious cover-up (the 2024 evidentiary hearing). To unveil Apple’s actual decision-making process, not the one tailor-made for litigation, the Court ordered production of real-time documents and ultimately held a second set of hearings in 2025.

[…]

In stark contrast to Apple’s initial in-court testimony, contemporaneous business documents reveal that Apple knew exactly what it was doing and at every turn chose the most anticompetitive option. To hide the truth, Vice-President of Finance, Alex Roman, outright lied under oath. Internally, Phillip Schiller had advocated that Apple comply with the Injunction, but Tim Cook ignored Schiller and instead allowed Chief Financial Officer Luca Maestri and his finance team to convince him otherwise. Cook chose poorly. The real evidence, detailed herein more than meets the clear and convincing standard to find a violation. The Court refers the matter to the United States Attorney for the Northern District of California to investigate whether criminal contempt proceedings are appropriate.

This is an injunction, not a negotiation. There are no do-overs once a party willfully disregards a court order. Time is of the essence. The Court will not tolerate further delays. As previously ordered, Apple will not impede competition. The Court enjoins Apple from implementing its new anticompetitive acts to avoid compliance with the Injunction. Effective immediately Apple will no longer impede developers’ ability to communicate with users nor will they levy or impose a new commission on off-app purchases.

[…]

Mr. Onak suggested the warning screen should include the language: “By continuing on the web, you will leave the app and be taken to an external website” because “‘external website’ sounds scary, so execs will love it.” […] From Mr. Onak’s perspective, of the “execs” on the project, Mr. Schiller was at the top. […] One employee further wrote, “to make your version even worse you could add the developer name rather than the app name.” […] To that, another responded “ooh - keep going.” […] Again, Apple decided on the most anticompetitive option, that is, the “even worse” option[…]

[…]

Apple also argues that the question of whether Apple’s commission appropriately reflects the value of its intellectual property is not an issue for injunction compliance, and that it is legitimate for a business to promote the value of its corporation for stockholders. […] Apple misses the point. The issue is that Apple flouted the Court’s order by designing a top-down anticompetitive system, in which its commission played a fundamental role. […] For the same reasons, the Court disagrees that requiring Apple to set a commission of zero constitutes and unconstitutional taking. […] For instance, as described infra Section IV, in the trademark context, “a party who has once infringed is allowed less leniency for purposes of injunction enforcement than an innocent party.” […] Apple does not have an absolute right to the intellectual property that it wields as a shield to competition without adequate justification of its value. Apple was provided with an opportunity to value that intellectual property and chose not to do so.

[…]

Apple willfully chose not to comply with this Court’s Injunction. It did so with the express intent to create new anticompetitive barriers which would, by design and in effect, maintain a valued revenue stream; a revenue stream previously found to be anticompetitive. That it thought this Court would tolerate such insubordination was a gross miscalculation. As always, the cover- up made it worse. For this Court, there is no second bite at the apple.

David Barnard:

If you read the ruling, don’t skip the footnotes, there are some bangers…

Tim Sweeney (Hacker News):

NO FEES on web transactions. Game over for the Apple Tax.

Apple’s 15-30% junk fees are now just as dead here in the United States of America as they are in Europe under the Digital Markets Act. Unlawful here, unlawful there.

Riley Testut:

It’s hard to overstate how massive this is. Turns out when you flagrantly break the law, there are consequences!

Jeff Johnson:

So, uh... does this mean we can sell our apps outside the iOS App Store now?

My read is that very little has actually changed for most developers. You still have to use IAP. The only difference is that if you were already eligible to activate some app content via an external purchase, you’re now allowed to mention this in the app and link to it. And you don’t have to track the customer for a week and then pay Apple 27% (even if they purchased on Android). So this is big news for a company like Epic or Netflix. For an indie developer selling apps, not content, it’s nice but not “game over” for Apple. (Of course, our revenue is almost irrelevant to them, anyway.)

The Omni Group currently uses IAP, but you can also buy on the Web and then activate by logging into your account within the app. I think the ruling means that they’ll be able to tell you about this option within the app, but I don’t think it means they get to avoid the tax. Nor would they necessarily want to because customers like IAP. For developers that aren’t multi-platform, I’m not sure there’s even an option to do external payments. And smaller developers, who are paying Apple 15% instead of 30%, might not find it worth their while, in any case.

It remains to be seen how Apple will update the guidelines and whether external links will still be more restricted outside of the US.

Marcin Krzyzanowski:

🤔 Apple still may freely reject any app with external links from the AppStore. It always has been like this.

R.M.:

I would be careful here. Apple still controls the AppStore algorithm. I won’t be surprised if apps that promote the web payment option, will see a decline in their ASO performance…

John Voorhees:

Unnamed sources at Apple have told 9to5Mac that the company disagrees with the Court’s decision, but will comply and appeal. I doubt that appeal will go anywhere. The Court made it clear that it expected Apple to comply with its contempt order immediately, so an appeal won’t delay that, barring intervention by the Court of Appeals. Given the deference higher courts afford to lower courts enforcing their own orders and the extensive evidentiary record, overturning it on appeal is a long shot.

In the meantime, Apple is prohibited from:

  • Imposing any commission or any fee on purchases that consumers make outside an app, and as a consequence thereof, no reason exists to audit, monitor, track or require developers to report purchases or any other activity that consumers make outside an app;
  • Restricting or conditioning developers’ style, language, formatting, quantity, flow or placement of links for purchases outside an app;
  • Excluding certain categories of apps and developers from obtaining link access;
  • Interfering with consumers’ choice to proceed in or out of an app by using anything other than a neutral message apprising users that they are going to a third-party site; and
  • Restricting a developer’s use of dynamic links that bring consumers to a specific product page in a logged-in state rather than to a statically defined page, including restricting apps from passing on product details, user details or other information that refers to the user intending to make a purchase.

He also asks a good question: where Apple’s internal lawyers were in all of this?

Christina Warren:

My position for close to 15 years has been that it’s unconscionable for Apple to collect a commission off of purchases made outside the App Store. I’m glad the court had enough too. This is good for the ecosystem. There are still valid reasons to use the built-in IAP model. But as I railed about the Patreon situation last summer, enough is enough.

I’m not sure this really fixes the Patreon situation, but I guess we’ll see.

Tim Sweeney:

We will return Fortnite to the US iOS App Store next week.

Epic puts forth a peace proposal: If Apple extends the court’s friction-free, Apple-tax-free framework worldwide, we’ll return Fortnite to the App Store worldwide and drop current and future litigation on the topic.

When did Epic gets its US developer account back? I thought they already lost that battle in court, and I don’t see anything about it in the new court order. Even if they do, it seems like Epic’s victory falls short of what they originally tried to do with Epic Direct Payment because the customer will be sent out of the app to make the purchase.

John Gruber (Mastodon):

Apple won the original case. It was like a sidenote on that original case that Judge Gonzalez Rogers issued an injunction that Apple was required to allow developers to just freely link to alternative payment offerings on the web, outside the app.

[…]

None of this, as far as I can see, has anything to do with Epic Games or Fortnite at all, other than that it was Epic who initiated the case. Give them credit for that. But I don’t see how this ruling gets Fortnite back in the App Store. I think Sweeney is just blustering — he wants Fortnite back in the App Store and thinks by just asserting it, he can force Apple’s hand at a moment when they’re wrong-footed by a scathing federal court judgment against them.

[…]

If there’s a single sentence in Gonzalez Rogers’s ruling that suggests Apple needs to reinstate Epic Games to the App Store, I missed it.

Dave B.:

Two viewpoints:

  1. Create the best possible ecosystem. Build a walled garden aimed at improving the experience for customers. Make premium devices and a premium UX. Do that, and you can charge a lot of money for devices, keep lifelong customers, and make massive long term profits.

  2. Squeeze every penny from every product and every service. Make massive profits today, but piss everyone off, annoy your customers, push developers away, and cause regulators to come after you. Sacrifice your future brand equity to appease Wall Street today.

Phil, like Steve, seems to support #1, while Tim and many others support #2.

Dan Moren:

The thing that Apple used to be so good at understanding is that the bottom line isn’t just about how the numbers add up. Apple has long been a company that prides itself on its image and its brand, and marring that, whether it be via contentious relationships with developers or seemingly bending over backwards for authoritarians, does have an effect in the long term.

John Gruber (Mastodon):

Schiller comes across as Apple’s sole voice of reason, fairness, and dare I say honesty in this entire ruling. The only people in the world who seemed to think Apple could or should comply with the 2021 injunction (that apps be permitted to steer users to the web to make purchases) by charging a commission — any commission, let alone a 27 percent commission — on those web transactions were Apple’s finance team members, led by Luca Maestri and Alex Roman, and Tim Cook.

[…]

With this ruling and Maestri’s central role in Apple’s decision to forge ahead with a compliance plan where they “allowed” steering to the web by charging the same effective commissions on web transactions as they do for in-app transactions, I now have to wonder whether Maestri retired or “retired”.

Matt Stoller (Hacker News):

But this time, the judge accused Apple Vice-President of Finance, Alex Roman, of having “outright lied under oath,” and referred the matter to the U.S. Attorney for a criminal contempt investigation. She also went out of her way to blame Apple CEO Tim Cook directly.

However, it looks like Cook got away with the statements he made to Congress.

Steve Streza:

First: the only considerations Apple executives made were for revenue and control. At no point did the user’s experience enter the picture, except as a hand-wavey gesture towards “safety” when leaving an app. Apple gave up treating developers with decency a decade ago, knowing they have them by the throat and can make them do whatever they want. Legal compliance was asked to be as close to the line as possible, and to stick a toe over if their arrogance made them believe they could get away with it. Beyond that, in every decision, money and power were what they chose, and the ruling includes evidence that this is how they thought when no one was looking.

Second: the hubris is overwhelming. Apple could’ve chosen a number that was similarly high, but not SO high that would’ve made it look obvious. They could’ve allowed for buttons, or toned down the ridiculous scare screen, or cut down their 7-day commission carryover, or any number of things. But they made it so easy to see their intentions, and they left a paper trail. They really could not have more thoroughly engineered a situation that would make them look as deliberately anticompetitive as they have been here.

Third, and arguably most important: the rot went all the way to the top. Tim Cook signed off on all of this, and but for Schiller’s protest over the 27% commission, so did the executives involved. This wasn’t something that was caught up in a committee and escaped the vision of the CEO. He was giving the thumbs up on all of it. If you think any of this is as offensive as the judge did, there are many people to point fingers at, but they all directly lead back to Team Cook.

Jason Snell:

Apple also attempted to engineer the directive to allow external links in apps by creating new barriers and requirements that would similarly defang those orders. It created full-page “scare screens” (I referred to them as “This App May Kill You” screens), demanded that all links be to static URLs (neutering their utility), and kept editing the warning labels to dissuade users as much as possible from ever agreeing to follow the link.

Nick Heer:

To all those who have said Apple’s regulatory and legal responses have amounted to malicious compliance, you appear to be correct. Stripping more formal language, as the judge has done here, reveals how fed up she is with Apple’s petulant misconduct.

[…]

Throughout this filing, Phil Schiller comes across very well, unlike fellow executives Luca Maestri, the aforementioned Alex Roman, and Tim Cook. In internal discussions, he consistently sounds like the most reasonable voice in the room — though Rogers still has stern words for him throughout. (For example, Schiller claimed external purchasing links alongside in-app options would make users more susceptible to fraud, even though under Apple’s rules it must review and approve those links. The judge writes “[n]o real-time business documents credit that view”.)

Stephen Hackett:

The document directly addresses Apple’s tight control over how links to external payment methods appear. When I read this part of the injunction, I whistled out loud, to the surprise of my wife who was in the room with me:

For button styles, Apple limits developers to what Apple calls the “plain” button style — essentially just a hyperlink — because Apple does not want the developers to use the more effective “button.” A more effective button would increase competition. Similarly, Apple limits calls to action to five, narrowly cabined templates. Nowhere does the Court authorize those limitations. At a minimum, the Court need not decide whether these restrictions alone violate the Injunction, because Apple has violated the central mandate of this Court’s orders: that Apple not foreclose competitive alternatives to IAP.

The document reveals that those screens were at the behest of Tim Cook:

After the June 20, 2023 meeting regarding this Court’s Injunction, Apple decided that it would implement a full screen warning after users click on an external link, regardless of which commission option was ultimately selected. At the meeting, Mr. Cook “asked the team to revise the customer warning screen . . . to reference the fact that Apple’s privacy and security standards do not apply to purchases made on the web.” The team updated the warning screen, sent it to Mr. Schiller for approval, and returned the revised copy to Mr. Cook on June 23, 2023. The updated warning screen changed a sentence from “You will no longer be transacting with Apple” to “Apple is not responsible for the privacy or security of purchases made on the web.” As Ms. Goldberg’s notes reflect, the idea discussed was that this “[i]nterstitial . . . tells ppl its dangerous and they are leaving the app store.”

I guess he’s a product guy after all.

Benjamin Mayo:

The only interference Apple is currently allowed is a simple alert notifying the user they are going to the web. Amusingly, the endorsed design was an early iteration Apple considered before they went full on scare sheet.

Jacob Eiting:

this is pretty wild. you can put IAP buried on a settings page and have the web offering be shown exclusively

will come down to conversion rates vs Apple take rates as to what people do.

Which I suppose is the point, force Apple to compete on the merits of the tech.

Michael Luo:

You can now accept payments with @stripe outside of your app, with no iOS app store commissions.

The Stripe team cooked up a quick guide walking you through how.

Juli Clover:

Epic Games today announced plans for Epic Games Store Webshops, a feature that will allow developers to launch digital storefronts that are hosted by the Epic Games Store. With Apple’s mandated App Store rule changes in the United States, developers will soon be able to direct customers to web shops to make out-of-app purchases, bypassing the in-app purchase flow.

The Epic Games Store will charge developers a 0 percent fee for the first $1,000,000 in revenue they collect per app per year, and after that, developers will need to pay Epic a 12 percent cut.

Ryan Jones:

🤯Honestly, a brilliant strategic move by Apple would be immediately drop their rate to 10-15%.

Majority of apps wouldn’t bother with linking out. They take the same revenue hit but keep control.

Rob Jonson:

They have a bit of a quandry. If they instantly frop their rates in the face of competition, then it’s harder to argue that their rates were always competitive.

Which exposes them to suits on past charges for competitive abuse.

M.G. Siegler:

For now, I just want to focus on the Epic and Sweeney element. Mainly because I think I was right, and damnit, people thought I was crazy for reading it this way three-plus years ago.

[…]

And it wasn’t just that specific moment in time, there continued to be many examples that indicated Sweeney might be playing a different game here – ever since he first started his campaign nearly five years ago. At first, I thought Epic may have misjudged how Apple would respond to their clever trolling, “1984"-esque viral moment and all. But actually, that’s what led me down the path of thinking this was all a part of the plan, in an almost crazy Joker way.

Steve Troughton-Smith:

I’m glad we wasted the past six years going through this instead of embracing it from the outset and being on the right side of history.

Oskar:

So it only took the legal system 16 years(!) to figure out that the core business model of the App Store is illegal… right around where the golden era of apps is ending.

Ryan Jones:

We said for 5 years “do it yourself or gov will make you and that’ll be shit for us all”!

Saagar Jha:

Nobody is really talking about the Epic side today but the court does confirm that they breached the DPLA and need to pay attorney’s fees (which I don’t think they really care about at this point)

Previously:

I’m an Apple Fan in 2025

Dan Moren (Mastodon):

Stay Foolish debuted ten years ago, almost to the day, but I’ve been writing regularly for Macworld for nearly twenty years. When I first started out, we were all excited about what the latest in technology—Intel-powered Macs—would mean for Apple’s long-term prospects for survival. Two decades later, nobody ever even whispers that Apple is doomed anymore, because to suggest it would mark you as somebody divorced from reality.

It’s difficult to overstate just how different the Apple of today is from the Apple of 2015 or 2006. In taking a retrospective look at Apple, we most often find ourselves comparing the enormously successful behemoth that Apple now is to the company’s nadir in the mid-90s, when it was just steps from going out of business. But the truth is that even in just the last decade or two the company has reached heights that seemed previously unattainable.

And somewhere along the way, I think the relationship of the company to its customers—and vice versa—changed as well.

Jeff Johnson:

Dan distinguishes between a fan of the company and a fan of the products, but I’m not a fan anymore of the products, which are now poorly crafted compared to 20 years ago. Apple products have become, at best, the lesser of two evils, and the company itself is no longer special.

I think this is a bit too harsh. There’s a lot of stuff that’s not objectively bad, and much that is good, too. Apple is still special relative to most other companies. But clearly the tenor has changed. For me, the two big things are, first, that Apple used to be the company that tried to do things the right way, even in minor areas that were overkill; but, now, much of the time they just don’t care, even about things that users and developers find to be quite important. And, second, my default assumption is now that new things will be broken. The magic is gone.

Dimitri Bouniol:

If anything, Apple’s lack of interest in what I have to bring to their platform is what is pushing me to the web, forcing me to work with shittier languages on a rendering engine far more performant than SwiftUI.

[…]

Do I mind paying the 15-30%? No, not really. Does Apple do anything that benefits me (and by proxy, them) with that money? No, not really. Maybe my app is a bust, but so far, I’ve gotten way more interest and support from non Apple users organically than anything the App Store has offered me.

Apple has done everything they could possibly do to erode their platforms. They stopped investing in what makes their platforms great to use. They stopped supporting their biggest fans that make software for those platforms. They stopped caring about what makes their platforms so easy to develop for. Once they were successful, they acted like no one else took part in helping them reach that success.

Previously:

Apple v. Optis Cellular Technology

Reuters (via Ric Ford):

Apple must pay a U.S. patent holder $502 million for the use of 4G patents in devices including iPhones and iPads, London’s Court of Appeal ruled on Thursday, in the latest stage of a long-running legal battle.

Texas-based Optis Cellular Technology LLC sued Apple in London in 2019 over its use of patents which Optis says are essential to certain technological standards, such as 4G.

Andre Revilla:

Apple has unsurprisingly responded by promising to appeal the court’s decision, to which Optis insisted it will fight to defend its intellectual property.

Optis provided Engadget with the following statement:

“We’re pleased the UK Court of Appeals has recognized and corrected a clearly flawed prior ruling and has made meaningful progress toward affirming the true value of our patents to Apple devices. In addition to ordering payment that exceeds $700 million with interest and fees, the Court has judged that ‘Apple’s significant negotiating strength leads some parties to agree lower rates than would be agreed between a willing licensor/willing licensee’ thereby gaining an unfair advantage. We will continue to ensure fair compensation for the Optis intellectual property that enables high-speed connectivity for millions of devices around the world.”

See also: Patently Apple.

Previously: