Archive for May 2021

Monday, May 31, 2021

The Difficulty of Accessing Old iMessages

Spencer Dailey (via Hacker News, Reddit):

Many iPhone owners have iMessages from years ago that they can’t access. For example, my wife and I simply want to read the first few messages that we exchanged in 2017, but we can’t.

[…]

The cumbersome way Apple lets you (theoretically) access old messages is to “scroll to the top” of your conversation, but it’s extremely time consuming and doesn’t work in practice. Yesterday I tried to scroll to the “top” of my iMessages that were from and to my wife. After just a few minutes, my computer with 16GB of RAM started “beach balling” and the app froze before I could even get to messages from 6 months ago. Meanwhile, my wife tried to access our earliest messages on her iPhone 8 Plus and it was even sadder: after over 45 minutes of scrolling, she got within a year of the conversation’s beginning and then the iMessages app crashed on her.

How Uber Deals With Large iOS App Size

Milind Chabbi, Jin Lin, and Raj Barik (via Hacker News):

In the following article we will describe how we reduced the code size of Uber’s iOS Rider app by 23% using advanced compiler technologies. The ideas discussed herein also translated to 17% and 19% code size savings in the Uber Driver and Uber Eats iOS apps, respectively.

[…]

High-level language and runtime features related to reference counting and memory allocation are common causes of the most frequently repeated patterns.

[…]

Generic function instantiations and closures specialized at their call sites result in highly similar, long sequences of machine instructions.

[…]

Listing 7 above shows a common idiom recommended by Swift to use the try expressions to deserialize JSON data and assign to properties of a class. In this example, the class MyClass contains 118 properties, which are initialized from a JSON object. The initialization happens via try expressions, which throw Error if the property is not found in the incoming JSON object. If any one of the try expressions fails, all the previously created properties have to be released. When this code is lowered into LLVM IR and then into the machine code, it leads into N blocks of codes where the Nth block and N-1th bock have N-1 same instructions, N-1th and N-2th block have N-2 same instructions and so on — which is a O(N2) replicated code.

They’re contributing the work back to LLVM.

Previously:

Sunday, May 30, 2021

Starlink Review

Nilay Patel:

We might envision an ISP that smashes through the plodding local politics of digging fiber trenches by literally achieving escape velocity and delivering fast, reliable internet from the heavens above. […] Starlink, a new satellite internet service from SpaceX, is a spectacular technical achievement that might one day do all of these things. But right now it is also very much a beta product that is unreliable, inconsistent, and foiled by even the merest suggestion of trees.

[…]

The idea of ordering a $499 dish with a $99 monthly fee that can deliver Starlink’s current goal of 100Mbps down and 20Mbps up would indeed be a dream come true — especially since Starlink has set a long-term goal of 1Gbps down. It represents competition, something the American broadband market sorely lacks.

[…]

The fundamental setup is incredibly simple: you plug both Ethernet cables into the power adapter, plug that into the wall, and you’re done. The printed instructions in the box are just pictograms, like Ikea for space internet.

[…]

Services that require a sustained, real-time connection, like Slack, Zoom, or gaming, simply weren’t usable for me, even when I was seeing the fastest speeds. […] Starlink’s latency also swings from fine — Zoom did not exhibit any delay when it worked — to pretty bad.

ProVsCons:

HughesNet uses geosynchronous satellites to provide the internet. These satellites are 35,786km (22,236 miles) above the earth. As a result, HughesNet has a minimum of 600ms latency. Sometimes it goes up to 1200ms.

On the other hand, Starlink uses low earth orbit satellites. These satellites are placed in 550km (340 miles) orbit above the earth.

Starlink regularly achieves a latency of less than 50ms. Reports show that the latency between 20ms to 40ms is typical, which is mindblowing for satellite internet.

Nilay Patel:

I have gotten about a dozen emails from Starlink customers who don’t love my piece for various reasons, which is fair. The common thread? All of them hate their local ISPs. Here’s just a sample.

Russell Brandom and William Joel (via Nick Heer):

This map shows where the broadband problem is worst — the areas where the difficulty of reliably connecting to the internet has gotten bad enough to become a drag on everyday life. Specifically, the colored-in areas show US counties where less than 15 percent of households are using the internet at broadband speed, defined as 25Mbps download speed.

[…]

Instead of the FCC’s data, we drew on an anonymized dataset collected by Microsoft through its cloud services network, published in increments by the company over the past 18 months. If the FCC monitors the connections that providers say they’re offering, this measures what they’re actually getting.

Faked Opposition to Net Neutrality

Issie Lapowsky (via Dan Moren, NY Times, Hacker News):

In a new report, New York Attorney General Letitia James found that of the more than 22 million public comments the Federal Communications Commission received in 2017 regarding the repeal of net neutrality protections, a whopping 18 million were fake. Millions of those comments, the report says, were funded by the broadband industry.

See also: Nilay Patel, Nick Heer, Jeremy Singer-Vine and Kevin Collier.

Previously:

Friday, May 28, 2021

Uber’s Crazy YOLO App Rewrite

Gergely Orosz (via Hacker News):

The mobile platform team has been working on the project for a few months, coming up with RIBs, a new architecture we’re using for the project. For the program teams - the ones building features -, the work started a few weeks ago. We have less than 3 months: the rewrite needs to be done by 16 September. Every last screen of the old app will not only be ported, but re-imagined, UX and workflows changed.

[…]

I tell him we cannot make the deadline. Not unless we cut the scope, push back the timeline, or add more people. Ideally, all three. He says we’ll see what we can do.

[…]

The pace of work is still excruciatingly slow. Tooling is a major issue: compiling the app from scratch takes 25-30 minutes on iOS and around 10 on Android. Landing a change to master can take hours and hours, due to to the long-running test suite, the merge conflicts thanks to the large number of changes and flakey UI tests.

[…]

None of us know for sure what the app release strategy will be until a week before launch. Then it’s confirmed. We’re going YOLO.

They wanted to release a combined app that included both the old and new versions, so they could do a gradual rollout, but it wouldn’t fit under the 100 MB App Store cap for cellular downloads.

Considering the circumstances, the launch was a roaring success. Very few critical bugs were found: which was impressive, considering the YOLO release and how little time we had to test.

[…]

Helix took a huge toll on most people. A few people quit during the project, but the majority of resignation notices came after we shipped the app. Many people did not even stick around a few months for March bonuses.

Previously:

Using curl for Telnet Testing

Rich Trouton:

As part of introducing macOS High Sierra, Apple removed the telnet tool from macOS. This was part of Apple’s overall effort to improve security, as telnet does not use encryption and its traffic can be intercepted and read. However, telnet did (and does) serve a useful function as a quick way to check if it is possible to connect to a remote server on a particular port.

While there are alternative tools available for this task (like netcat), it’s also possible to still create a telnet connection on macOS using another tool: curl

Figma and the Num Lock Quasimode

Figma:

In short, pressing Shift+2 using one key worked, but pressing Shift+2 using the numeric keypad key didn’t.

Curiously, the bug only happened on Windows, and not on a Mac.

[…]

Pressing Num Lock over and over again to switch between the modes would be slow, infuriating, and flow-reducing…

[…]

The solution: you could hold Shift and press the arrow/numeric key to quickly reverse its current mode.

[…]

The shortcut from MS-DOS was preserved in code through all the versions of Windows, from 1.0 all the way to 10!

Thursday, May 27, 2021

Apple Developer Forums Now Have RSS

Apple (MacRumors):

Search for content across multiple tags.

[…]

Upload images to your question or answer to provide supporting visual details.

[…]

Subscribe to RSS feeds for tags you’re interested in.

I’m glad to have image and RSS support, but the way it’s done is pretty frustrating. You can’t subscribe to the whole forum, only to individual tags. This is extra work to set up, and you’ll miss posts if a new tag is introduced. It also means that if a post has multiple tags it will appear duplicated in your feed reader. At first it looks like there’s no page that lists all the tags. You can only view them 15 at a time, which is lots of pages for 561 tags. Eventually I found a link in the forum help to a page listing all the tags. Nearly half of the main page’s width is devoted to showing a list of only 5 trending tags. There’s still no mailing list mode. I’m not sure whether external links are still banned.

There are no RSS feed on a member’s profile, so you can’t follow known high-signal posters like Quinn. He does, however, have a list of favorite improvements, mainly to the Markdown support.

Previously:

Update (2021-06-05): Craig Hockenberry:

It looks like the Apple Developer Forums changes include being able to link to resources on other websites!

Twitter Blue

Juli Clover:

Under In-App Purchases, there’s now a “Twitter Blue” option that’s priced at $2.99, though the feature does not appear to be live in the iOS app at this time.

[…]

Twitter Blue will include an “Undo Tweet” option that holds a tweet for a set period of time before sending it out so you can choose to undo it, and a “Reader Mode” that makes it easier to read long threads.

Notably, it sounds like it doesn’t hide the ads.

Update (2021-06-04): Twitter (MacRumors):

Starting today, we will be rolling out our first iteration of Twitter Blue in Australia and Canada.

Nick Heer:

Think about all of the things that Twitter could do with a paid subscription — chronological timeline, editable tweets, fewer or no ads — and then look at Twitter Blue. Entirely not compelling.

See also: Hacker News.

Update (2021-11-12): Om Malik:

A few months ago, when Twitter acquired Scroll, a New York-based startup, the only question that remained was how they would integrate the service into the primary Twitter offering. That question got answered yesterday when the company introduced Twitter Blue, a premium offering in its major markets, including the United States.

[…]

When you subscribe — I did — on the web, you get an additional icon in the right-hand menu that says Top Articles. When you go to Top Articles, you see a list of much-shared articles shared by those whom you follow.

[…]

The ad-free reading offerings thus far underwhelm me — there were three articles in my entire 24-hour “top articles” timeline. They have agreements with quite a few big publishers, but they are the lowest common denominator publishers.

Extracting Data From an Old iOS App Broken by iOS 14.5

Adam Engst:

I didn’t want any of the new features, so I dismissed the upgrade notice. The app didn’t nag me to upgrade again that I remember, so I kept using it with no problems, apparently for years. Until, that is, Apple released iOS 14.5, which somehow prevented Momento—now called Momento Classic—from launching. Uh oh.

[…]

When I downloaded the current version of Momento and tried to import data from Momento Classic, I got the same error dialog as when I tried to launch Momento Classic under iOS 14.5. Presumably, the new version needs to communicate directly with the old version to import data.

One of the downsides of iOS is the lack of flexibility to deal with situations like this. You can’t revert your device to an earlier version of iOS. You can’t download files from an iCloud backup. Engst was able to use a third-party app to extract the database file from a local backup, but he wasn’t able to copy it back to the iPhone to import it into the app.

Previously:

Update (2021-06-05): Adam Engst:

After I published this article (but before it appeared in a TidBITS issue, after which we don’t make changes), Steve Nicolai left a comment saying that he had solved a similar issue with an old app refusing to launch under iOS 14.5 by offloading and reloading it. Initially, I read that as deleting and reinstalling. In a test with Momento Classic on my iPhone 11 Pro, I confirmed that he was correct, but deleting the app erased its data too. Data loss aside, this was a significant step forward, since it brought a previously inaccessible app back to life in situ.

Then Steve set me straight. He was referring to the process of offloading an app to save space, which you do in Settings > General > iPhone Storage. Tap the magnifying glass icon at the top to search for the app you want, tap Offload App, tap Offload App again in the prompt, and once it has been removed from your iPhone, tap Reinstall App. When I did that with the NME Digital app, it came back to life!

Wednesday, May 26, 2021

Forced 5-Star Ratings

Kosta Eleftheriou (Hacker News, MacRumors):

The review: “This app forced me to give it a good rating before I could use it.”

[…]

If you think you can trust App Store ratings, you haven’t been paying enough attention.

This is the iOS system rating prompt, not a custom look-alike one.

The worst part? This trick is EXTREMELY easy for any developer to do, and not limited to this app.

This developer has more than 15M downloads and $MILLIONS in revenue.

[…]

Apple also says they conduct a “robust” review process - yet this fraud takes place immediately upon launching the app.

Francisco Tolmasky:

Tangentially related, I commented a while ago on what a missed opportunity the notch was to have a “Secure UI" for native dialogs to tell them apart from fake ones[…]

Guilherme Rambo:

It looks like the app is using the native review dialog, then observing windowDidBecomeVisible: for the container window that’s rendered in-process, and putting something on top of that to prevent interactions other than five-star reviews.

Stephen Warwick:

Apple has pulled an app from the App Store that forced users to leave a good review before using it.

Francisco Tolmasky:

I don’t even know why this API exists in the first place. It’s user hostile even when used “correctly”: I hate getting this stupid pop-up when I’m using an app. Not to mention that reviews, generally speaking, are the laziest way to “outsource” curation in a store.

[…]

A company that was actually laser focused on making “the best AppStore” would have thought outside the box for alternative ways of surfacing quality.

[…]

This is just one idea — but it highlights the unique features Apple could actually take of advantage of by controlling the “entire experience”. The ability to let you know that an app has a great support history would be killer for non-tech savvy users.

[…]

The crazy thing is that Apple is hypothetically correct about the advantages of top-down control. But ironically, once you start realizing all the cool things Apple could provide with their vertical integration, you notice the disconnect with the things they actually invest in.

Previously:

Update (2021-06-05): Kosta Eleftheriou:

Why buy your ratings when you can force your own users into helping you for free? 🤷

I have now identified multiple apps from multiple developer accounts with this type of ratings meta-manipulation.

Update (2022-01-25): Kosta Eleftheriou:

Apple: “We work hard to make the App Store a trustworthy ecosystem” and “We take feedback regarding fraudulent activity seriously”.

Yet 8 months later, this is still possible on iOS 15.2.

No words.

iOS Camera App Updates

Rachel Johanna:

Camera+ 2 is known for having excellent features and our newest is no exception! Using the power of AI, we have created a new shooting mode designed to remove objects in motion that get in the way of getting the perfect shot.

Sebastiaan de With (also: John Voorhees):

Halide for iPad is a whole new app — it sports an interface designed from scratch for iPad, some special features for iPad shooting, and it manages to also bring all of Halide’s powerful features along for the ride, too.

Jasper Hauser (also: John Voorhees):

We’re excited to expand our [Darkroom] editing capabilities with one of the most requested features: Clarity!

Tuesday, May 25, 2021

Unexpectedly 1.0

Stéphane Sudre (tweet):

Unexpectedly is a Mac application that lets you browse and visualize the reports from crashes that happened on your Mac or, more probably, another one.

Unexpectedly knows how to parse macOS crash reports. Unexpectedly processes the crash reports to display them as text with colored syntax and hyperlinks or as outlines. A broad range of options are available to let you customize how and what to display.

Unexpectedly can symbolicate the backtraces of crash reports using either the dSYM archives you provide or the ones it has automatically found on your Mac.

This seems really well done, it has documentation, and it’s even open source.

Firefox Now Uses Native Contextual Menus

Matthew T, 21 years ago (via Hacker News):

Mozilla on MacOS is using native main menus -- the XUL menu items are being translated into native menu structures, allowing Mozilla to use the Mac’s main menu bar.

Why couldn’t this be done with context menus as well?

Morgan:

Firstly I just want to say I am very happy to see this long standing bug fixed. Trying out Nightly all looks so much better than the Firefox custom context menu so excellent job!

Finally.

jaas:

It has nothing to do with engineering resources, and we always wanted native context menus, but they were not customizable enough to meet the perceived needs of web, XUL, and extension developers at the time. People expected to be able to change colors and layout with CSS, for example. The native APIs put heavy limitations on what you could do with a native context menu and it was just not compatible with the expectations of people building against the rendering engine at the time.

There was some discussion of switching back and forth between native and non-native menus based on styling, but that got complicated quickly and it wasn’t thought to be worthwhile.

It sounds like perceived needs have changed, and maybe the native APIs allow for bit more flexibility now.

Adobe Genuine Service

Adobe:

The Adobe Genuine Service is a free service that periodically verifies whether Adobe apps on your machine are genuine and notifies you if they are not.

[…]

The Adobe Genuine Service uninstaller removes Adobe Genuine Service and cached data.

Via Cabel Sasser:

TIL: Adobe runs a process on your system full-time to check if you’re running any counterfeit Adobe apps. But please don’t be concerned: it’s free! lol

At any given moment, there are usually 7 background Adobe processes (with 60–70 threads) running on my Mac, even with no apps launched. One of them crashes and shows an alert each time I log in. I would love to be able to turn them off.

Epic v. Apple, Day 16

Nick Statt (tweet):

Apple hoped to establish the market as the entire gaming market, in which the App Store is just one complete digital marketplace among many and in which consumers substitute purchases on one platform for another. In that context, it’s clear Apple doesn’t have a monopoly.

Epic lawyer Gary Bornstein pushed for more. Epic wants the market to be defined as the iOS app distribution market, over which it has argued Apple has an illegal monopoly that results in higher prices and reduced competition. As evidence, Bornstein said Apple feels no pressure to lower its prices, that there’s a lack of innovation in the store, and that in the event of a price increase, it’s unlikely developers would leave the iOS platform.

[…]

In one notable exchange, Gonzalez Rogers rejected the notion that anti-steering rules are in place to improve transaction “efficiency,” as Moye tried arguing. “[Tim] Cook conceded that it’s a method of being compensated for intellectual property,” the judge said. It was a strong example of Cook’s frank Friday testimony undermining the Apple legal team’s more sugar coated justifications behind its iOS restrictions.

[…]

Judge Gonzalez Rogers ended the session after a little more than three hours of courtroom debate, saying she anticipates a ruling to take a considerable amount of time but declining to give a firm date.

Elizabeth Lopatto (tweet, Adi Robertson, Leah Nylen):

Throughout the trial, Epic’s general strategy appears to have been to stuff the record as full of evidence as possible — just in case it’s needed on the inevitable appeal. To do that, Epic sacrificed telling a coherent story.

Apple, on the other hand, was on brand. It had a clear story and it spent the entire trial hammering it home: Apple controls the App Store because the alternative would be a security and privacy nightmare.

[…]

Judge Yvonne Gonzalez Rogers pointed out that it was possible Epic’s proposed remedy — allowing other app stores onto the iPhone and allowing side-loading of apps — destroyed consumer choice. After all, she suggested, people are generally aware of Apple’s tightly controlled ecosystem and are choosing it on purpose. Besides, she noted, the cost of apps in Google’s store was roughly the same.

Well, Epic’s Bornstein said, that’s because it’s a duopoly.

Juli Clover:

At the conclusion of the trial, Judge Rogers said that she expects that her verdict will take quite some time, but she did not provide a concrete date. It could be several weeks before we hear about the Epic Games v. Apple trial again, and it’s quite likely that any decision will be appealed, so this is a lawsuit that could carry on for months to come.

Nick Statt:

Both sides are now trying to figure out what the hell Apple actually means when it says you can’t tell iOS users about cheaper in-app purchase options outside the App Store using a sign-up email.

Everyone seems to be confused because there are different rules for different apps.

[…]

There is now a debate over whether anyone has complained about anti-steering.

It’s literally the entire focus of the EU’s antitrust investigation into Apple, instigated by Spotify… which doesn’t let you sign up for Spotify Premium on iOS anymore.

Adi Robertson:

Judge: “If the relevant market here includes developer-side competition, so far there doesn’t seem to be anything that is in the market itself that is pressuring Apple to compete for developers.”

[…]

Swanson says the commissions now are de facto lower than they were under physical distribution. “It’s not a monopoly price. It’s a competitive price.”

Adi Robertson:

Bornstein describes Apple’s argument as “we’re doing a really good job, your honor, please let us continue to do a really good job,” and “we’re the benevolent overlord of this ecosystem.” But “that is not a defense under the antitrust laws."

Colin Cornaby:

The Judge had a QA with Apple and Epic’s lawyers today, and her questions and comments seem favorable to Apple.

However, Apple made a very worrisome argument that using it’s APIs are akin to licensing their intellectual property, and developers owe them a cut simply for that use

It’s a very strange argument that everyone should be kissing Apple’s feet for releasing Metal instead of… I dunno… QuickDraw 3D? And that because of that they should get a 30% cut.

Steve Troughton-Smith:

There’s a lot of fact-twisting, misdirection and dishonest arguments coming from Apple’s lawyers in closing in the Epic case, which contrasts starkly with Epic’s factual points. I feel like if Apple were on the right side of history here, they wouldn’t have to lie & manipulate

David Heinemeier Hansson:

But the iPhone doesn’t let you execute whatever program you see fit to run. It only executes programs that Apple has approved, and if they don’t approve it, you can’t run it. That might sound obvious, but it’s a startling reversal of computing history.

[…]

The only loophole here in the web. Apple hasn’t (yet?) taken to censor what parts of the web you can access using your pocket computer, but they could. Tomorrow. Because one of the categories that Apple doesn’t allow any competition within is browsers!!

[…]

Can you imagine trying to submit an app for a new system called the web today? If the web hadn’t existed prior to the iPhone, there’s no way in hell Apple would ever have approved a browser with unfettered, unfiltered access today. No way.

[…]

It’s a computer. It’s my computer. Whether it fits in my pocket or sits on my desk just doesn’t matter.

Ben Thompson (Hacker News):

I think there is a strong chance that Apple prevails, for reasons I’ll explain below, but that doesn’t mean the trial has been waste of time: it has cast into stark relief the different arguments that pertain to the App Store, and not all of them have to do with the law.

[…]

The most important case for Apple’s defense, though, is 2004’s Verizon v. Trinko, which established and/or reiterated several important precedents that support Apple’s position, even if Apple were held to be a monopolist.

[…]

This does, I would note, put Apple’s antitrust conviction in the ebooks case in considerably more dubious light: Apple was trying to shift the industry away from a wholesale model to an agency model, which is the exact sort of model that doesn’t work with the App Store. That the company was offering its own alternative — iBooks — makes it worse, just as the introduction of Apple Music made the application of App Store rules to Spotify particularly problematic.

What is also worth acknowledging, though, are the kinds of businesses that never get off the ground.

[…]

What the company no longer admits, though, is that developers did a lot for Apple too. They made the iPhone far more powerful and useful than Apple ever would have on its own, they pushed the limits on performance so that customers had reasons to upgrade, and even when Android came along iPhone developers never abandoned the platform. Sure, they had good economic reasons for their actions, but that’s the point: Apple had good economic reasons for building out all of those APIs and developer tools as well.

Nick Heer:

I am not sure if I wrote this publicly, but in discussions with friends, I have long maintained that Epic is a bad plaintiff in this case. It is hard to sympathize with a developer that is suing over a single-digit percentage of its revenues because of a contract dispute that it initiated in bad faith, and where it is clear that it hopes to develop its own platform that will have similarly stringent rules. But this trial has surely put a big dent in Apple’s reputation. If you thought before that Apple was an overly controlling corporate giant that squeezed money at every possible opportunity, its executives’ testimony reinforced that. Even if you are comfortable with Apple’s business case, Tim Cook’s cold remarks must have shaken some of that confidence.

In a little under two weeks, WWDC will begin. Like last year, I am sure Cook and Federighi are relieved they will not have to face developers in person. That would be awkward.

Ian Sherr:

In his opening keynote for Microsoft Build, Nadella takes a slight swipe at Apple

Previously:

Update (2021-06-02): Russell Brandom:

Both images and audio from the proceedings were tightly controlled (as is often the case in federal courtrooms), so the only images came from courtroom artist Vicki Behringer, who saw much of the trial from an assigned seat to the right of the jury box. We invited Behringer to share eight of her favorite sketches from the trial, showing off both her skill as an artist and her unique perspective on the case.

Farhad Manjoo:

Call this scourge what it plainly is, the Apple tax — the billions of dollars a year that Apple collects from large swaths of the technology industry for the privilege of offering paid apps and in-app purchases to iPhone and iPad users.

[…]

But for how many years should Apple get to milk billions of dollars of almost pure profit from an invention first released back when George W. Bush was president?

The 30% is certainly a problem, but the bigger issue the products that, because of the App Store’s restrictions and review process, can’t be built, aren’t allowed to be distributed, or must be made worse.

Update (2021-06-04): Nilay Patel:

Here’s our complete (and fun!) video recap of the Epic v. Apple trial[…]

Monday, May 24, 2021

macOS 11.4

Apple:

macOS Big Sur 11.4 adds Apple Podcasts subscriptions and channels and includes important bug fixes.

Apple:

This document describes the security content of macOS Big Sur 11.4.

See also: MacRumors, Howard Oakley, Mr. Macintosh.

Previously:

Update (2021-06-02): Howard Oakley:

Among the significant changes in version or build number in bundled apps are[…]

Howard Oakley:

Apple has today posted standalone updaters for its Security Updates released for Catalina and Mojave over a week ago.

Apple Execs on the Mac App Store

Tim Cook, in 2015:

I think the lack of gaming (along with lack of native productivity apps) are the main reason the Mac App Store is dormant.

Phil Schiller:

The Mac App Store matters for distribution of Apple software and 3rd parties that can’t create their own download store. Other than that what should it be? I think trying to make it the same as the iOS store (the best place for all software from all developers) can’t work…

[…]

We know all the developers, we know the tools they use. We could invest more in being the go-to place for all your development needs. It isn’t a giant market, and there might not be a ton of revenue in it, but it should be growing and worth investing it for the Mac platform.

I could see focusing on a strong developer category (there already is one) and making it better known as the place for all developers to go to for everything they need and even things they didn’t know they need.

Nathan Anderson:

It “wasn’t really working” because UNlike the iOS App Store, it had to compete on its own merits. And apparently was found wanting.

Steve Troughton-Smith:

This is kinda bonkers. Ask any Mac dev and they’ll give you plenty of reasons why they’re not on the Mac App Store. Tim thinks the MAS’ problem is a lack of games. Not sandboxing. Not payment model. Not upgrade model. Not App Store restrictions defining out categories of apps

The Mac App Store is dormant because Apple built a system that excludes almost all of the existing big and indie developers from participating. I feel like if you cared about the Mac app ecosystem you would know this. And you would know this before 2015.

Previously:

Remaining Issues in Big Sur

I updated my main Mac to Big Sur a month and a half ago, so I’ve been using macOS 11.2.3 through 11.3.1. Unfortunately, I’m not sure that it fixes any of the Catalina issues that I mentioned, and it introduces a variety of new ones:

See also: Big Sur 11.3 bug tracker, Multiple Issues including Kernel Panics.

Previously:

Update (2021-05-24): Josh Centers:

Photos just straight up corrupted a photo in iCloud the other day. That corruption synced between devices. Thankfully I was able to restore it, but geez.

Update (2021-05-25): Rui Carmo:

I’ve only experienced some of these issues, but the interesting bit is that I have heard about most of them through complaints from my friends, so it seems pretty comprehensive.

I do have to wonder why this is still the case this far into the 11.x cycle, since Big Sur really ought to be a lot less buggy than Catalina.

See also: Hacker News, Twitter.

Update (2021-06-02): Jesse Squires:

This is the longest I have ever waited to upgrade macOS. It feels weird, considering WWDC is next week where we will see what is next for macOS. Big Sur still feels new to me, and announcing the next major release already feels too soon. I was avoiding Big Sur based on various reports about bugs and instability. There were not any ‘killer’ features I was eager to have, thus the main reason I upgraded was because Xcode 12.5 required it.

[…]

Michael Tsai and Howard Oakley have diligently documented all sorts of issues with Big Sur. I have experienced many of them. Most bugs are small, or they are “fixed” temporarily with a reboot. The last six or so years of macOS have felt like “death by 1,000 cuts” — I would love to see that change next week at WWDC.

[…]

Speaking of trash — Mac Catalyst apps. They are just terrible.

Friday, May 21, 2021

Epic v. Apple, Day 15

Nick Statt (tweet):

Apple CEO Tim Cook took the stand on Friday for the final day of testimony in the Epic v. Apple antitrust trial.

[…]

“When they buy an iPhone today, they buy something that just works. I think they buy into a total ecosystem when they buy an iPhone,” Cook said. Bornstein presented Cook with the notion that Apple has no idea if it’s more dangerous to open up the iOS ecosystem because it has not once allowed it in the iPhone’s nearly 15 years of existence. “It’s an experiment I wouldn’t want to run,” Cook replied. Cook said his assertion that a more open IOS would be “terrible for the user” to be based on his “business judgment.”

Juli Clover:

Cook was asked if third-party companies could implement app review as effectively as Apple, and Cook said no.

They’re not as motivated as Apple is. For us, the customer is everything. We’re trying to give the customer an integrated solution of hardware, software, and services. We deliver a brand of privacy, security, and safety. I just don’t think you can replicate that in a third-party.

[…]

Judge Rogers engaged Cook in a long debate about in-app purchases and how they’re driven by games. Rogers is curious what’s wrong with Apple providing users with choice within in-app purchases. If people want to buy v-bucks separately, what’s the issue with Apple giving them that option? Or telling them they can make the choice?

Cook said that if people were allowed to link out, Apple would “in essence give up [its] total return on [its] IP. The judge then pointed out that games make up most of the in-app purchases. “It’s almost as if they’re subsidizing everybody else,” she said.

“We need a return on our IP,” said Cook. “We have 150,000 APIs to create and maintain, numerous developer tools, and processing fees.”

[…]

Do all developers like things the way they are? asked the lawyer. “Some developers don’t like it,” said Cook, referencing Epic Games . He said there are a “few others” who aren’t satisfied with the App Store policies[…]

Adi Robertson:

Judge asks to clarify what the data says. “There’s about 1-2% of the malware is on the iPhone vs. around 30-40% on Android and another 30-40% on Windows. It’s quite a difference,” says Cook.

[…]

The [small business] program was in the works for years but only happened in 2020. Why? “I was very worried about COVID and the effects of COVID on small businesses in particular,” Cook says.

[…]

How have prices consumers paid for software changed?

“They’ve definitely gone down significantly,” says Cook, from the days of buying a “shrink-wrapped package from the local retailer.”

[…]

What about references to locking customers into devices?

“It means making all the product work so well together people don’t want to leave,” Cook says.

Is there anything Apple could do to lock people into iOS?

“Not that I’m aware of.”

[…]

Cook looks over an email calling iMessage the toughest thing to leave behind, and he characterizes it as somebody having configured iMessage wrong and having issues getting their messages on a new phone.

[…]

Epic’s lawyer says Apple has 1.8 million apps, so it couldn’t possibly be “curated,” a term Apple has linked with the store.

[…]

Lawyer says, “if people really value Apple’s curation and Apple’s App Store, even if there are multiple stores, people could still go shop at Apple,” right?

“It seems like a decision that they shouldn’t have to make,” Cook says.

[…]

Epic now going to Cook’s congressional testimony saying Apple’s never increased the commission rate in the store. But Apple has “expanded the scope of transactions” to which the commission applies, right?

Cook says yes if that means they’ve added new product features.

[…]

Judge Rogers: “You don’t charge Wells Fargo or Bank of America, right? But you’re charging gamers to subsidize Wells Fargo.”

“In the gamers example, they’re transacting on our platform,” Cook says.

“People are doing lots of things on your platform,” judge says.

“I understand this notion that somehow Apple’s bringing the customer to the gamers, to users. But after that first time, after that first interaction … the developers of the games are keeping their customers. Apple’s just profiting off that, it seems to me.”

“I view it differently than you do. We’re creating the entire amount of commerce on the store, and we’re doing that by focusing on getting the largest audience there, we do that with a lot of free apps so those bring a lot to the table,” says Cook.

Leah Nylen:

“We could no longer make the promise” of safety, security and privacy, Cook says. The promise depends on the app review. I know they want that because they tell us that.

What would be the consequence of not having to use IAP? Moye asks. Customers would then have to post their credit cards in all these different apps. It would be a huge inconvenience and the fraud risk would go up, Cook says.

Apple would also have to come up with a new way to collect its commission. IAP is the most “efficient” way to do it, Cook says.

Apple Pay already prevents customers from having to enter their credit cards, and it gives Apple a commission, but Apple forbids its use in cases where it requires IAP.

Khaos Tian:

lol Apple think even if they allow other payment methods, they are still entitled to get a cut for transactions happened within an app 😛

Leah Nylen:

You maintain Apple did not retaliate by threatening to shut down the Unreal Engine, Bornstein says. Cook confirms.

Previously:

Update (2021-05-25): Adi Robertson:

Rogers noted that most of Apple’s App Store revenue comes from games, and she asked Cook why developers can’t use other payment methods to sell in-app purchases, or at least tell users they can make those transactions elsewhere. “If they wanted to go and get a cheaper Battle Pass or V-Bucks, and they don’t know they’ve got that option, what is the problem with Apple giving them that option?” she asked.

Adi Robertson (Hacker News):

Cook used more privacy and safety claims to defend that system, saying it would be both insecure and inconvenient to let apps process payments separately. He was also, however, a little blunter about Apple’s own interests. “IAP helps Apple efficiently collect a commission” — for payment processing, but also customer service and the use of Apple’s intellectual property. Without in-app purchases, “we would have to come up with another system to invoice developers, which I think would be a mess.” If Apple let developers tell users about other payment methods, Cook said later, “we would in essence give up our total return on our IP.”

Juli Clover:

She spent several minutes grilling Cook on Apple’s App Store policies and some of the statements that he made. “You said you want to give users control, so what’s the problem with allowing users to have a cheaper option for content?”

Cook clarified that by control, he meant control over data, and he told the judge that customers can choose between Android phones and the iPhone.

Nick Statt (tweet, Hacker News):

The end result was the best hint yet how Gonzalez Rogers is thinking about the Fortnite dispute, which one of Epic’s many complaints she finds credible and how she may decide to rule when the trial ends. In particular, the judge seems concerned about the rigidness of the 30% cut and Apple’s rules against allowing developers to communicate ways to purchase digital goods off-platform.

[…]

The general takeaway is that Gonzalez Rogers expressed deep skepticism of Apple’s claims that it operates the App Store the way it does out of the goodness of its heart. Apple executives have reiterated throughout the trial that they built iOS and the App Store this way out of concern for user security and privacy and for an end-to-end experience. But Gonzalez Rogers says there were also clear financial incentives to do so and that it appears Apple is incapable of responding to any concerns that may threaten the benefits it receives.

Florian Mueller:

Getting back to the first trial week, its second half actually went better for Epic than some observers realized. Not only did Judge Gonzalez Rogers identify some inconsistencies and a certain degree of arbitrariness in Apple’s app review decisions but she also made a remark on how competition spurs innovation, which in turn improves security.

[…]

As a complainant whose problem with Apple relates to its inherently-subjective Objectionable Content guideline, I don’t see how the problem could be solved without third-party app stores like the Epic Games Store. The 30% could be undercut and undermined in other ways. But for developers to regain some essential freedoms we had in the past, when the primary platform was Windows followed by the Mac and Linux, it takes more than an “anti-anti-steering” order, though it was another key moment when Judge YGR indicated she wasn’t going to buy Apple’s American Express analogy (that case was about an anti-steering provision).

Kosta Eleftheriou:

Users don’t know the input to the app review process, so they can’t really know if it’s better for them overall.

When my app wasn’t allowed on the App Store, users didn’t know that.

Steve Troughton-Smith:

‘But Epic just want their own App Store’

One of the major contributing factors to the success of iPhone & the technological revolution it sparked is how Apple wrested control away from the carriers — ‘orifices’ as Steve Jobs called them.

Apple has become the orifice.

It’s OK for Epic to want its own App Store, or Steam, or Xbox Cloud Gaming, or the ‘unspeakable’ http://itch.io, and there’s a generation of innovation outside the App Store just waiting to happen along vectors that Apple just defines out of existence today on a whim

Marco Arment:

Is all online commerce thanks to Netscape and Internet Explorer?

Should every website be forced to pay them 30%?

Once the scale gets large enough to encompass an entire generation of broad-ranging commerce, arguments like Apple’s here are completely childish and ridiculous.

Francisco Tolmasky:

I constantly feel that the customer perspective is the best reason to want multiple AppStores[…]

Kosta Eleftheriou:

If I search the App Store for an app by its exact name, e.g. “Netflix”, who brought the customer?

Kosta Eleftheriou:

If I listen to a developer’s ad on the radio and then go and download their app from the App Store, who brought the customer?

Benjamin Mayo:

I can’t believe that Apple keeps testifying that it doesn’t know how much profit it makes from the App Store. It’s just an insane declaration. On financial statements, Apple publicly reports Services business with ~63% margins. App Store is most of that. Done.

Stephen Nellis:

Cook on the stand answering questions about App Store curation and approvals: “We’re not making a moral judgement on them, if that’s what you’re asking”

Here are the App Store review guidelines, where the first rule is about “objectionable content”

John Gruber:

99 percent of Snap’s revenue is from advertising, not a nickel of which Apple gets a commission from. I’m not faulting Snap in the least for building an ad-based business — Daring Fireball gets at least 95 percent of its revenue from advertising. But the CEO of a company whose business doesn’t rely on in-app purchases or subscriptions doesn’t really seem like a good person to ask about Apple’s commission structure.

Find me the CEOs of companies that generate a significant percentage of their revenue through App Store transactions who espouse the same sentiment as Spiegel.

Update (2021-06-07): Tanay Jaipuria:

Google pays Apple $10-12B/yr to be the default search engine on iOS.

But apparently Tim Cook doesn’t remember the amount or why Google is paying it

Previously:

New Many Tricks Upgrade Model

Rob Griffiths:

In theory, upgraders and new customers for a new release funded all the work we did between initial release and the major update. In reality, that model is broken for us—and for you, our customers—and it’s been broken for quite a few years.

[…]

A related issue is the amount of other work we have to do for free; there’s no way with our current model to ever cover the time we put into updating for new macOS features, or to work around bugs in other apps that cause problems in our apps, etc. […]

So you’re not happy (no new features) and we’re not happy (stressful, no revenue stream). Clearly the model had to change. So we changed it.

[…]

At the end of the full year, you’ll own the latest version released during that year, and you can keep using it without any sort of restrictions. It’s your app, and it won’t stop working just because a year has passed. At some point, if you want to update to the latest version, you can do so by paying a much lower “update only” price—and that price also includes at least one more full year of updates.

This is not a subscription in any way. You own the app, and you decide when (and even if) you want to add features we’ve added to the app over the time since your original year of updates passed.

It seems like they are keeping initial prices the same and offering a year of updates for 50% off. So, for a customer who wants to always be current, this represents a price increase vs. the old model of up to 9 years between major upgrades. But, as popularized by Sketch, it’s a good compromise vs. subscriptions in that you’re not renting the app and are never forced to upgrade. In theory, you can get access to new features sooner because they don’t need to be held for business reasons. And the predictable schedule has benefits for both sides. For the customer, there’s not really a bad time to buy. For the developer, as long as you keep making good updates you can get smoother revenue.

Rob Griffiths:

[The] App Store doesn’t support anything like what we’re trying to do. Thankfully, we don’t have to answer it right away, as our App Store apps aren’t up for major updates right now. (Moom 4, which will be our next major update, won’t be in the App Store, because it’s not allowed under their rules. It’s only there today because Apple allowed the current version to stay when they changed the rules.)

Benjamin Schaaf:

Sublime Text license keys are no longer tied to a single major version, instead they are now valid for all updates within 3 years of purchase. After that, you will still have full access to every version of Sublime Text released within the 3 year window, but newer builds will required a license upgrade. These are the same license terms we use for Sublime Merge, and they allow us to deliver more frequent and exciting updates as soon as they're ready, without having to roll them into a new major version.

Previously:

Update (2021-05-25): Zengobi:

We actually just switched to this model for our Curio 15 traditional licenses. Ironically Sketch was an inspiration.

30 Years of the Web

CERN (via Hacker News):

The first website at CERN – and in the world – was dedicated to the World Wide Web project itself and was hosted on Berners-Lee’s NeXT computer. In 2013, CERN launched a project to restore this first ever website: info.cern.ch.

On 30 April 1993, CERN put the World Wide Web software in the public domain. Later, CERN made a release available with an open licence, a more sure way to maximise its dissemination.

Epic v. Apple, Day 14

Nick Statt:

CEO Tim Cook is up first thing tomorrow. But today we’re back with experts and third-party witnesses.

  • UCLA’s Dominique Hanssens
  • Ocean Tomo CEO James Malackowski
  • Aviel Rubin, JHU technical director

Adi Robertson:

Hanssens’ survey assessed how much iOS users relied on non-iOS devices on a regular basis, and what devices they had “available” but didn’t necessarily use, like devices family members had.

[…]

We are back onto the Microsoft OS smartphone question, and Apple’s lawyer is suggesting that maybe people have a newer Microsoft phone even if it doesn’t technically run a Microsoft OS. I’d guess she’s talking about the Android-powered Surface Duo.

[…]

Malackowski also looks at the steady rise of patents applied for and granted — wants to note that Apple has a “significant and sustained commitment” to innovation based on these two charts.

[…]

We’re looking at the Apple developer agreement, which Malackowski describes as an agreement by which developers are allowed to use Apple’s IP. There’s no fee to signing the license, he says. (There is a separate fee for putting an app on the App Store.)

[…]

Lawyer is asking Malackowski probing questions about whether Apple would really be giving up revenue from its IP under Epic’s demands, especially compared to, say, its hardware profits.

[…]

Forrest says Schiller denied what Epic believed was an “obvious point,” and Epic was scrambling to grab documents. “It came as a surprise to me that he would deny it so vehemently.” (“It” being that people were processing payments before IAP.)

[…]

We’re still debating whether Epic will get to add more testimony about in-app purchases, but Judge Rogers shuts it down. “Everybody knew what was going on, and the fairest thing is to leave the playing field as the playing field.”

Leah Nylen:

Malackowski says he looked at Epic’s requested relief: They are asking for a defacto compulsory licensing agreement without payment and it would harm innovation.

[…]

There does not exist a list what IP is being licensed subject to the DPLA, Moskowitz agrees. He also agrees that a licenses should generally include what is being licensed in it.

[…]

Rubin says he was asked to look at the app review process and the App Store distribution model and determine if they have an impact on security, privacy, reliability and trustworthiness.

[…]

Apple’s app store review and centralized distribution model offers “significant benefits,” Rubin says. There are lower infection rates of malware and a lower volume of infectious apps in the App Store, he says.

[…]

YGR asks: couldn’t that be because there are more Android devices. Rubin says there are 3x as many Androids as iPhones. You’d expect there to be about 5 percent of devices infected then not 26 percent.

Previously:

Thursday, May 20, 2021

Carbon Copy Cloner 6

Mike Bombich (tweet):

We’ve completely rebuilt our file copier to take advantage of the performance characteristics of modern storage.

[…]

CCC can now tap into the macOS FSEvents service for a list of folders modified on the source since the last backup rather than scanning every folder for changes.

[…]

CCC now offers more detailed progress indication while a task is running, including a time remaining estimate. File processing and transfer rates are now charted live during backup tasks.

[…]

CCC’s Snapshot Navigator allows you to step through older versions of your backups and get a preview of your files as they were at specific points in time.

[…]

If a sudden change in snapshot-related disk usage occurs, or if disk usage is exceeding expectations, CCC raises the change to your attention so you can address the root of the matter.

[…]

When your tasks run, CCC will record detailed information about the transactions that occurred during the task, e.g. files copied, files updated, folders created or updated, files deleted or archived. You can view these backup audits in CCC’s Task History window, and never again wonder why CCC copied a particular file.

This is a great update. $40 for new purchases or $20 to upgrade.

See also: What’s new in CCC 6? and Beyond Bootable Backups: Adapting recovery strategies for an evolving platform.

Previously:

Preventing Surprisingly Large Objective-C Type Encodings

Peter Steinberger:

If you’re familiar with Objective-C, you likely know about selectors, but they only contain the name and number of parameters. The type each parameter has is stored in the method type encoding, which is encoded as a simple string. With C++ types, those strings can easily become lengthy and add to your binary size. […] Before it was changed, the worst offending method type signature in our codebase contained 13,126 characters. That’s 12 KB (!) for one type.

[…]

While you can use strings Foo.app/Foo | grep -e '{' in your app binary to find encodings, it’s not always easy to see the method or variable referenced. So instead, I wrote a helper in Swift to find the largest type encodings of methods and instance variables.

[…]

There are various ways you can hide C++ objects. For most situations, I created a separate struct in the ObjC class implementation and moved C++ objects into it. This newly created struct is connected to the class via a unique_ptr. This is an additional level of indirection, but it can be cached before entering any hot paths, so it shouldn’t have any performance drawbacks (see below).

Previously:

Update (2021-06-05): Peter Steinberger:

Looks like this was picked up and fixed!

“[ObjC] Encode pointers to C++ classes as "^v" if the encoded string would otherwise include template specialization types”

Epic v. Apple, Day 13

Nick Statt (tweet):

Epic and its lawyers have throughout the trial pointed to the freedom consumers have on macOS to download applications outside the Mac App Store and to largely do what they please on the macOS operating system. Epic has held up the openness of the Mac as an example of what the iPhone, as a general computing device in Epic’s eyes, should be transitioned into if it were to win its case.

But Federighi on Wednesday argued against this proposition by saying it would destroy the level of security enjoyed by iOS users, in effect tarnishing the Mac in order to save the iPhone. “It would become commonplace for users to be directed to download misrepresented software from untrusted sources where they’d be subject to malware,” Federighi argued, referring to the notion of alternative app stores as a “pretty devastating setback for iOS security.”

Adi Robertson (tweet):

Federighi basically says iOS users need to be more protected because the Mac is a specialist tool for people who know how to navigate the complexities of a powerful system, while the iPhone and iPad are — literally — for babies.

[…]

Federighi took a far broader view of security than Epic’s own expert witness James Mickens. Mickens testified earlier that iOS wasn’t meaningfully more secure than Android, but he analyzed mostly technical threats to the platforms. Federighi focused on scams, phishing, and other apps that target human psychology instead of computer code — many of which pose serious dangers.

Sometimes, though, the protectiveness felt patronizing. When Federighi explained Apple’s restrictions on cloud gaming, he focused partly on tangible security issues, like how to grant device permissions for different titles on a single gaming app. But he slipped seamlessly into discussing how the concept would be simply too confusing — that iPhone and iPad owners would be befuddled by the notion of launching a separate game catalog. Apple wants iOS devices to feel trustworthy, but at times like that, it seems more like Apple just doesn’t trust its own users.

Chris Welch (Hacker News):

Federighi’s mission was pretty clear from the outset: to extol the security benefits that come with iOS’s walled-off ecosystem and warn of the dangers that would come with breaking the App Store model.

But in building that argument, Federighi also made some surprisingly blunt concessions about security on macOS.

“If you took Mac security techniques and applied them to the iOS ecosystem, with all those devices, all that value, it would get run over to a degree dramatically worse than is already happening on the Mac,” Federighi said in the testimony. “And as I say, today, we have a level of malware on the Mac that we don’t find acceptable and is much worse than iOS.”

[…]

Federighi also cast the difference between the two platforms in unusual terms, describing the desktop platform as something akin to a car. “If operated correctly, much like that car, if you know how to operate a car and obey the rules of the road and are very cautious, yes,” he said when asked directly whether macOS is safe. “If not, I’ve had a couple of family members who have gotten some malware on their Macs.”

What happened to iOS devices being cars and Macs being trucks?

Joe Wituschek:

It’s kind of insane to know that Apple’s strategy to protect the App Store on the iPhone requires it to throw the Mac under the bus. Federighi’s reasoning is that the iPhone, being that it contains more private information and is carried around with you, requires a higher bar of security.

Kosta Eleftheriou:

There it is. If Apple has their way, we might even have to say goodbye to macOS “sideloading”.

A true dystopian future of centralized software distribution, in which Apple only sees upside, no downside.

Francisco Tolmasky:

And of course it goes without saying that they’re playing word games here, where an app that just tricks you into paying monthly isn’t classified as “malware” in the traditional sense, but I assure you, users don’t care about technicalities when they are scammed.

Logan Collins:

It’s hard not to read into this as Federighi saying “we see the Mac as a malware-ridden mess and will change that by locking out everyone who doesn’t agree with us.”

Zuk:

For those that think that iOS is safe because of the “walled garden” take a look at the leaked Pegasus/NSO documents here. NSO couldn’t care less about the “walled garden” because they infect devices without it: silently (0-click) or click on a link (aka 1-click).

Russell Brandom and Adi Robertson (MacRumors):

In a filing Tuesday night, Apple asked the court to dismiss one of the 10 counts alleged in the initial complaint, arguing Epic had failed to establish any evidence for the charge that Apple had violated the essential facilities doctrine by failing to provide access to software distribution tools on iOS.

Ian Sherr:

Schmid said there were “over 80 times” Epic asked for expedited review for Fortnite, and it was reviewed over 200 times. There were times that App Review apparently pushed back on Schmid’s team, asking if these expedited reviews were necessary

Paul Haddad:

“We treat all developers the same.”

Pretty sure I’ve gotten told no on my second expedited request within a year.

See also: Leah Nylen.

Previously:

Update (2021-05-24): Jeff Johnson (see his screenshots of the Mac App Store):

I agree that the level of Mac malware is unacceptable.

20 Years of Apple Retail Stores

Michael Steeber:

Twenty years ago this week, Apple opened its first brick and mortar retail stores to applause, cheering, and seemingly endless lines of smiling faces. What started at two malls in Tysons Corner, Virginia and Glendale, California became a tradition spanning two decades, generations of customers, and more than five hundred new stores.

See also: Tim Cook.

Previously:

Wednesday, May 19, 2021

screensizes.app

Dave Jacobsen:

We know you’ve been using “The Ultimate Guide To iPhone Resolutions” from PaintCode that’s outdated, but trust me this new one is where it’s at.

It has TONS of useful stuff and even supports iPads, Apple Watch, TV, and CarPlay!

See also Adaptivity.

Previously:

Update (2021-05-19): Josh Calvetti:

@trevormkay is the dev and designer behind that, though he’s too humble to make a big deal about it. But it’s a great resource for sure, and also great proof of what can be done with a PWA outside of the App Store.

Tweaks for Twitter 1.0

Jeff Johnson (tweet):

Tweaks for Twitter is a macOS web browser extension that improves the user interface of twitter.com in many ways. Tweaks works in Safari for Mac, Google Chrome for Mac, and any other Chromium-based web browser for the Mac, such as Brave, Microsoft Edge, and Vivaldi.

In addition to cleaning out lots of extraneous elements, it expands “t.co” URLs and makes the full page scrollable.

Previously:

Epic v. Apple, Day 12

Adi Robertson (tweet):

“Product marketing works hand-in-hand with engineering on all of our projects,” Schiller explained. Different parts of Apple simply aren’t siloed into neat divisions; it’s one tight-knit company that makes a many-featured product.

That anecdote buttressed a more legally pertinent claim: because of this management system, Apple allegedly has no idea how much the App Store makes.

[…]

Where Epic has pointed out phrases like “lock-in” and seeking “stickiness” on iOS, Schiller emphasized that the “stickiness” involved trying to add features that would discourage phishing. “If there’s any plan here, it’s simply to come up with new features to help protect users from security and privacy scams.”

[…]

Cross-examination touched on topics like iMessage, but Epic’s counsel favored exhaustive readings of policies and lists that could show Apple in an unfavorable light, including every time it mentions relying on open source software and the search results for “BDSM” on the App Store.

Nick Statt (tweet):

Schmid was likely far underplaying the amount of revenue Apple earned from Fortnite’s mobile app, as court documents and independent analyst firms estimate the amount to be more in the range of $300 million to $350 million. It’s unclear why Schmid chose the $100 million figure when asked how much money Apple earned on commission from Fortnite through the App Store’s standard 30% cut.

Nick Statt:

Epic’s lawyer gets Schiller to admit there were no known security issues he’s aware of from downloading apps through the enterprise app program, which companies can use to sideload software on the iPhone.

Adi Robertson:

Epic’s attorney raises one case of a company that had to remove in-app purchases of a sort: Amazon. Schiller says Amazon launched a store specifically to sell Kindle ebooks, because “they didn’t expect anyone to read books on an iPhone.” So it was considered an external purchase.

Amazon added support for reading ebooks within iOS, and Apple said Amazon had to either remove it and force people to only read on the Kindle again, or start giving Apple a commission on what had become an in-app purchase.

I don’t really agree with that narrative, given the sequence of events:

Nick Statt:

Epic’s lawyer plays Schiller a clip of Scott Forstall’s deposition in which he reveals some apps were processing their own in-app payments prior to the launch of IAP in 2009.

Schiller says he doesn’t “agree” with Forstall’s testimony.

Nilay Patel:

Agree w Adi and Nick - Schiller did a good job today, and Epic failed to figure out what story to tell with him

Horacio Gutierrez (via MacRumors):

There is a lot to admire about Apple, but my company, Spotify, has seen another, brutish side.

Previously:

A Hard Bargain for Apple in China

Jack Nicas, Raymond Zhong, and Daisuke Wakabayashi (tweet):

Tim Cook, Apple’s chief executive, has said the data is safe. But at the data center in Guiyang, which Apple hoped would be completed by next month, and another in the Inner Mongolia region, Apple has largely ceded control to the Chinese government.

Chinese state employees physically manage the computers. Apple abandoned the encryption technology it used elsewhere after China would not allow it. And the digital keys that unlock information on those computers are stored in the data centers they’re meant to secure.

Internal Apple documents reviewed by The New York Times, interviews with 17 current and former Apple employees and four security experts, and new filings made in a court case in the United States last week provide rare insight into the compromises Mr. Cook has made to do business in China. They offer an extensive inside look — many aspects of which have never been reported before — at how Apple has given in to escalating demands from the Chinese authorities.

[…]

Mr. Cook often talks about Apple’s commitment to civil liberties and privacy. But to stay on the right side of Chinese regulators, his company has put the data of its Chinese customers at risk and has aided government censorship in the Chinese version of its App Store. After Chinese employees complained, it even dropped the “Designed by Apple in California” slogan from the backs of iPhones.

Francisco Tolmasky:

The journey this slogan has taken under Tim Cook is incredible: from inheriting it as a subtle and classy message under box flaps, to clumsily pushing it to the forefront as tasteless over-branding, only to be sacrificed as a representation of complete capitulation to China.

Nicas et al.:

U.S. law has long prohibited American companies from turning over data to Chinese law enforcement.

[…]

In China, Apple has ceded legal ownership of its customers’ data to Guizhou-Cloud Big Data, or GCBD, a company owned by the government of Guizhou Province, whose capital is Guiyang. Apple recently required its Chinese customers to accept new iCloud terms and conditions that list GCBD as the service provider and Apple as “an additional party.”

[…]

The terms and conditions included a new provision that does not appear in other countries: “Apple and GCBD will have access to all data that you store on this service” and can share that data “between each other under applicable law.”

Under the new setup, Chinese authorities ask GCBD — not Apple — for Apple customers’ data, Apple said. Apple believes that gives it a legal shield from American law[…]

Matthew Green:

Big parts of iCloud rely on special devices called Hardware Security Modules, or HSMs. These are specialized computers that store keys. In the US, Apple uses Thales HSMs.

Not only is Apple being forced to move Chinese citizens’ HSMs to China, China specifically refused to certify the Thales HSMs. This is actually pretty fascinating.

[…]

It’s really hard to know what to make of this. There are two good theories:

  1. China does not trust western HSM hardware to keep them safe.
  2. China felt the Thales HSMs were too safe, ie they would be difficult to for China to access.

[…]

What’s interesting about this change is that (to the best of my knowledge) your iCloud country registration can be changed by anyone who has your iCloud password.

What happens to my data if someone changes my registration to China?

Jack Nicas.

Here is Apple’s full statement on our story.

Timothy Buck:

FB/Google: We would rather give up business in China than hand over your data to the totalitarian Chinese regime.

Apple: We would rather give your data to a totalitarian Chinese regime than give up our business there.

John Gruber:

Option A: Apple does what it did — store all Chinese users’ iCloud data on servers in China, under the ultimate control of the Chinese government.

Option B: Apple refuses to do so, and the Chinese government shuts down iCloud in China and probably bans the sale of Apple devices.

Is there an Option C? I don’t think there is.

I suppose the argument for Option B is that if enough companies did this together that might put pressure on the Chinese government and eventually lead to positive change. Whereas, by bending to the demands, Apple is helping to keep the regime in power.

On the other hand, there’s no guarantee that Option B would “work.” It would have disastrous consequenes for Apple’s sales, and possibly for its supply chain, and, at least in the short term, for its Chinese customers:

What would I want Apple to do if I were a Chinese citizen who wants to use an iPhone and iCloud? (And if I were a Chinese citizen, I would very much want to use an iPhone and iCloud.) […] Even with the multiple significant compromises Apple has made to comply with Chinese law, it feels entirely possible that using Apple devices and iCloud is one of the most private things anyone outside government leadership can do in China.

Nick Heer:

If Apple were not involved in hardware and software and services, it would have less complicity but, also, less potential influence. It looks like that balance is tipping in the direction of this combination being a liability in the country.

Thomas Clement:

When you wish iCloud was designed with end-to-end encryption.

Previously:

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

There’s a very clear and obvious Option C — build Apple products that are less reliant on iCloud.

If access to the physical servers is the biggest privacy issue, then give users the tools to effectively opt-out of it entirely and take control of their own data.

[…]

iCloud Photos, iCloud Drive, Notes, and any other service that syncs or stores data in iCloud could be stored locally on a Time Capsule. Apple’s servers would just be there to tell the device I’m using how to connect to the Time Capsule on my home network. In other words, Apple facilitates the connection and then my devices talk directly with the Time Capsule using end-to-end encryption.

Tuesday, May 18, 2021

QoS and Task Segregation Make M1 Macs Feel Faster

Howard Oakley (Hacker News):

Benchmarks are all very well, but one almost universal comment made about M1 Macs is how much faster they feel, even when performance measurements don’t show as big a difference as we might like. One very effective way of giving a good impression of speed is to segregate macOS and user software to use different cores in the way that the M1 does.

Few events give a worse impression to the user than the interface slowing down in the face of a problem in the operating system. We’ve all experienced it: this could be a rogue mdworker process which keeps crashing and restarting, or anything which causes macOS to choke. Because those processes are handed over to the Efficiency cores, all they do now is slow other macOS background tasks, to which we’re much less sensitive.

The Time Machine backup pictured above ran ridiculously slowly, taking over 15 minutes to back up less than 1 GB of files. Had I not been watching it in Activity Monitor, I would have been completely unaware of its poor performance. Because Macs with Intel processors can’t segregate their tasks onto different cores in the same way, when macOS starts to choke on something it affects user processes too.

I don’t think this is a result of having efficiency vs. performance cores. macOS could have designated several of the identical Intel cores to be used for lower priority system tasks, leaving the other cores free for user tasks. My guess is that Apple’s real aim was battery life, and so it made sense to add task segregation once Macs were available with efficiency cores. The improved responsiveness is more of a bonus.

Of course, “magic” features like this can sometimes do the user wrong. Most of the time, I don’t care how long Time Machine takes, so if it can use less power and make my other apps more responsive, that’s great. But Time Machine is already slow, and sometimes I have to wait for it when packing up to leave my office. In such cases, I would like it to use all the performance cores and go as fast as possible. Likewise with indexing-type tasks. Sometimes I want them in the background, not disturbing anything, but sometimes I’m importing a big batch of photos or PDFs and want to be able to work with them ASAP.

Joe Rossignol:

Apple plans to launch new 14-inch and 16-inch MacBook Pro models with an improved iteration of the M1 chip as early as this summer, according to Bloomberg’s Mark Gurman. The new chip is said to include a 10-core CPU with eight high-performance cores and two energy-efficient cores, with 16-core or 32-core GPU options.

If true, it will be interesting to see whether system tasks are now confined to only two cores, instead of four, which would make them slower than on the initial M1 Macs.

Previously:

Update (2021-05-24): See also: Howard Oakley.

VoiceOver Image Descriptions

Apple (via Hacker News, Dave Mark):

With VoiceOver and Image Descriptions turned on, you can hear a description of what you’re taking pictures of in the Camera app.

This is pretty impressive, with much more detailed descriptions than seem to be available to the Photos app. It also works with images in apps.

You can turn off VoiceOver with Siri or by triple-tapping the side button.

Update (2021-05-25): Mattt Thompson:

Happy Global Accessibility Awareness Day! #GAAD

To celebrate, I’d like to share my favorite a11y easter egg in iOS: the delightfully baroque VoiceOver descriptions provided for built-in wallpapers.

Parsing Dates Without Times

Quinn the Eskimo:

Parsing fixed-format date strings is tricky. For an explanation as to why, see QA1480 NSDateFormatter and Internet Dates. However, there’s an extra gotcha when you try to parse fixed-format date strings that don’t include a time.

[…]

This is failing because, internally, the date formatter maps the date string to a set of date components (DateComponents). The year, month, and day come from the date string, but the hour, minute, and second default to 0. In Brazil, daylight saving time starts at midnight, and thus the date components year: 2018, month: 11, day: 4, hour: 0, minute: 0, second: 0 don’t exist in the São Paulo time zone. When the date formatter runs these components through the calendar, it returns nil.

[…]

The solution here is to set the defaultDate property on the date formatter to something in the middle of the day.

It’s not documented exactly what this does, but I presume that missing date components get taken from the defaultDate. This still makes me a bit nervous, though, because what if I have an unlucky default date whose time produces a date that doesn’t exist in that time zone? Apparently, the isLenient property can help with that.

See also: The Wisdom of Quinn.

Previously:

Epic v. Apple, Day 11

Nick Statt (tweet):

Apple spends about $50 million hosting its annual developer conference, known as WWDC, every summer. That is until the event, which has been held in recent years at the San Jose McEnery Convention Center, went all-virtual last year amid the coronavirus pandemic.

Elizabeth Lopatto (tweet, also: Adi Robertson, Leah Nylen):

The Steve Jobs line that Epic has touted — ”We don’t intend to make money off the App Store” — comes from these early days. At the time of this announcement, Apple didn’t know if it would make money, Schiller testified. He also suggests that the line was not a promise that Apple would not make money. The App Store was a “huge” risk, Schiller said. “We’re taking our hot new product and putting something we’ve never done before on it, and we have no apps yet! So we have no idea how this is going to do.” This is credible. What is less convincing is Schiller’s attempt to redefine what it means to “lock customers into our ecosystem,” a phrase that comes from a Jobs email entered into evidence earlier in the trial.

Look, “locked in” has an accepted meaning, and it’s not a very friendly one: prisoners, for example, are locked in. Schiller gives this the old college try anyhow, telling the court that the idea behind “locked in” was just to make services more attractive, so that customers wouldn’t want to leave.

[…]

Despite Schiller’s friendly demeanor, some of his testimony is a stretch. For instance, he says he doesn’t see mobile as a duopoly. He lists Samsung, Microsoft, Google, and Amazon as competition. The Amazon Fire phone was discontinued in 2015, as was the Windows Phone.

Juli Clover:

Schiller has also been speaking about Apple’s App Store policy to treat developers large and small the same, and his testimony has included some interesting little tidbits. Apple wanted to charge $99 for the App Store developer program to prove that an app that’s being worked on is “important” and that developers are “serious about making a quality app.”

[…]

On the topic of physical goods, Schiller said that in 2019, the App Store drove $400 billion+ in transactions like food delivery, Amazon purchases, Uber, and more, which are not subject to a 30 percent cut. According to Schiller, Apple does not take a cut of physical purchases because Apple can’t guarantee they will actually arrive.

I don’t think it makes sense to count purchases using the Amazon app as being driven by iPhone. Also, as I mentioned earlier, Apple can’t guarantee that digital purchases will arrive (or will not be withdrawn), either.

Nick Statt:

Schiller says the App Store 70-30 commission was better than the physical model and competitive for digital distribution.

Nick Statt:

Schiller says they anticipated competition for the App Store that might necessitate a commission reduction.

But of course… that did not happen! At least not until after the Epic lawsuit, when Apple dropped rate to 15% for small devs.

Adi Robertson:

Was Epic’s lawsuit a factor?

“I would say it helped me get it done. I would absolutely agree it helped to get the program done,” Schiller says. “I wouldn’t say it’s why we did it, but it helped.”

Nilay Patel:

Again, Apple keeps thinking of what happens inside third-party apps as part of Apple’s store. If this trial has accomplished anything it is making that crystal clear.

Horacio Gutierrez:

When it suited them - in Apple v. Pepper - Apple vehemently denied that they had any direct control over the sale of apps on the App Store. Instead, they said, they were akin to a “shopping mall”.

Adi Robertson:

Phil Schiller gets asked about Roblox, which you may remember Apple’s earlier witness said was not a game.

“In my opinion, it’s a game,” Schiller says.

[…]

“Roblox itself allows a class of users often called creators to create games within the Roblox app, and those are added to Roblox and they’re released as content within the app.”

[…]

To recap: Apple is okay with iOS apps that allow access to many games, but only if those games are created by creators and not developed by developers.

Adi Robertson:

Schiller: “Well, it’s a new type of app I think in the industry,” Schiller says. “It’s made up of multiple games, it’s not one game. And the idea of who creates them and what they’re for is a new phenomenon in our industry … it’s pretty new stuff."

Dan Wineman:

Roblox is older than the App Store.

Michael Love:

Claiming Apple deserves to get money from developers for implementing these features - which they use to sell iPhones + constantly plead with us to suport + undoubtedly make way, way more money from than we do - is downright obnoxious.

Apple: give us 30% of your money for inventing ARKit

Also Apple: please please please support ARKit

Previously:

Monday, May 17, 2021

Apple Music Spatial Audio and Lossless Audio

Apple (Hacker News, MacRumors, The Verge):

Spatial Audio gives artists the opportunity to create immersive audio experiences for their fans with true multidimensional sound and clarity. Apple Music subscribers will also be able to listen to more than 75 million songs in Lossless Audio — the way the artists created them in the studio. These new features will be available for Apple Music subscribers starting next month at no additional cost.

[…]

By default, Apple Music will automatically play Dolby Atmos tracks on all AirPods and Beats headphones with an H1 or W1 chip, as well as the built-in speakers in the latest versions of iPhone, iPad, and Mac.

[…]

Apple uses ALAC (Apple Lossless Audio Codec) to preserve every single bit of the original audio file. This means Apple Music subscribers will be able to hear the exact same thing that the artists created in the studio.

To start listening to Lossless Audio, subscribers using the latest version of Apple Music can turn it on in Settings > Music > Audio Quality. Here, they can choose different resolutions for different connections such as cellular, Wi-Fi, or for download.

Nilay Patel:

Very cool of Apple for offering three tiers - including a higher quality tier than its devices can even support - instead of pretending the CD was the pinnacle of audio quality

Dan Moren:

Both Lossless and Hi-Ress Lossless format requires opting in, given large file sizes, and you’ll need an external digital-to-analog converter (DAC) for Hi-Res. Apple also confirmed to T3 that AirPods Pro and AirPods Max (and presumably vanilla AirPods) don’t support Lossless audio, since they can only use the Bluetooth AAC codec.

Micah Singleton:

AirPods Max also won’t support lossless over the lightning cable, the company tells me.

Chris Welch:

Apple just confirmed to me that lossless audio is exclusive to Apple Music. Subscription required.

There won’t be an option to purchase tracks or albums in that quality, nor will it be offered with iTunes Match.

Andrew O’Hara:

ANY AirPods will work with Spatial Audio when listening to music but ONLY AirPods Pro and AirPods Max support Spatial Audio on videos.

Nick Heer:

If you’ve been paying attention to the rumour mill, you might have expected that Apple would add lossless and spatial audio. The surprise is that it will be included with subscriptions at no extra cost, and that is a bold move. Spotify has not announced pricing yet for its lossless tier, but it costs $5 more per month to add lossless audio to a Deezer subscription, and it is a $10 per month add-on with Tidal, which is oddly now owned by Square. Tidal’s high-end subscription also offers Dolby Atmos tracks and spatial audio through Sony’s 360 Reality Audio format.

Sami Fathi:

Moments before Apple announced that it will begin offering Spatial Audio and Lossless audio streaming for Apple Music subscribers at no additional cost, Amazon Music announced that it will also offer its subscribers HiFi quality streaming for free, Billboard reports.

Tom Harrington:

Can’t use my own data without Apple trying to upsell me. Saying “no” isn’t an option, only “not now”.

Previously:

Update (2021-05-24): Joe Rossignol:

Latest info on Apple Music lossless support…

Matt Birchler:

Is spatial audio for music the next great innovation in music production, or is it a whole bunch of nothing?

Venmo’s Public Transactions and Friend Lists

Ryan Mac et al. (via Nick Heer):

On Friday, following a passing mention in the New York Times that the president had sent his grandchildren money on Venmo, BuzzFeed News searched for the president’s account using only a combination of the app’s built-in search tool and public friends feature. In the process, BuzzFeed News found nearly a dozen Biden family members and mapped out a social web that encompasses not only the first family, but a wide network of people around them, including the president’s children, grandchildren, senior White House officials, and all of their contacts on Venmo.

[…]

While many critics have focused on how the app makes all transactions public by default, Venmo’s friend lists are arguably a larger privacy issue. Even if a Venmo account is set to make payments private, its friend list remains exposed. There is no setting to make this information private, which means it can provide a window into someone’s personal life that could be exploited by anyone — including trolls, stalkers, police, and spies.

[…]

Using public friend lists and transaction feeds, BuzzFeed News found two members of Congress who were roommates in Washington, DC, as well as reporters who were on friend lists with Trump administration officials, potentially exposing their sources. BuzzFeed News has also spoken with survivors of domestic violence and abuse who suspected that former partners used Venmo to track them and therapists who use Venmo to receive payment from clients and were unaware their friend lists showed who they were working with.

Twitter and App Tracking Transparency

Juli Clover:

After updating to version 8.65, which adds Spaces support, Twitter users will begin seeing a popup that asks them to “keep ads relevant” by allowing Twitter to track data from other companies like apps used and websites visited.

Previously:

Epic v. Apple, Day 10

Adi Robertson (tweet):

Massively popular game creation tool Roblox is now a massively popular experience creation tool Roblox, possibly in response to the ongoing Epic v. Apple trial.

[…]

The “Games” tab now reads “Discover” on the web, although it still points to an address of “roblox.com/games.” Developers can create and manage “experiences,” and experiences have “max people” allowed. The word “game” has been replaced by “experience” across nearly the entire Roblox website, and the iOS and Android apps now have a Discover tab instead of a Games tab — although both apps are currently classed as games in their respective stores.

[…]

Roblox blurs the line between a large social game and a game engine or sales platform. Users don’t enter a single virtual world like Second Life; they launch individual experiences created by users. Developers can sell items within those experiences, and there are full-fledged game studios that build with Roblox instead of, say, the Unity or Unreal engines. But all of this activity happens within a single Roblox app, instead of as a series of separately packaged games.

Matthew Ball:

This is cray

Dieter Bohn:

Totally very normal thing for a developer to completely change the language and marketing of a vital part of their app (ahem game?) as a result of testimony in a trial they are not a participant in. Yup. Nothing weird here.

Previously:

Sunday, May 16, 2021

Epic v. Apple, Day 9

Elizabeth Lopatto:

On the stand is Lorin Hitt, professor of operations, information, and decisions at the University of Pennsylvania Wharton, looking uncomfortable behind his face shield. During his direct examination in the ongoing Epic v. Apple trial, Hitt testified that he didn’t think having to access an app like Candy Crush through a browser instead of the app counted as “friction” for the user — and that it certainly was less friction than “real-world” alternatives, such as leaving a convenience store and then crossing the street to go to another convenience store.

[…]

The app developer pages suggest they are not available on PC, despite Hitt’s document to the contrary.

[…]

Now, Even raises the “frictionless” process that Hitt had blithely testified to earlier in the day. Candy Crush Saga is the example Even chooses. We go to the website, and press “install,” where we are promptly sent to the App Store. We tab back to the website. The only possible way to play on the web is on desktop.

[…]

We try another game, Clash Royale, developed by Supercell. We go to Supercell’s FAQ, where it emerges that payment processes are only through Apple’s App Store or Google play. Supercell itself doesn’t keep payment information “And yet you believe that your team managed to go into a website and buy legitimate Clash Royale money and go back to the app? That’s your testimony?” Even asks.

See also: Adi Robertson.

Previously:

Apple Suppliers Accused of Using Forced Labor

Wayne Ma:

The industrial park is surrounded by walls and fences with only one way in or out.

And next to the park was a large compound identified by a satellite imagery researcher as a detention center where the factory workers lived. The researcher, Nathan Ruser, from an Australian think tank, said “almost no other factories in Xinjiang have these characteristics except for industrial parks where there is detainee labor.

The Information and human rights groups have found seven companies supplying device components, coatings and assembly services to Apple that are linked to alleged forced labor involving Uyghurs and other oppressed minorities in China. At least five of those companies received thousands of Uyghur and other minority workers at specific factory sites or subsidiaries that did work for Apple, the investigation found.

The revelation stands in contrast to Apple’s assertions over the past year that it hasn’t found evidence of forced labor in its supply chain.

Mike Peterson:

According to The Information, other U.S. and Western companies that work with the seven identified suppliers include Google, Samsung, Amazon, Tesla, Dell, Lenovo, BMW, Cisco, and HP, among others.

Other U.S. companies have taken lobbying action against legislation meant to prevent forced labor in China. Major firms like Coca-Cola, Costco, Patagonia, and Apple were said in November 2020 to be attempting to water down the Uyghur Forced Labor Prevention Act.

Apple’s proposed changes to the bill included extending compliance deadlines, making sure some supply chain information is kept from the public, and requiring a U.S. government designation for companies that detain or surveil Uyghurs in Xinjiang.

Jack Purcher:

Back last summer Patently Apple posted a report titled “Apple Denies a report that one of their Chinese Suppliers are using Uighur slave labor on Production Lines.” At the time, a BBC investigative report had claimed that corporate giants including Nike and Apple are facing growing calls to cut ties with suppliers alleged to be using “forced labor” from China’s Uighur people. Yet up to last summer, Apple had responded by stating that it had investigated the claims and “found no evidence of any forced labor on Apple production lines” and plan to continue monitoring the issue. Yet months later Apple was forced to deal with the matter and announced that it had cut off China’s OFilm over using slave labor.

See also: Reed Albergotti (via Hacker News).

Previously:

Big Sur Really Needs Real Free Space

Howard Oakley:

Many of us have just installed the largest macOS update ever released by Apple (as far as I can tell), and there’s a few Macs which haven’t fared well.

My iMac died while making a copy of the macOS 11.3 installer, before I actually installed it. The spinning beachball showed up, and the Mac became completely unresponsive except for being able to move the cursor. I couldn’t even ssh in. After a few minutes, the display went black. I eventually had to power it off and start it up again, but it got stuck halfway through the boot progress bar, the one that shows the desktop picture. I assume the CPU use was high because the fan got very loud. Eventually it seemed to kernel panic and stopped. Several more attempts at booting all failed in the same way.

Safe Mode, resetting the PRAM, Apple Diagnostics—none of the normal stuff helped. I was able to boot from macOS Recovery as well as a clone. What if this were an M1 Mac that couldn’t boot from a clone? Would I be able to easily sync my files to another Mac while booted from Recovery? Of course, git is not available, so I couldn’t push my work in progress. It turns out that rsync is not available in Recovery, either, although the slower scp is. Unfortunately, despite the network activity, the Mac will fall asleep after about 15 minutes of copying, and scp—unlike rsync—cannot resume a copy.

I wanted to see what caused the problem but couldn’t find any kernel panic log files. Could that be because the SSD was full? No, Finder showed 37 GB free. I thought I remembered having more like 100 GB free, but 37 GB should be plenty to save a log file. Since Safe Mode and a different user account didn’t work, there must be something wrong with the system, despite the Signed System Volume. However, even with the 37 GB, macOS couldn’t be installed because the installer said there wasn’t enough free space. That sounded suspicious, but I offloaded another 20 GB or so of files and tried again. It still claimed not to have enough free space. It still wouldn’t boot.

Well, we already know that with APFS the free space that Finder shows is a lie. Maybe the SSD really is full, and the files that I just deleted are being retained by an APFS snapshot. Unfortunately, tmutil is not available in Recovery. Is there another way to see and delete snapshots? It turns out that diskutil can also do this. You can’t read the man page because man is not available in Recovery. But it does show some usage information if you invoke it without any arguments, or as diskutil apfs to see the APFS commands.

Here are the steps that I used:

  1. Even though Disk Utility showed my SSD’s Data volume as mounted, it was not actually available to the diskutil snapshot commands in Terminal. I had to mount it using diskutil apfs unlockVolume.
  2. To find the APFS Volume DiskIdentifier, use diskutil apfs list.
  3. To see the snapshots, use diskutil apfs listSnapshots [volume identifier]. This will also show you the disk number.
  4. To delete a snapshot, use diskutil apfs deleteSnapshot [disk number] -uuid [snapshot identifier]

After deleting a bunch of snapshots, enough real free space was created that I was able to boot the iMac normally. Unfortunately, the problem has repeated twice with macOS 11.3 over the last few weeks. The same fix always works. Most recently, Finder was showing 250 GB of free space, yet apparently the disk was full. I’ve now set a reminder to periodically delete old Time Machine snapshots, since macOS is not doing this automatically when it runs out of space, and I can’t trust how much space is shown as available.

Previously:

Update (2021-06-29): Sean Heber:

Well I got the computer to boot. Careful examination of those boot errors suggested it was out of space. Incidentally I had checked free space in Finder before rebooting it when it had first started acting odd. Finder reported like 100gb free so I had ruled that out.

After my reboot attempt, however, it would just hang at the apple logo screen. After wasting an hour waiting on it I rebooted in verbose mode and saw all the errors. Then I rebooted into recovery mode and used Terminal where “df” reported no free space whatsoever.

Epic v. Apple, Day 8

Adi Robertson (tweet):

Apple says iOS users benefit from a locked-down, curated platform. It rejects “stores within stores” like the Epic Games Store, which could allegedly expose users to harmful and unvetted software. It’s also, however, fighting Epic Games’ claims that there’s no meaningful competition on its platform. So this morning, an Apple attorney grilled one of Epic’s witnesses about a slew of iOS-hosted gaming apps. The move might have helped rebut Epic’s complaints, but it also highlighted just how arbitrary Apple’s policies can seem.

[…]

Apple is right to call these apps gaming services, but as testimony continued, it wasn’t clear they make good App Store alternatives.

[…]

Apple hammered Epic for offering access to Itch.io, a storefront featuring adult content. But Steam has a nearly anything-goes policy on porn, and Steam Mobile and Link put those games a few taps away on iOS. Conversely, an App Store executive testified that Roblox user-built “experiences” were fine because they couldn’t sneak new, malicious code onto iPhones. But it’s said cloud gaming services threaten the iPhone’s “safe and trusted” model, despite being essentially just streaming video.

Juli Clover:

As outlined by Bloomberg, there was a discussion about Apple’s rules that prevent app developers from directing users to make purchases outside of the App Store, such as through the web, as an alternative to in-app purchases.

Speaking to Epic expert witness Dr. David Evans, an economist specializing in antitrust, Gonzalez Rogers asked him if whether removing this rule would solve the problems that Epic and other developers have with App Store rules. “If Apple didn’t have these rules, would the problem be solved?” she asked.

Evans said that while it “wouldn’t eliminate the market power that Apple has,” it would “certainly diminish it.”

Leah Nylen:

We’re now switching to Apple’s experts. Apple lawyer Daniel Swanson calls MIT’s Richard Schmalensee, their main economic witness

Adi Robertson:

As an aside, Schmalensee insists “there are other browsers available” on iOS and says he’d be “surprised” if Apple had ever barred them. Which doesn’t really reflect the reality of iOS

Previously:

Update (2021-05-18): Matthew Humphries (via Hacker News):

Schmalensee also pointed to the US Supreme Court throwing out a lawsuit in 2018 accusing American Express Co. of preventing competition by prohibiting merchants from “steering customers to cards with lower fees.” Gonzalez Rogers didn’t believe the situation was the same and pointed out customers can see signs for other credit card options in stores, whereas in the App Store, “visual indications of options don’t exist in this circumstance.”

Gonzalez Rogers posed a similar question to Epic’s expert witness and economist David Evans. She asked, “If Apple didn’t have these rules, would the problem be solved?” He responded by pointing out that on its own, it wouldn’t be enough. “That wouldn’t eliminate the market power Apple has here, but it would certainly diminish it … it would not be much of a solution at all.”

Thursday, May 13, 2021

Adobe Discontinuing PostScript Type 1 Font Support

Glenn Fleishman:

Developed by Adobe way back in the early 1980s, PostScript Type 1 fonts—a way of encoding vector-based type designs into a particular file format—will lose full support in Adobe Photoshop this year, and gradually disappear from other Adobe products by 2023 as well as from other companies’ products. If you have a long history in design or using a Mac, you might find yourself unable to use some old type standbys you didn’t realize relied on outdated technology.

[…]

And, remarkably, existing PDF and EPS files that contain the older font format won’t curdle in storage. Adobe says embedded fonts will continue to display and print correctly in those file types. The only issue that will arise over time is if you wanted to open them to edit the contents after Adobe or other companies have removed Type 1 font interaction.

[…]

Adobe offered two methods of creating fonts in the mid-1980s, which were obscurely labeled after their internal specifications: Type 1 and Type 3. Adobe initially reserved Type 1 for itself, and published the Type 3 specification for general use. While Type 3 could do almost anything Type 1 could and a lot more it couldn’t, it lacked a feature calling “hinting” that allowed PostScript to render the vector curves and lines of a font effectively at lower resolutions.

[…]

You can find your Type 1 fonts in two ways in macOS: via the Finder and the Font Book app.

Update (2021-05-19): See also: Hacker News.

Update (2023-02-21): Christopher Slye (via Hacker News):

This month, Adobe is shipping several application updates which remove support for the original PostScript font format known as Type 1. Whether this change affects you or not depends quite a lot on how far back you and your work go. If some of your work dates back 20 years, some potential problems are lurking around the corner.

Previously:

Google Docs Switching From DOM to Canvas

Google (via Hacker News):

We’re updating the way Google Docs renders documents. Over the course of the next several months, we’ll be migrating the underlying technical implementation of Docs from the current HTML-based rendering approach to a canvas-based approach to improve performance and improve consistency in how content appears across different platforms.

Steve Newman:

Speaking as one of the original three authors of Google Docs (Writely), but zero involvement in this project (I left Google in 2010): I’m seeing a lot of comments asking how JavaScript-on-Canvas could possibly outperform the highly optimized native code built into the browser engines. It’s been a long time since I’ve really been involved in browser coding, but having written both Writely and, farther back, several native-app word processing engines, here are some thoughts.

Word processors have extremely specific requirements for layout, rendering, and incremental updates. I’ll name just two examples. First, to highlight a text selection in mixed left-to-right / right-to-left text, it’s necessary to obtain extremely specific information regarding text layout; information that the DOM may not be set up to provide. Second, to smoothly update as the user is typing text, it’s often desirable to “cheat” the reflow process and focus on updating just the line of text containing the insertion point. (Obviously browser engines support text selections, but they probably don’t expose the underlying primitives the way a word processor would need. Similarly, they support incremental layout + rendering, but probably not specifically optimized in the precise way a word processor would need.)

Modern browser engines are amazing feats of engineering, but the feature set they provide, while enormous, is unlikely to exactly match the exacting requirements of a WYSIWYG word processor. As soon as your requirements differ even slightly from the feature set provided, you start tipping over into complex workarounds which impact performance and are hell on developer productivity and application stability / compatibility.

iCloud Documents and Data Discontinued

Apple:

In May 2022, iCloud Documents and Data, our legacy document syncing service, will be discontinued and completely replaced by iCloud Drive. If you use iCloud Documents and Data, your account will be migrated to iCloud Drive after this date.

Via Sami Fathi:

iCloud Drive launched in 2014 as a unified, seamless way for Apple users to keep all their files, documents, and more synchronized across all their devices.

iCloud Drive was introduced with iOS 8 and OS X 10.10 Yosemite, which seems like a long time ago. However, if you have hardware that can’t update to those versions, this announcement means that syncing will stop working entirely. On Macs, at least, you can use iCloud Drive via the Web.

Previously:

Update (2021-05-18): Nick Heer:

Can Macs that run Mavericks or below access iCloud Drive via the web? I think there are some security standards that are no longer supported by Macs of around that vintage, which may be used by iCloud web.

I tested iCloud in the latest version of Safari for Mavericks, and the page doesn’t finish loading; it just shows a spinner. It’s possible that Chrome or Firefox would work better.

An Appreciation of Objective-C

Ken Kocienda (tweet):

Over the next fifteen years, I wrote code in ObjC just about every day. The language offered me a small collection of rules on the surface and a deep well of flexibility underneath. This combination facilitated and encouraged quick and playful experimentation. The language allowed me to wink and say, “I know what I’m doing.” ObjC winked back and became a willing participant in helping me make computers do cool stuff.

[…]

It remains one of the best languages ever for creating apps and frameworks. I’ve loved every minute I’ve spent coding in it.

I learned Objective-C around the same time and identify with what he’s saying. But I really like Swift, too, and prefer it in most cases. I think that my Swift code is more reliable and easier to read. These days it’s mostly not the Swift language that gets in my way, but the slow and unreliable tooling.

What It Was Like to Sell Apps Online in 2003

Brent Simmons (tweet):

Apple likes to claim that the App Store replaced the system of selling software in physical boxes in stores and over the mail.

But it’s not true.

My experience selling apps before the App Store was not unique or new — it’s only interesting now because people may have forgotten this history, and younger people may never have heard it.

[…]

We used a service called Kagi for the storefront and credit card processing. Kagi had been around since the ’90s, and it was well-known and trusted by the Mac community.

[…]

And it was pretty easy. Easier than dealing with the App Store!

I can’t find the link, but one of Apple’s lawyers recently argued that the reason Apple chose 30% for the App Store fee was that it wanted to do better than the prevailing alternatives at the time. And they again tried to make it sound like they invented selling software online. I’ve used at least five different e-commerce providers since 2002, and none of them charged more than 15% (most much less). All were easier to deal with than the App Store.

Peter N Lewis:

Totally the same for me - except I was Kagi’s first customer and started with them in 1995, and continue doing the same to this day (other than switching to FastSpring in 2010). It wasn’t new over a decade before the App Store was released).

Tom Harrington:

I had a very similar experience. I started selling my own apps in 2002, completely online, through a web site and in-app purchase. No boxes, no stores, no mail. Downloads, emailed serial numbers, and a third-party payment service. No Apple online store.

Marcel Weiher:

Exactly the same here, with KAGI, the license strings etc. Except that PdfCompress,BookLightning, TextLightning and PostView remained in the four figures/month. Still comfortable.

If Apple claims they somehow invented online software sales, they are lying. Egregiously.

Michael Love:

I had the same experience in the mid-90s with downloadable Mac shareware, wrote a game in middle school and sold (a dozen copies or so IIRC) via Kagi; even back then, a teenager could sell software entirely online with no retail markup or gatekeeper.

On mobile, my Palm app initially launched in 2001 through proto-app-store PalmGearHQ with a 20% commission, but in 2002 when it started to make serious money I went direct with my own merchant account + abandoned PalmGear entirely by 2005.

But neither for software in general nor for mobile specifically did Apple bring anything new to the table with the App Store; they simply imposed taxes and regulation on an existing market that was getting along perfectly fine without them.

Christopher Lloyd:

The first App Store I’m aware of appeared on NeXTStep in the early 90s

John Allsopp:

We first sold software for the Mac solely online also via Kagi in 1995

At a conference around that time an Apple exec said when I told him ‘no one will ever buy software on the internet’ :-)

Craig Hockenberry:

Kagi was responsible for the beginning of the Iconfactory’s software business. It’s been going strong for almost 25 years now.

David Sinclair:

When I started @dejal in 1991, people mailed me cash and checks — to New Zealand! — and I had to take them to the foreign exchange at my bank. Later I processed credit cards via paper forms. When I started with Kagi, it was like magic; so much easier.

Brent Simmons:

Apple itself sold software online back before the App Store — because of course they did. Everybody did.

Previously:

Update (2023-02-13): Brent Simmons:

Framed thing on the wall of my office — a thing I’m super proud of. 🐣 🐥

Wednesday, May 12, 2021

Fixing Swift’s “if let” Syntax

Craig Hockenberry (tweet):

The if-let syntax discourages long variable names because there’s no autocomplete for optional variables that are in scope. It’s not uncommon to see things like this because programmers are notoriously lazy:

if let favc = fooAutomationViewController { … }

Any code within that block that references favc won’t be very readable.

This maintenance issue is exacerbated by name refactoring. Say you want to change fooAutomationViewController to a barAutomatedViewController. The refactored code will then become:

if let favc = barAutomatedViewController { … }

The if let fooAutomationViewController = fooAutomationViewController repetition is one of the more annoying things about writing and reading Swift. Allowing this to be written as just if let fooAutomationViewController seems like the obvious solution. For those arguing that this is confusing or hard to learn, I don’t see how it’s any less clear than what it would be replacing. That said, I wouldn’t be opposed to something like unwrap.

Update (2021-06-18): Marcel Weiher:

When I added ifNotNil: some time ago, I used the same logic, but it turns out the object is now actually potentially interesting. So ifNotNil: now passes the now-known-to-be-non-nil value to the block and can be used as follows[…]

[…]

This doesn’t eliminate the duplication, but does avoid the issue of having the newly introduced variable name precede the original variable. Well, that and the whole weird if let in the first place.

You can do this in Swift by calling map(_:) on the optional. It’s useful in some cases, but, since it relies on a closure like forEach(_:), it’s often not a good fit because it doesn’t compose well with other language features (additional optionals to be unwrapped, continue, return, etc.).

Sketch Subscriptions

Sketch:

Over the past few years, we’ve evolved Sketch to be more than the Mac app. It’s now a fully integrated platform for design and collaboration, combining the best native Mac editor with tools that work in any web browser. Today we want to share a few highlights, what’s available in Sketch right now, and what you can expect from us in the months ahead.

Sketch (Hacker News):

The complete Sketch experience — including real-time collaboration in the Mac app, feedback and handoff in the web app, and a shared Workspace to bring all your people and documents together — is now a subscription. Learn more about subscriptions.

As a result of the changes, licenses are becoming Mac-only licenses. With a Mac-only license you’ll get access to the Mac app only, so you can work on local documents. Licenses do not include the option to save or open files from the web app, or any collaboration features (including real-time collaboration).

Officially, nothing is changing for those of us just using Sketch as a traditional Mac app. But, as with TextExpander and 1Password, it’s not a good feeling when the developer declares a use case that you’re not interested in to be the future of the app. Note that I’m not saying that these were bad business decisions.

Previously:

Update (2021-05-24): Vítor Galvão:

I keep a list of “perpetual fallback licensing” software, and Sketch was a big part of why I started.

It saddens me that I’ll have to remove it from that list. It used to be the first example I mentioned.

Diet Coda Discontinued

Michael Buckley (Hacker News):

Unfortunately, like Transmit iOS and Status Board before it, we’re discontinuing Code Editor as it doesn’t generate enough revenue to cover its continued development.

[…]

The churn of new web tools and tech is rapid and constant. This is why having a flexible extension system is essential for a modern web-focused IDE. But that’s where the trouble lies.

The biggest technical hurdle is the inability to run external processes on iOS and iPadOS. There’s just no way around it: this is required for modern web development.

[…]

Even if it were viable, we’d likely run afoul of App Store policy as well. Apps on iOS and iPadOS must use Apple’s Javascript interpreter, JavaScriptCore. Although JavaScriptCore is excellent, many developer tools rely on features or behaviors only present in Google’s V8 JavaScript interpreter. Similarly, WebKit is the only allowed web rendering engine on iOS.

And still, even if we could find some clever technical way around all of these limitations, we wouldn’t know if our approaches would be allowed on the App Store until we’d fully built and submitted them for review. So, we’d be facing a huge investment of time with the possibility that it would all ultimately get rejected.

Nick Heer:

Panic has tried to crack this nut multiple times without success, but it is hard to see how any developer can make iOS work for apps like these. We all know that Panic makes great software, it has enthusiastic users, and it has long been a high-profile independent developer. Even if iOS is out of the question, evidence is mounting that Apple is kneecapping iPadOS by continuing to treat it with the same kinds of developer and app distribution rules as a smartphone.

Mike Rockwell:

I probably sound like a broken record at this point, but this is yet another example of why Apple needs to open up the platform. Not just so developers can explore other options for monetization, but to loosen up the arbitrary restrictions on what is even possible on the platform. How many apps like Code Editor do we have to lose before Apple wakes up?

Previously:

Epic v. Apple, Day 7

Adi Robertson (tweet):

And while Epic itself has focused on explaining why web apps aren’t a good substitute for native ones, its expert witness David Evans brought up another major issue: anti-steering rules.

Anti-steering rules (in this context) refer to rules that ban developers from pointing users outside of Apple’s ecosystem. iOS developers can’t add links or references telling people to get a better deal on their website, or send emails to accounts created through Apple.

[…]

Evans basically responded that in this analogy, cab drivers can’t even do the equivalent of giving passengers their phone numbers. […] The problem, he said, was the combination of requiring Epic to use Apple payment processing, plus a “whole set of barriers” that make it harder to tell users they have an alternative.

[…]

Evans admitted that nixing the anti-steering provisions “wouldn’t eliminate the market power that Apple has here, but it would certainly diminish it.”

[…]

Later in the day, economist Susan Athey raised a different issue with App Store exclusivity. The App Store lets users sign up for subscriptions, but if they switch to an Android phone, they have to either cancel their subscription or keep managing it through Apple. Athey was using this to explain why a third-party app store would be useful, should Apple ever allow one to exist — if you could access the same purchase from both big phone platforms, the same way you can get your old iOS apps on a new iPhone, switching devices could become much easier.

Apple:

Threats have been present since the first day the App Store launched on iPhone, and they’ve increased in both scale and sophistication in the years since. Apple has likewise scaled its efforts to meet those threats, taking relentless steps forward to combat these risks to users and developers alike.

[…]

In 2020 alone, Apple’s combination of sophisticated technology and human expertise protected customers from more than $1.5 billion in potentially fraudulent transactions, preventing the attempted theft of their money, information, and time — and kept nearly a million risky and vulnerable new apps out of their hands.

[…]

If a developer violation is egregious or repeated, the offender is expelled from the Apple Developer Program and their account terminated. Apple terminated 470,000 developer accounts in 2020 and rejected an additional 205,000 developer enrollments over fraud concerns, preventing these bad actors from ever submitting an app to the store.

John Gruber:

What Apple is trying to say is that this is a five nines sort of problem — that they could (and do) stop 99.999 percent of scams but the App Store is such a juicy target for crooks that hundreds of scams still slip though.

Why not 99.99999 percent efficiency though? Apple is the richest company in the world. If they want to run the App Store with whatever-they-say-goes authority, why should we, as customers, demand anything less than perfection on the fraud and scam front? True perfection they’re never going to achieve, but it sure seems like Apple could be doing better than they are. And they know it.

Nick Heer:

The half-a-million developer accounts terminated in 2020 compares to only about 180,000 new developers Apple says that it worked with to get their apps into the App Store.

[…]

Unfortunately, none of the numbers in this press release have any attached context. For example, Apple says that it rejected over 215,000 apps in 2020 for not meeting its privacy standards. But to understand what that means in terms of the total number of submissions, you have to go find the documents that surfaced in the company’s lawsuit with Epic Games, where you will find an average of about five million apps submitted annually, around 35% of which are rejected for any reason. But we still don’t know anything about the kinds of apps that were rejected. How many of the 215,000 apps were ever admitted into the store? And were any of them downloaded by users before being pulled? The answers to these kinds of questions are not in this press release.

[…]

These are the only options available to report a fraudulent app? These? I have already covered how Report a Problem is insufficient for raising alarms about a rule-breaking app, particularly if it is free. And the only other thing I can do, as a customer, is to telephone Apple Support? Ridiculous.

Previously:

Update (2021-05-18): Ben Brody:

David Evans explained in court on Monday and Tuesday that although Apple has competition when it comes to actually making smartphones, it monopolizes what he described as a market for distributing apps. That control, Evans argued, leads to inappropriately high prices for consumers and competitors as well as an array of other ills.

Nick Statt:

One of the most curious questions arising from the ongoing Epic Games v. Apple antitrust trial, now on its seventh day of testimony, is why both sides are so intent on establishing their own definitions of basic tech and game industry terms.

Does a phone qualify as a game console, or is it a computer, or both? What’s a special-purpose device, and what’s a general one? But perhaps the most perplexing line of inquiry has been what is and what is not a video game. Is Roblox a game, or just a platform, or maybe it’s an app store? How about Minecraft? What any of this means for the future of Fortnite is still a bit fuzzy, but it’s starting to come into focus with each passing day in court.

Update (2021-05-24): Dave Wood:

Apple’s stat: “470,000 developer accounts terminated” in 2020 doesn’t mean anything. The vast majority of those could have been terminated because the developer moved on and didn’t pay their annual fee.

Epic v. Apple, Day 6

Adi Robertson (tweet):

The trial’s sixth day began with testimony from Matthew Weissinger, Epic’s VP of marketing. And Apple used its cross-examination to offer the court an exhaustive tutorial on Fortnite, beginning with its title screen and one of its skins.

[…]

Peely’s nightmarish existence is barely related to Apple’s case. And the “naked banana” comment would probably have passed for a throwaway joke, but for one very important fact: Apple slammed Epic last week by claiming that it hosted porn.

[…]

Apple’s tutorial was clearly aimed at showing that Fortnite is mostly a game and not an “experience” or “metaverse” — encouraging the judge to weigh the App Store’s game-related policies against similar rules on consoles, rather than scrutinizing the whole iOS ecosystem.

Adi Robertson:

This is an email between Apple and Epic. Apple sender’s requesting assets promoting Chapter 2 launch, says “I know we’ve had issues in the past with a significant art leak,” but he promises it won’t happen again. Spoiler: Apple apparently did leak the Chapter 2 assets.

Adi Robertson:

Evans is back, and lawyer is asking how he defines the market and alternatives here. Evans notes the costs of switching ecosystems to Android are high, PCs/consoles aren’t a substitute, and Apple’s policies prevent the existence of iOS App Store alternatives.

[…]

To bring it back to consumer harm, Evans is arguing that Apple’s lack of competition causes higher prices and a slower pace of innovation. […] Evans says Apple hardware is very innovative but that its work on the App Store hasn’t kept pace, basically.

Previously:

Monday, May 10, 2021

Epic v. Apple, Day 5

Adi Robertson (tweet, also: Nick Statt, Elizabeth Lopatto, Ian Sherr):

On the fifth day of court, however, Apple tried to turn Itch.io into a liability — by telling Epic Games Store general manager Steven Allison about “so-called adult games” that were “so offensive we cannot speak about them here.”

Itch.io is one of relatively few non-game apps on the Epic Games Store, along with software like the Brave browser.

[…]

Apple essentially warned Judge Yvonne Gonzalez Rogers that [sideloading] would mean forcing Apple to indirectly allow a sexualized visual novel about incest […] onto the iPhone.

Of course, such content is already available on iPhone via Safari, and via third-party apps such as Web browsers, site-specific browsers, and e-book readers. Making it available via a third-party store would improve the user experience without changing what’s shown in Apple’s own store.

Judge Rogers seemed to take the concern seriously, asking Allison to explain whether Apple was correct. Allison demurred, although he later pushed back on Apple’s veiled suggestion that Epic kick Itch.io off the Epic Games Store. “Itch.io is an incredible community for developers that we support fully,” Allison said, “they have an open platform, and therefore have different moderation standards than the Epic Games Store.”

[…]

Some people were upset at Apple going after a platform that’s particularly favored by queer developers offering depictions of sexuality you won’t find in big-budget games.

Nathan Grayson (via Hacker News):

It began as part of a series of inquiries in which Apple’s lawyer was attempting to establish Epic’s quality control process (or lack thereof).

[…]

Allison replied by pointing out that itch.io is on Epic, but it is not, itself, the Epic Games Store. “Itch.io is an app store that is not the Epic Games Store. We are not included in itch’s distributing pitch,” Allison said. “Epic is only distributing the app store of itch.io.”

Kenney:

According to Apple unspeakable things happen at Itch.io. Like developers uploading any game they create, getting a fair share of revenue, consumers getting DRM-free content and even having an optional launcher...

That must be truly a ghastly sight for Apple. 👻

See also: Apple Sucked Tumblr Into Its Walled Garden, Where Sex Is Bad.

Nick Statt:

Very critical line of questioning from the judge, about whether Apple’s lack of competition on iOS for app stores stifles innovation in in app review.

Adi Robertson:

Epic’s lawyer is back and redirecting to macOS — pointing out that people can directly download apps from outside Apple’s store there, but it’s still considered safe for kids etc.

“I think there’s safety on Mac that’s superior” when downloading from App Store. “The threats that we see on iOS even within the App Store, I can’t say that a user outside the Mac App Store has a safe and trusted experience.”

Elizabeth Lopatto:

Roblox is not a game, but Minecraft was, Kosmynka said yesterday. “I’m having a hard time with that.” Roblox looks like electronic Duplos, the judge says. “I’m trying to understand what the distinction you’re making is.”

Ian Sherr:

App Review is within developer relations. Apple has an internal mantra “let’s get them to yes!” To help apps get approved.

“There’s a human being at the end of every rejection,” he says, so devs can call and work with Apple

Steve Troughton-Smith:

Hands up how many developers have called and ‘worked with Apple’ to get an app through App Review? In the calls that I’ve had, it was a lot more one-sided, and finding out how to address/fix a rejection at that level is like trying to get blood from a stone

Previously:

Inside App Review

Steve Troughton-Smith has compiled some really interesting court exhibits from the Epic trial:

It seems like they create a trust score of your app based on a list of binary & metadata criteria, and then review what’s changed between versions

[…]

Apple acquired SourceDNA in 2016 to improve the automated binary analysis portion of App Review

[…]

As of 2015, there were 910 (!) different rules and other criteria that App Review used to approve/deny apps. Only a fraction of those are actually communicated to developers in the App Review Guidelines

Here are the top ten…

App Review’s static analysis includes checking for cookie-cutter apps, and the strings in your binary. Dynamic analysis runs your binary on a test farm and sees what you’re actually doing at runtime

[…]

Roblox was rejected for having minigames, and appealed to the App Review Board, saying that they would only add/remove minigames with submissions and not remotely. Nobody on the board replied to the email, so Roblox was given the go-ahead

Apple can end your business and not bother to reply to your email asking why or how you can change. Tribe was thrown under the bus (UTB) by another app developer presumably wondering why they had been rejected, and as a result got thrown out after 3 years on the App Store

[…]

Apple thinks developers are liars or idiots for telling Bloomberg that they — correctly — were approved to be on the App Store. There was no rule at the time to justify removing them, so Apple did it anyway and invented one after the fact

Apple didn’t want to come out publicly and say so, because it knew it had no actual rule to point to

[…]

Turns out it’s developers, via the developer agreement, that are responsible for ensuring the quality of apps on the App Store, not App Review at all. This is not surprising, but it could be an important distinction

[…]

The reason we lost Safari on Windows is the same reason we’re losing Safari on Mac. We didn’t innovate or enhance Safari’

[…]

Apple was utterly convinced of its iPhone (P2) security in 2006 right before it was announced. iPhone made it a month and a half after release before being jailbroken to run third-party apps, bypassing every security measure there was.

[…]

Forstall wanted to let Yahoo widgets on iOS.

[…]

Apple would ‘help’ CNBC write a story about how App Review is not a sweat shop despite its targets and overtime 🤨

See also: MacRumors.

Previously:

Friday, May 7, 2021

Epic v. Apple, Day 4

Adi Robertson (tweet):

Epic spent the fourth day of trial offering its counter-narrative: the iOS App Store isn’t actually very good. Calling two Apple executives to the stand, Epic’s attorneys took jabs at everything from the update review process to Apple allegedly leaking Marshmello’s Fortnite concert playlist. They pushed Apple to justify its claims about privacy and security by producing hard research demonstrating threats and breaches — which Apple largely didn’t do.

[…]

The attorneys spent much of their time trying to catch Apple executives in contradictions, and while they quoted disgruntled developers like the ones above, they rarely delved into the substance of their complaints. Judge Yvonne Gonzalez Rogers became audibly irritated with Epic repeatedly producing documents to establish a “state of mind” about the App Store rather than hard facts, since the files would be uploaded for public viewing.

[…]

There’s one plausible reason Epic doesn’t have more specific stories: many developers are reportedly scared to criticize Apple. That’s been a running theme in congressional scrutiny of Apple, and Epic has vividly established the consequences of getting banished from the App Store[…]

Nick Statt (tweet):

Matt Fischer, the current App Store vice president who reports directly to longtime executive Phil Schiller, took the stand in Oakland as an Epic witness to answer questions about the App Store business model, as well as its role in the broader iOS operating system.

[…]

Fischer provided the company’s first robust rationalization for many of the App Store’s more controversial policies. He called the store "incredibly unique" in the benefits it provides to consumers and developers and steadfastly defended it against claims that Apple overlooks fraud. That, in turn, justifies the commission Apple collects and the restrictions it imposes.

[…]

The key takeaway from day four is that the future of this trial could very well hinge on how Judge Yvonne Gonzalez Rogers perceives the true purpose of the App Store. Is it a level playing field designed to protect user privacy and security and take only its fair share? Or is it an increasingly byzantine pillar of Apple’s walled garden, one preoccupied with chasing profit and marred by inconsistently applied and ever-changing rules?

[…]

The App Store chief also shed light on how Apple came to the conclusion it would not charge certain app makers a 30% fee if they produced a physical good or service, compared to a digital one like Epic and other game developers.

Nick Statt:

[Fischer] argues Apple didn’t want to take 30% of, say, an Uber ride or Amazon purchase because Apple couldn’t guarantee / had no insight into whether the product or service was delivered as ordered.

I don’t see how it really does for digital content, either.

Adi Robertson:

Epic is now calling Trystan Kosmynka, senior director of marketing at Apple.

[…]

“Do you recall an app called Tribe?"

Describing app being “hidden” for being a store within a store, but it’s been live since 2015. So it was on the store for about 3 years before the ERB ruling.

[…]

Raising the example of Roblox, which Epic lawyer refers to as a game with a collection of games in it. “I don’t see it that way,” says Kosmynka.

[…]

Just to be clear, the argument here is that experiences inside Roblox (which IIRC there are actual game studios devoted to building) are not games, because otherwise Roblox could be arguably similar to the Epic Games Store in being a store inside the App Store.

Sami Fathi:

In the latest batch of emails, the vice president of the App Store, Matt Fischer, claims that Apple features apps made by its competitors “all the time” on the store and rejects the sentiment that it seeks to degrade the exposure of those apps.

According to internal Apple correspondence submitted as evidence by Epic, an Apple employee wrote an email regarding a collection of apps on the App Store that were a part of the VoiceOver collection. In the email, which was forwarded to Sarah Herrlinger, Apple’s senior director of global accessibility policy, the employee claims that Fisher feels “extremely strong” about not featuring competing apps on the platform.

John Gruber:

Peter Kafka was kind enough to invite me on his podcast this week to talk — a little! — about the Epic-Apple lawsuit that started in court this week. I think I articulated pretty well my takes on what Apple should be allowed to do with the App Store and iOS, and what Apple should do with the App Store and iOS.

See also: Leah Nylen.

Previously:

Does Apple News Track You?

Lockdown Privacy:

If Apple actually cared about privacy, they’d stop tracking users without consent in their own apps.

[…]

Screenshots of the Apple News third party tracking behavior, blocked by Lockdown Privacy on iOS 14.5, plus description of the Comscore company from Wikipedia (they’re one of the largest marketing/tracking companies on Earth).

[…]

Both iPhone analytics and Ask To Track are disabled, so tracking is supposed to be completely disabled. But apparently not for Apple. 🤔

Apple:

Ads that are delivered by Apple’s advertising platform may appear on the App Store, Apple News, and Stocks. Apple’s advertising platform does not track you, meaning that it does not link user or device data collected from our apps with user or device data collected from third parties for targeted advertising or advertising measurement purposes, and does not share user or device data with data brokers.

[…]

We may use information such as the following to assign you to segments:

[…]

• Apple News and Stocks: The topics and categories of the stories you read and the publications you follow, subscribe to, or enable notifications from.

• Advertising: Your interactions with ads delivered by Apple’s advertising platform.

When selecting which ad to display from multiple ads for which you are eligible, we may use some of the above-mentioned information, as well as your App Store browsing activity, to determine which ad is likely to be most relevant to you.

I find Apple’s definition of tracking very confusing. Apple News and Google’s apps both use an opaque advertising identifier, separate from your user or device ID, and I guess this is somehow why they are able to say that they don’t track you. But it doesn’t seem like that should be enough. As Lockdown shows, Apple seems to be sharing the data with a third-party data broker. And, unless Google is segregating its data, it is falling afoul of the clause about linking app data with data collected from third-party apps or Web sites.

For Facebook, even if it uses the IDFA, Apple considers that tracking. Facebook knows who you are in the Facebook app because you’re logged in. But if an ad leads you to purchase an app, you probably won’t log into Facebook from within that app. So how can they know it’s you? Well, if that app can report the same IDFA to Facebook, that proves that you purchased the app.

Apple gets around this without “tracking” because it controls the App Store app, which is the only way to purchase apps. The ad and the purchase both happen in the same app, and they’ve defined tracking such that that doesn’t count. It’s not tracking if you own everything.

Timothy Buck:

Facebook selling an ad to a small developer and being able to prove it lead to an in-app purchase is “tracking” to Apple & requires opting in.

But Apple doing the same thing is described as “targeted ads” and does not require opting in.

Tim Hardwick (Hacker News):

According to the latest data from analytics firm Flurry, just 4% of iPhone users in the U.S. have actively chosen to opt into app tracking after updating their device to iOS 14.5. The data is based on a sampling of 2.5 million daily mobile active users.

There’s not much reason to turn it on given that Apple forbids apps from offering the user a benefit for doing so.

Firebrand:

Based on Apple’s job postings I’m beginning to suspect their stance on ads and tracking was nothing more than a clever ruse to weaken competitors while they build their own a personalized ad business for iOS.

Previously:

Update (2021-05-10): James O’Leary:

occasionally I challenge people about it, people wave it away with ‘differential privacy’, including a lead at Apple I talked to. they could not explain how it would work here

Update (2021-05-24): Damien Petrilli:

Never gave Apple any permission to farm my contacts in order to suggest Game Center friends. Still they do, and you can’t disable it.

Yet they claim to follow the same rules as third party devs...

Oluseyi Sonaiya:

I think the complaints about ATT aren’t just about app installs, because, as I understand it, it hinders FB’s ability to collect data about iOS users, period. It hurts the personalization that drives as performance across all of FB’s units.

See also: Nicolas Rieul.

Update (2021-06-05): Benjamin Mayo:

It’s been niggling at me for months that App Tracking Transparency is defined in such a way that Apple’s own data collection activity is unaffected.

[…]

I’d refer to this as Apple’s ad tracking. Apple officially calls this “Personalised Ads”, because it wants to define tracking as a third-party concept. The behaviour of Personalised Ads is not conveyed through any kind of user-facing dialog or permissions prompt, unlike Apple Tracking Transparency. In fact, Apple enables ads personalisation by default. The setting to turn it off is buried in Settings, tucked away at the bottom of the Privacy screen (conveniently positioned below the fold).

[…]

I think what irks me the most about this situation is that an Apple ID is a prerequisite to owning an iPhone and you can’t download any application from the App Store without one. Apple’s delineations of first-party and third-party allows the App Store to share any information it pleases with the News app, without telling the user at all. It feels wrong that News silently target ads to me based on the apps I download, the music I listen to and the television shows I watch.

Hello Weather

John Gruber:

Longtime readers know I have a thing for good iPhone weather apps. I find weather apps to be an evergreen playground for design ideas — and that’s more true than ever now with iOS 14 widgets. One of my very favorites in recent years is Hello Weather. It’s attractive, original, and highly useful.

I’ve been looking for something to eventually replace Weather Line, and Hello Weather looks like a good find. It has nice, clean design that nevertheless presents lots of information. The main drawback that I’ve seen so far is that the hourly forecast doesn’t go very far into the next day.

Private iPad Camera Multitasking Entitlement

Jeremy Provost:

A few months back I was surprised to see that Zoom had somehow been able to tap into using the camera during iPad Split View multitasking. This is an obvious feature for a videoconferencing app so that you can keep one eye on your meeting while you consult notes, look at a presentation, or slack off on Twitter.

I scoured the web and found no reference to how to enable this feature for our own iOS Zoom client, Participant for Zoom. We asked Zoom and to our surprise they gave us the answer, and in the process revealed an apparently private process, available only to those deemed worthy by Apple.

[…]

Unfortunately, unlike with CarPlay there is no public process for requesting this entitlement. In fact, its existence is not even documented by Apple publicly.

[…]

You can’t say “we treat every developer the same” while privately giving special capabilities to certain developers.

Previously:

Update (2021-05-10): See also: Hacker News, 9to5Mac, MacRumors.

Update (2021-08-18): Jeremy Provost:

Did we hear back from Apple? Yes, we were told that our request was forwarded to the appropriate team. Unfortunately we never heard from that team. I have periodically checked in with Apple and been told that the request is still under review.

[…]

Meanwhile, there had been a new development that slipped right under my nose.

Apple:

Beginning with iOS 13.5, you can use the Multitasking Camera Access entitlement to let your app continue using the camera when using the Multitasking feature. This scenario occurs in both Split View and Slide Over modes. In iOS 15 and later, this behavior extends to Picture in Picture mode using AVKit’s new API.

[…]

You must request access to use the entitlement. For information about requesting access, see com.apple.developer.avfoundation.multitasking-camera-access.

Update (2023-02-16): Jeremy Provost:

To provide an update: we were approved to use the relevant entitlement for development in mid-October 2021.

[…]

We replied to Apple’s email, as requested, with details of the implementation and the request to grant us the distribution entitlement.

The bad news is we have heard exactly zero words from them in the 5 weeks that have followed.

Previously:

Reimagining Apple’s Documentation

Paul Hudson:

For a number of years my #1 WWDC wish was that Apple would do something to dramatically rethink its approach to developer documentation.

[…]

The top 500 most popular APIs (measured by page views) should have example code attached, ideally several examples with headers clearly marking what problem is being solved.

[…]

Any place where header files have documentation comments and their matching online documentation is “No overview available” should have the header docs copied straight online.

No APIs mentioned in the WWDC Platforms State of the Union talk should be allowed to ship with “No Overview Available” as their documentation – either can the feature or prioritize documentation.

Link directly to relevant WWDC videos from API pages, ideally to precise timestamps. Even better, make sure everything mentioned in those videos gets included in the text documentation too.

Previously:

Update (2021-05-10): Ken Harris:

You forgot:

• Stop moving webpages around all the time without adding HTTP redirects.

• The Human Interface Guidelines shouldn’t link to a guide on developer.apple.com that tells us to use a feature of Xcode that was removed 5 years ago.

Thursday, May 6, 2021

Whitelisted Developers

Tim Cook (starting at 2:00):

We treat every developer the same. We have open and transparent rules.

Leah Nylen:

Forrest is asking Fischer about an Oct 2018 email. “Hulu is part of the set of whitelisted developers with access to subscription cancel/refund API.” Fischer acknowledges that “whitelisted developers” have access to some APIs and features that other developers don’t

Nick Statt:

Here’s are the documents where Apple employees talks about white-listing companies like Hulu for privelaged use of App Store APIs, like the cancel/refund API.

Adi Robertson:

Are the rules for developers different for different developers? “The App Store review guidelines apply equally to all developers,” Fischer says. Nobody gets a special “dispensation” or “special” deal.

“Do whitelisted developers get to do what other developers don’t get to do?” No, says Fischer.

Fischer says from time to time, it wants to test a feature with a small group before rolling it out to all developers.

Tanner Bennet:

This is a clever way to make a blanket statement that gives you plausible deniability when accused of unfair treatment.

“We were just testing X with [Developer] before we made it available to everyone!”

Even if it takes years, and years 😒

Previously:

Update (2021-05-07): Constantin Jacob:

For anybody interested in this, these are the APIs that Apple announced at last years WWDC stating that they’re available “now”.

Spoiler: they are absolutely not yet available to developers in any way

Ian Carlos Campbell (via Nilay Patel):

According to new emails revealed as part of Apple’s lawsuit with Epic Games, the company had given Hulu access to its subscription API but didn’t realize Hulu was using it to help people switch to Hulu’s billing system (and avoid Apple’s in-app purchases) until 2018 when the feature was mentioned in a tweet that caught the eye of a higher-up at Apple.

David Barnard:

Over dinner I told my wife one of my tweets ended up in a court case against Apple. Her first reaction, without even knowing what it said: “Is Apple going to retaliate?!” So yeah, for almost 13 years of making a living on the App Store, we‘ve lived in fear of Apple.

Nilay Patel:

The real risk of this trial to Apple all along has been that we will see how much of software economy on top of the iPhone is explicitly restricted so it can be monetized to Apple’s benefit. And the answer turns out to be: a lot!

Previously:

Update (2021-05-10): Nick Heer:

Also of note, this presentation reveals that Netflix had access to the same subscription management APIs as Hulu and other “original [Apple TV] partners”. That suggests these APIs could date back as far as September 2010. Apple has simply been testing these APIs among a small group of developers for perhaps the last eleven years as it readies a wider rollout; there is no other way to interpret this situation.

Thomas Clement:

Another example: Apple refused us access to the APFS snapshots API for no good reason while still giving it to others. “We treat every developer the same” is a lie.

Previously:

Update (2021-05-24): Bombich Software:

Apple has been pretty tight with APFS, don’t even get me started on their refusal to grant snapshot reversion entitlements… The most amazing aspect of snapshots isn’t available for macOS.

Epic v. Apple, Day 3

Adi Robertson (tweet):

Is an iPhone more like a PC or an Xbox?

[…]

Epic called up Microsoft’s Xbox business development head Lori Wright as a sympathetic witness. In response to a line of questioning, Wright divided computing devices into “special-purpose” and “general-purpose” devices — in a way that clearly defined iPhones as the latter.

[…]

It’s hard to call the iPhone anything but a general-purpose device under Wright’s definition. (She described a “special-purpose” Apple product as something like an iPod.) Intentionally or not, Wright also linked the distinction to one of Epic’s major talking points: profit.

Nick Statt:

“We sell the consoles at a loss,” Wright said. Asked why Microsoft would continue to do this, Wright elaborated that Xbox business model involves selling hardware at a loss and subsidizing it with game sales and subscription services, in this case to services such as Xbox Live Gold and Xbox Game Pass. The goal is to serve an “end-to-end consumer experience.” When asked if Microsoft has ever earned a profit on the sale of an Xbox device, Wright said no.

Adi Robertson:

Wright says Spotify has many songs and Netflix has many films. “Why could we not have a single app with many games?” Microsoft spent 3-4 months trying to “understand what this was.”

Microsoft decided the logistics didn’t work — if you wanted to push an update, for instance, every single game in the catalog would have to update. “All your apps would just be constantly spinning.”

If Microsoft took a game from the catalog, the way Netflix does, “there’d be a dead app on the phone. We thought this was a really inelegant way for players to experience this.”

[…]

Apple’s lawyer is not necessarily in the wrong here but is coming off as being pretty snide — asking next if Wright is aware the App Store had guidelines.

Of course, Apple didn’t change the guidelines to ban xCloud until after Microsoft had submitted it.

Previously:

Buffet Overflow

Alexander Osipovich (via Hacker News):

Berkshire Hathaway Inc. is trading at more than $421,000 per Class A share, and the market is optimistic. That’s a problem.

The price has grown so high, it has nearly hit the maximum number that can be stored in one common way exchange computers handle digits.

On Tuesday, Nasdaq Inc. temporarily suspended broadcasting prices for Class A shares of Berkshire over several popular data feeds. Such feeds provide real-time price updates for a number of online brokerages and finance websites.

Nasdaq’s computers can only count so high because of the compact digital format they use for communicating prices. The biggest number they can handle is $429,496.7295. Nasdaq is rushing to finish an upgrade later this month that would fix the problem.

John Gruber (Hacker News):

Worth noting that they’re not using integers to store fractional values — what they’re doing is using 10,000ths of a dollar as their integral unit. The decimal gets shifted left by four digits simply to display prices as dollar values, but the math is all done in 10,000ths of a dollar units.

Previously:

Apple Podcasts Not Showing the Latest Podcasts

Jason Snell:

I’m getting a lot of tweets and emails saying the same thing: the latest episode of (some podcast I’m involved with) hasn’t shown up in Apple Podcasts.

Unfortunately, right now my only answer is to say, “It’s displaying properly in every other podcast app around, so if you’ve ever thought of using Overcast or Castro or Pocket Casts or any other alternative podcast app, now might be a good time to try.”

This is an issue on Apple’s side. Apple is aware of it and presumably is working on a fix.

Steve Troughton-Smith:

I’m guessing the new Apple Podcasts now centralizes (& delays) refreshes of feeds, which is kinda frustrating if you want to listen to things the moment they are released. No amount of manual refreshing will convince Apple to reload the feed on the server

Josh Centers:

Apple recently overhauled the Podcasts app for the gazillionth time in iOS 14.5, iPadOS 14.5, and macOS 11.3 Big Sur, but unfortunately, it appears that Podcasts is still a hot mess.

[…]

I immediately noticed that I was already suffering from one of the complaints: Podcasts resetting your download settings and downloading every episode of every podcast you subscribe to or that has even a single episode in your library.

[…]

We’ve had Apple’s Podcasts app available on various platforms for nearly nine years now, but it has never been very good. After that amount of time, it’s hard to imagine that Apple will ever make it more than a lowest-common-denominator app for those who don’t know to find a better alternative in the App Store.

Unfortunately, users may not have much choice if Apple Podcasts Susbcriptions means that exclusive content ends up there.

Previously:

Update (2021-05-24): Marco Arment:

ATP disappeared from Apple Podcasts today, and I can’t log in to change it.

Whatever’s going on over there is definitely NOT resolved.

Justin Jackson:

I’ve been tracking all of the issues related to this rollout here.

Visual Studio 2022

Microsoft:

Visual Studio 2022 will be a 64-bit application, no longer limited to ~4gb of memory in the main devenv.exe process. With a 64-bit Visual Studio on Windows, you can open, edit, run, and debug even the biggest and most complex solutions without running out of memory.

[…]

Our goal with Visual Studio 2022 for Mac is to make a modern .NET IDE tailored for the Mac that delivers the productive experience you’ve come to love in Visual Studio. We’re working to move Visual Studio for Mac to native macOS UI, which means it will come with better performance and reliability. It also means that Visual Studio for Mac can take full advantage of all the built-in macOS accessibility features. We’re updating the menus and terminology across the IDE to make Visual Studio more consistent between Mac and Windows. The new Git experience from Visual Studio will also be coming to Visual Studio for Mac, beginning with the introduction of the Git Changes tool window.

GitHub Codespaces (via Hacker News):

GitHub Codespaces supports Visual Studio Code and modern web browsers. With your development in the cloud, seamlessly switch between tools and contribute code from anywhere, anytime.

Previously:

Wednesday, May 5, 2021

Punitive Measures for Netflix IAP Test

Chance Miller (tweet, MacRumors):

As part of the Epic vs. Apple trial, a detailed new email thread has come to light showcasing internal communication at Apple once the company became aware of Netflix’s plans to roll out an A/B test focused on use of the App Store’s In-App Purchase system.

[…]

The “voluntary churn issue” that Oliver refers to is that Netflix has a higher amount of “voluntary churn” among those paying via the App Store.

This is interesting since I’m always reading that App Store subscriptions are more sticky because the payment information is more likely to be up-to-date.

Also in the email, Oliver questioned whether Apple should take any “punitive measures” in response to Netflix’s planned test to remove IAP support in certain markets. “Do we want to take any punitive measures in response to the test (for examples, pulling all global featuring during the test period)?” Oliver wrote. “If so, how should those punitive measures be communicated to Netflix?”

Previously:

Update (2021-05-06): Ian Carlos Campbell:

Internal emails revealed during the Epic Games v. Apple lawsuit show that employees at Apple were considering giving Netflix special treatment to convince the streaming service to not abandon in-app purchases. In the run up to Netflix removing its subscription offering to avoid Apple’s fees, a presentation circulated within Apple proposed to advertise Netflix in its retail stores, use a portion of its cut of App Store commission fees to pay for search ads, and even bundle Netflix with other Apple services.

[…]

What this whole email saga is illustrative of is how Apple’s policies for developers seem to have exceptions.

Nilay Patel:

I think anyone could look at this and fairly wonder why an operating system vendor is mucking around so deeply inside the business of a popular app

Apple here is wondering what else it can do to justify taking a 30 percent cut of Netflix signups on iOS. The only reasons it’s doing that are 1. it knows it’s not doing enough to keep Netflix from removing IAP and 2. it has the threat of Netflix app signups going down to rely on

Extended Mac AppleCare+ Coverage

Joe Rossignol:

In addition to making AppleCare+ available for the Apple TV for the first time, Apple is now allowing AppleCare+ coverage for Macs to be extended indefinitely in the United States, according to an updated support document.

Joe Cieplinski:

I wouldn’t be surprised if AppleCare becomes subscription-only. It makes so much more sense to be able to cancel it whenever you let go of the item. And for them to keep getting monthly revenue past the three-year point. It’ll more than make up for the loss in repairs.

Rich Fletcher:

Apparently you can cancel AppleCare and get a prorated refund! I know this because I didn’t get around to it for a stolen iPhone 😠

Previously:

Facebook Educates About App Tracking Transparency

Sami Fathi (also: Ashkan Soltani):

As a way to convince users to enable tracking across other apps and websites, Facebook is deploying the tactic of telling users that they must enable tracking as part of the App Tracking Transparency framework in iOS 14.5 if they want to help keep Facebook and Instagram “free of charge.”

[…]

In an updated blog post, Facebook calls this updated prompt an “educational screen” that will “help people make an informed decision about how their information is used.” Instagram, owned by Facebook, will show a similar prompt to users asking them to enable tracking to “Help keep Instagram free of charge.”

John Gruber:

That’d be just adorable if Facebook and Instagram started charging users because of mean old Apple. I’m sure that’s really on the table and this isn’t utterly shameless.

Even if Facebook were serious, Apple would prohibit that, too.

Sami Fathi (tweet):

Apple says that it will ban and reject apps on the App Store that attempt to offer users monetary incentives to enable tracking through App Tracking Transparency (ATT), one of many measures the company is taking to ensure developers follow through with the new framework.

[…]

Following ATT’s release, Apple also updated its Human Interface Guidelines with a new section titled “Accessing User Data.” In this section, offering a mix of new and previously known information, Apple outlines the design policies that all apps must follow when they attempt to ask a user for their permission to access personal data, device capabilities such as microphone and camera, and consent to track them across apps and websites.

Nick Heer:

You think Facebook’s threat of having to pay to use its services is bad? Wait until you see what Canada’s own Weather Network has cooked up.

Francisco Tolmasky:

These tracking dialogs don’t make sense in iOS. Unlike permissions dialogs, you don’t get an obvious direct feature out of it, like the camera. Seems like Apple should just disallow tracking, not create a contest to see what tricks companies come up with to get you to click it.

This is kind of a microcosm of all @AppStore policy, which has to ride this absurd line where Apple doesn’t actually get to implement what it really wants, but the experience still suffers for it.

Jun Harada (via Sebastiaan de With):

[Signal] created a multi-variant targeted ad designed to show you the personal data that Facebook collects about you and sells access to. The ad would simply display some of the information collected about the viewer which the advertising platform uses. Facebook was not into that idea.

Facebook is more than willing to sell visibility into people’s lives, unless it’s to tell people about how their data is being used. Being transparent about how ads use people’s data is apparently enough to get banned; in Facebook’s world, the only acceptable usage is to hide what you’re doing from your audience.

Ken Harris:

As with iOS 14.5, the most damning evidence against @Facebook isn’t that they collect data. It’s that they insist on hiding the extent of the data they collect.

It’s an asymmetric relationship, and the corporation wants to exploit that. Does that ever end well for the public?

Previously:

Update (2021-05-06): Facebook says that “this is a stunt by Signal” and that it never rejected the ads or banned their account (via Timothy Buck).

Signal:

We absolutely did try to run these. The ads were rejected, and Facebook disabled our ad account. These are real screenshots, as Facebook should know.

Joe Osborne:

These screenshots are from early March, when the ad account was briefly disabled for a few days due to an unrelated payments issue.

The ads themselves were never rejected as they were never set by Signal to run. The ad account has been available since early March, and the ads that don’t violate our policies could have run since then.

Night Shift Sleep Study

Tim Hardwick:

Now found on most smartphones in some form, Night Shift is based on studies that have demonstrated that blue light can negatively impact sleep by altering the body’s circadian rhythm. However, the results of a new study from BYU published in Sleep Health have undermined that premise.

To test the theory, BYU psychology professor Chad Jensen and researchers from the Cincinnati Children’s Hospital Medical Center compared the sleep outcomes of individuals in three categories: those who used their phone at night with the Night Shift function turned on, those who used their phone at night without Night Shift, and those who did not use a smartphone before bed at all.

John Gruber:

My theory all along has been that Night Shift just makes your screen look hideously mis-colored.

Sleep benefits or not, I do find it more comfortable. Perhaps BYU’s results differ from previous studies because Night Shift shifts the colors much less than f.lux or blue light glasses.

Previously:

Update (2021-05-06): f.lux:

The first thing to show is any difference between using a phone and not using one - this study doesn’t show any difference, with P>0.5. So that’s the headline really.

We don’t know if this is just underpowered, or if dimming + night modes are “enough” for most people.

Even so, Night Shift is not doing very much - f.lux is about 7x stronger by default.

To sum up: If you can’t even show you have a problem, you cannot fix it, and making a very minor change probably won’t fix it anyway.

I like Night Shift because I run my devices in Light Mode. But I bet it offers much less blue light benefit for those running in Dark Mode all the time, or in Automatic mode where the phone automatically switches to Dark Mode at night. With so much less white content in Dark Mode, the effect of Night Shift is much more subtle. If most users are using Dark Mode at night, anyway, that could also explain why the study found no significant difference vs. not using a phone at all.

John Gruber:

I’ve long heard from friends and readers who enjoy Night Shift (and f.lux) simply because they feel it reduces eye strain. Comfort is comfort — if you Night Shift feels easier on your eyes, go ahead and use it. What I object to is the “may help you get a better night’s sleep” claim. Apple should keep the feature but change the language describing it to remove any suggestion that it’s a sleep aid, unless subsequent studies suggest otherwise.

Verizon Sells Yahoo and AOL

Edmund Lee and Lauren Hirsch (via Hacker News):

Yahoo and AOL, kings of the early internet, saw their fortunes decline as Silicon Valley raced ahead to create new digital platforms. Google replaced Yahoo. AOL was supplanted by cable giants.

Now they will become the property of private equity. Verizon, their current owner, agreed to sell them to Apollo Global Management in a deal worth $5 billion, the companies announced Monday.

[…]

Yahoo and AOL still generate plenty of revenue. Verizon’s media division recorded $1.9 billion in sales in the first three months of 2021, a 10 percent gain over the prior year.

John Gruber:

In January 2000, AOL acquired Time-Warner for $182 billion to form a mega media company then valued at $350 billion.

Previously:

Epic v. Apple, Day 2

Adi Robertson (tweet):

Apple did support cross-wallet play before banning Fortnite last year — and on the trial’s second day, that fact became a serious pitfall for Epic. Apple continued a long cross-examination of Epic CEO Tim Sweeney, whose hours of testimony included a digression on whether Fortnite counts as a true metaverse or simply a big free-to-play game that has concerts. (Judge Yvonne Gonzalez Rogers suggested, and Sweeney concurred, that “the most readily acceptable analogy” might be Steven Spielberg’s Ready Player One.)

Sweeney was followed by two witnesses from outside Epic: the founder of an iOS yoga app, followed by the product manager for Nvidia’s cloud gaming service. All argued that Apple’s tightly managed App Store forced customers to use clunky workarounds. Meanwhile, Apple argued that the workarounds weren’t necessarily worse — just different.

Nick Statt (tweet):

The theme emerging from both days of testimony is that Sweeney sees this as a fight that goes well beyond a single game and even a single platform. In Epic’s eyes, suing Apple is an existential fight for the future for media, computing and software distribution, and maintaining the status quo would represent a major setback for Epic’s ambitions.

[…]

Doren raised a number of questions about Sony’s negotiations with Epic. The most important of those was how Epic paid Sony additional revenue over the standard 70-30 revenue split on PlayStation to compensate for cross-play, a feature Epic received significant pushback over and which it had to carefully orchestrate across all major console platforms.

[…]

[Sweeney] also repeated his argument that game consoles, which are largely single-purpose devices and not general computing ones, are often sold at a loss and make up the difference through software sales. In Sweeney’s eyes, that justifies a higher commission. […] The point of the exercise, including a hypothetical from Epic’s lawyer over checking a bank balance at the doctor’s office using a game console, was that phones are multi-purpose, general computing devices and that game consoles are not valid substitutes.

Nilay Patel:

Apple’s insistence on comparing the iPhone to game consoles at trial is also really interesting -- do they want the iPhone to be considered a console-like device, or a general purpose computer? What about the iPad?

[…]

Adding to this from a pure policy perspective - we know there are huge numbers of people, especially lower-income people, where a phone is their only computing device.

Tom Warren:

Apple’s attorneys are using retweets from a personal account as a form of defense of Apple blocking cloud gaming apps like GeForce Now, Google Stadia, and Microsoft xCloud 🙃

Jason Snell:

The big question is, will Apple be able to bargain with the powers that be, offering smaller changes that will take pressure and scrutiny off of the rest of the company’s practices? Or will it be forced to change in ways it absolutely doesn’t want by judges and regulators who have decided that its behavior is in violation of the law?

This is complicated stuff. There’s no way to tell how it’ll turn out. But it’s worth considering some of the possibilities, which I’ll rank from most likely to happen (and generally, least catastrophic to Apple) to least likely (and most catastrophic).

Previously:

Tuesday, May 4, 2021

Script Debugger 8

Late Night Software (full release notes, press release):

Script Debugger’s appearance has been updated to fit nicely into macOS Big Sur. Script Debugger 8 runs natively on Apple’s new M1 Macs, and generates universal Intel/ARM applications when running under macOS Big Sur, regardless of platform.

[…]

To go along with Dark Mode support, Script Debugger 8 provides user configurable and switchable themes.

[…]

Viewing script library documentation has been made much easier with the introduction of a Libraries section within Script Debugger’s dictionary window.

[…]

Script Debugger 8 offers vastly expanded options for generating standalone applications, along with the ability to code-sign and notarize applications.

[…]

Security changes introduced in macOS Mojave and later rendered Script Debugger’s external debugging feature inoperable. For Script Debugger 8 we’ve removed external debugging[…]

There’s something weird going on with AppleScript on Apple Silicon Macs. I and others have encountered problems where AppleScript commands time out and fail when either the sending or receiving app is running in Rosetta. So it’s great news that my preferred AppleScript editor now runs natively.

It’s $100 or $50 to upgrade, with many of the features working in the free lite mode.

Previously:

Monday, May 3, 2021

Epic v. Apple, Day 1

Jason Snell, quoting Tim Cook:

The App Store and other parts of Apple are not cast in concrete. And so we can move and are flexible with the times.

Nick Statt, Ben Brody, and David Pierce:

On Monday, Apple and Epic Games will meet in court to decide one of the most consequential antitrust arguments in the history of the tech industry. The trial has been nearly a year in the making, following Apple’s removal of Fortnite from the App Store in August 2020. It’s arguably the biggest courtroom showdown Apple has engaged in since its smartphone patent war with Samsung nearly a decade ago.

[…]

Epic v. Apple starts Monday and is estimated to last about three weeks. In total, each side will have 45 hours to present its case. Gonzalez Rogers has been overseeing the case since the beginning and will preside over the trial as well.

[…]

Each witness will wait in a sort of green room before they’re called to the stand. Beyond that, each company also gets a “designated representative” who can be in the courtroom the entire time. That’ll be Tim Sweeney for Epic and Phil Schiller for Apple.

Via John Gruber:

Just in case there was any doubt whether Schiller, in his new role as Apple Fellow, was truly still in charge of the App Store — he is.

John Voorhees (also: MacRumors, AppleInsider):

There’s more to these disputes than Epic’s allegation that Apple violated antitrust laws and Apple’s claims that Epic violated its developer agreement. Underlying it all is the way the dispute was precipitated by Epic. The Fortnite creator’s actions don’t necessarily absolve Apple of antitrust violations, but Epic’s calculated orchestration of events leading to the dispute have not gone unnoticed by the judge presiding over the case and may influence the trial’s outcome. Coupled with Epic’s efforts to get regulators around the world to take up its cause and its very public crusade against the way Apple operates the App Store, it’s not surprising that the claims haven’t settled.

[…]

The App Store itself may be on trial in the court of public opinion, but the issues in dispute before the judge are far narrower. I suspect that will leave many of Apple’s critics dissatisfied regardless of the result, especially since with inevitable appeals, the next few weeks is just the opening round in what promises to be a much longer dispute.

However, while the outcome of Epic’s lawsuit may not satisfy App Store critics, the intense scrutiny will likely be a force for positive change regardless, as we’ve already seen with changes such as modifications to the App Review Guidelines and the Small Business Program. Apple would undoubtedly deny those changes were made in response to the pressure of litigation, but it’s hard to imagine that the lawsuits and interest of regulators around the world haven’t at least influenced some of the positive changes to the App Store, which is a step in the right direction to making it a better option for all developers.

Sahil Iqbal (tweet):

As a startup founder, I would like to share the issues that the app store tax presents for us.

[…]

What bothers me is the special treatment larger companies receive from Apple regarding the 30% cut.

[…]

Users should at least be aware that they can get the same services for cheaper elsewhere.

[…]

I pay a developer fee every year of $100, which is honestly overpaying for what value I receive from the app store.

Cory Doctorow:

Apple is a true business innovator: For more than a decade, they have been steadily perfecting an obscure anticompetitive tactic, turning a petty grift invented by console games companies into a global, cross-industry mechanism for extracting rents and centralizing control.

I’m speaking of App Stores, of course, and not just any app store, but one that’s illegal to compete with or switch away from.

Kim Lyons:

An appeals court in California has ruled that Amazon can be held liable for products sold through its marketplace by a third-party seller, the Los Angeles Times reported. It’s the second major case in California where an appeals court has rejected Amazon’s long-held position that it is merely an intermediary between buyers and its third-party sellers.

Florian Mueller:

In its proposed findings of fact and conclusions of law, Epic Games debunks Apple’s claim that it has not been able to increase (or even maintain) its App Store commission rate due to competitive constraints[…]

[…]

But Epic’s list of de facto price increases is not even exhaustive.

[…]

Once one has thought it through, it’s crystal clear: many (if not most or even all) third-party developers end up having to pay digital services taxes (“DST”) only because of Apple’s tying (of the payment system to the App Store as the only access route to iOS users), and wouldn’t owe those taxes otherwise.

Davide Vernizzi (via Hacker News):

[Apple does] a lot of bad stuff, but given the context, for me, they are an acceptable evil. I’ll explain.

Benedict Evans (via Hacker News):

Trust was a huge problem, distribution was a huge problem, and Apple solved both.

[…]

So, regulatory intervention might look at side-loading and third party stores, but the focus has to be on Apple’s default store and Apple’s rules. I think it’s extremely likely that apps will be able to use their own payment systems, that Apple’s 30% will change, if not necessarily disappear, and that Apple will have to give third party apps the same kinds of hardware and integration access as its own services.

That leads to a lot of very fiddly product questions.

Mark Gurman (tweet):

Apple Inc.’s App Store had operating margins of almost 78% in fiscal year 2019, according to testimony from an Epic Games Inc. expert witness based on documents obtained from the iPhone maker.

The figure comes from Ned Barnes, a financial and economics researcher, who said he obtained documents “prepared by Apple’s Corporate Financial Planning and Analysis group and produced from the files of Apple CEO Tim Cook.”

Tom Warren:

Microsoft had been planning to cut its Xbox store cut to just 12 percent, according to confidential documents filed in the Epic Games vs. Apple case. The software maker details its store fees and changes in a document from January, where it also lists the 12 percent cut to PC games it announced this week.

Zach:

These depositions released from the Epic v. Apple trial are quite good. They give some perspective from the executive level of how they think about the App Store (I don’t think they’re super positive for Apple…)

James O’Leary:

this is now a live tweet thread

Patrick McGee:

Phil Schiller in 2012, after a rip-off app hit #1: “What the hell is this?????

…. Is no one reviewing these Apps? Is no one minding the store?”

Tom Warren:

remember when Microsoft was trying to get Office on iOS and avoid the 30% cut? Here’s an email from Apple’s @pschiller stating “we run the store, we collect the revenue.”

Tom Warren:

The public call line allows anyone to dial in and listen to today’s proceedings, but the court didn’t manage to properly mute all participants for more than 20 minutes. The result was what sounded like a chaotic Discord call.

More than 200 participants were dialed into the public line, with many screaming “free Fortnite” or “bring back Fortnite on mobile please judge.”

Nilay Patel:

1. The slide transitions during Epic’s opening argument using literal bricks stacking up are very funny

2. Apple really, really knows that iMessage keeps people on iOS, and that messages get lost when people switch to Android.

Tanner Bennett:

Did I miss anything?

Colin Cornaby:

Mostly I just hope after this trial that Epic and Apple can get back to making sure stuff like Unreal works well on the Mac and iOS. It’s been real unsettling how Unreal has not been part of the Apple Silicon campaign, given their market dominance.

[…]

Apple tried to push a narrative today that Metal was something Apple did for Epic, and that Epic should be thankful for. But it doesn’t mention how much legitimacy Epic has given to Metal. Especially on low volume platforms like the Mac.

Previously:

macOS 11.3.1

Mr. Macintosh (also: MacRumors):

Surprise!!! Apple just a new macOS Big Sur 11.3.1 Update. The release comes only one week after 11.3.

Apple:

Impact: Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited.

Description: A memory corruption issue was addressed with improved state management. CVE

[…]

Impact: Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited.

Description: An integer overflow was addressed with improved input validation.

Howard Oakley:

Although it apparently addresses just these two vulnerabilities, it’s still 3.3 GB for an M1 Mac.

Jeff Johnson:

So... where are the Catalina and Mojave security updates for these actively exploited issues???

Previously:

Update (2021-05-05): Juli Clover:

Apple today released a new version of Safari 14.1 for macOS Catalina and macOS Mojave users, with the update introducing fixes for two WebKit vulnerabilities that were patched in macOS Big Sur yesterday.

SuperDuper 3.5 Beta 1

Dave Nanian (tweet):

As such, we can finally release a Beta that works as expected on both Intel Macs (now) and M1 Macs (assuming you have installed 11.4 Beta 1 or later).

To be clear, this is only possible because Apple made it possible in macOS 11.4. I’m certain it required changes to the M1’s startup process and to asr to finally make it happen. Without those changes, we couldn’t have done this in a supported way.

[…]

asr copies at a low level and works a drive quite hard. In our internal testing, some SSDs couldn’t handle the load without intermittently overheating and generating errors.

[…]

So, we decided that under macOS 11 and later, a Smart Update of a "volume group"—that is, a startup volume—will only copy the Data volume, updating your applications and data but leaving the system as-is.

Previously:

Update (2021-05-05): Dave Nanian (tweet):

Startup volumes will often not show up in the Startup Disk Preference Pane in System Preferences under Big Sur. This does not mean the drive isn’t bootable—it’s a weird bug in Big Sur.

[…]

We’ve actually figured out how to get at least a little useful information out of the weird errors system tools produce[…]

EU and Australia on App Store Antitrust

Tom Warren (MacRumors, Hacker News):

The European Commission is issuing antitrust charges against Apple over concerns about the company’s App Store practices. The Commission has found that Apple has broken EU competition rules with its App Store policies, following an initial complaint from Spotify back in 2019. Specifically, the Commission believes Apple has a “dominant position in the market for the distribution of music streaming apps through its App Store.”

The EU has focused on two rules that Apple imposes on developers: the mandatory use of Apple’s in-app purchase system (for which Apple charges a 30 percent cut), and a rule forbidding app developers to inform users of other purchasing options outside of apps. The Commission has found that the 30 percent commission fee, or “Apple tax” as it’s often referred to, has resulted in higher prices for consumers.

[…]

Apple now faces a fine of up to 10 percent of its annual revenue if it’s found guilty of breaking EU rules, which could be as high as $27 billion based on Apple’s annual revenue of $274.5 billion last year. Apple could also be forced to change its business model, which has more damaging and lasting effects than a fine.

Nilay Patel:

The EU has found that Apple’s App Store rules drive up music streaming prices. Apple’s response is to… take credit for Spotify’s success?

Rusty:

“All the benefits of the App Store” is an incredible way to describe “any access to our platform.”

Michael Love:

Apple’s attitude in these press releases is consistently appalling - taking credit for developers’ hard work + completely misrepresenting the nature of the App Store.

Rick Kettner:

“At the core of this case is Spotify’s demand that they should be able to advertise alternative deals… a practice that no store in the world allows.”

Yet an iPhone bought at BestBuy presents me with the option to buy future accessories directly from the Apple Store app. Hmm…

Australian Competition & Consumer Commission (via Hacker News):

The ACCC’s second Digital Platform Services Inquiry interim report finds that Apple’s App Store and Google’s Play Store have significant market power in the distribution of mobile apps in Australia, and measures are needed to address this.

Previously:

Sunday, May 2, 2021

SeaTurtle (Sponsor)

My thanks to Oak Snow Consulting for sponsoring the blog this week.

Do you want to teach your kids to program? Help them take their first steps with SeaTurtle, a turtle graphics–oriented programming language built for macOS. SeaTurtle is an extremely simple programming environment inspired by Logo and BASIC. It has very few features—just enough to engage learners in the pursuit of turtle graphics.

SeaTurtle

Did you learn to program in Logo? Why not give your children the same gentle introduction in a more modern environment designed specifically for the Mac. SeaTurtle comes with ample example programs, video tutorials, and a detailed language guide.

Help Sally write her first loop, subroutine, and if-statement. Help her do it in a language with no special characters, no case sensitivity, and keywords so self-explanatory it’s child’s play. Then she can export her work to an animated GIF to share with her friends. She’ll be ready in no-time to graduate to a real language like JavaScript or Python. SeaTurtle is training wheels for programming.

Purchase SeaTurtle today for $4.99 on the Mac App Store. We’re proud to do our first advertising by sponsoring Michael’s blog, a great resource for developers who remember growing up with Logo and BASIC.