Archive for March 28, 2022

Monday, March 28, 2022

Proposed Digital Markets Act to Require Sideloading

Tim Hardwick:

European lawmakers have provisionally agreed upon a new law that would force Apple to allow user access to third-party app stores and permit the sideloading of apps on iPhones and iPads, among other sweeping changes designed to make the digital sector fairer and more competitive.

[…]

Today’s announcement focuses on services like WhatsApp, Facebook Messenger, and iMessage, which will have to “open up and interoperate with smaller messaging platforms, if they so request,” according to the EU. “Users of small or big platforms would then be able to exchange messages, send files or make video calls across messaging apps, thus giving them more choice.”

[…]

In addition, Apple would have to allow users to uninstall its Safari browser and other stock apps so that they can replace them with third-party alternatives if they so wish.

Damien Petrilli:

+ sideloading
+ alternative stores
+ can’t force any payment system
+ NFC must be accessible
+ must be able to set all default apps

Yup. Apple lost on all fronts.

Nick Lockwood:

Remember cookie banners and GDPR compliance? Companies will simply find the most user-hostile possible interpretation and then implement it in a way that makes it such a burden to use that everybody opts out.

Jon Porter and James Vincent:

“We believe that the owner of a smartphone should have the freedom to choose how to use it,” said European Commission spokesperson Johannes Bahrke in an emailed statement. “This freedom includes being able to opt for alternative sources of apps on your smartphone. With the DMA, a smartphone owner would still be able to enjoy safe and secure services of the default app store on their smart phones. On top of that, if a user so chooses, the DMA would allow a smartphone owner to also opt for other safe app stores.”

[…]

The DMA has not yet been voted into law by the European Parliament but is expected to be approved without much trouble. That could mean the DMA coming into force as early as October this year. Members states of the EU will then be able to choose how exactly to interpret the EU act into national law.

Steve Troughton-Smith:

An implementation deadline of October is going to mean all hands on deck for Apple to get all of this done for iOS 16.

Previously:

Update (2022-04-13): tumult:

Looks like this would also force Microsoft to let you uninstall Edge and set your browser defaults properly again.

(For non-Windows users not keeping up, a few months ago, Microsoft went back to their pre-antitrust behavior and is forcing their Chromium clone on users.)

Previously:

Swift “Async Algorithms” Package

Tony Parker (tweet):

AsyncAlgorithms is a package for algorithms that work with values over time. That includes those primarily about time, like debounce and throttle, but also algorithms about order like combineLatest and merge. Operations that work with multiple inputs (like zip does on Sequence) can be surprisingly complex to implement, with subtle behaviors and many edge cases to consider. A shared package can get these details correct, with extensive testing and documentation, for the benefit of all Swift apps.

[…]

We believe an open source package will provide a great home for these APIs. A package gives developers flexibility in deploying across both platforms and OS versions. Development and API design will take place on GitHub and the Swift Forums.

[…]

Combine’s API is based on the Publisher and Subscriber interfaces, with operators to connect between them. Its design focuses on providing a way to declaratively specify a chain of these operators, transforming data as it moves from one end to the other. This requires thinking differently about intermediate state. Sometimes this leads to call sites that are more complex than one might expect – especially when working with single values, errors, or data that needs to be shared. async/await’s Structured Concurrency provides us with a new way to express this kind of logic. We can now write asynchronous code that is split into smaller pieces and reads from top-to-bottom instead of as a series of chained transforms.

robb:

This reads very much like a eulogy to Combine

Casey Liss:

I’ve heard from birdies inside that Combine isn’t going away until SwiftUI divorces itself from Combine. But nobody internal nor external should expect any new development on it.

See also Philippe Hausler.

Previously:

Update (2022-04-13): Donny Wals:

While the basis of what we can do with both AsyncSequence and Publisher sounds similar, I would like to explore some of the differences between the two mechanisms in a series of two posts.

[…]

The post you’re reading now will focus on comparing use cases. If you want to learn more about lifecycle management, take a look at this post.

Update (2023-06-09): Nick Lockwood:

It’s interesting that SwiftUI is now ditching Combine (which was really its last remaining use-case after Swift Concurrency shipped) - I can’t recall another case of Apple walking back a new framework so quickly and thoroughly.

Marcin Krzyzanowski:

Combine.framework 🪦2023

I’m so sorry for everyone who builds a career around the framework, it kinda sucks

David Smith:

The Autolayout engine was one of the two things that ever adopted the ObjC version, used it for many years.

Previously:

Update (2024-10-08): Jacob Bartlett:

Today, I’ll demonstrate how to migrate your Combine code over to AsyncAlgorithms, with a fully open-source tutorial project you can code along with.

Previously:

Update (2024-12-10): Brent Simmons:

I keep telling the younger developers “stop doing Combine!” and… they keep doing Combine.

I get that “stop doing Combine!” sounds like an old guy thing to say — but I’m in on Swift structured concurrency and SwiftUI.

My argument is the opposite of curmudgeonly — Combine is not the future, and we want to use future things.

Special App Store Behavior for Disney+ Subscriptions

Max Seelemann:

iOS biz people… Subscription price increase as mere NOTICE instead of having to confirm, else subs expires.

Is this new behavior for everyone or exclusive to Disney+?

David Barnard:

“The [Apple Developer] program & access to the App Store is designed to be fair to all developers, regardless of size or influence.”

(This behavior is exclusive to Disney.)

[…]

[For] everyone else, the user have to accept the new price or the subscription terminates. With Disney, the subscription will auto-renew at the higher price if the user doesn’t take action.

In a few years, we’ll be told there was already an “established program” for this.

A consistent subscriptions experience is supposedly one of the advantages of the App Store. But Apple privileges its own services, too. If you unsubscribe from Apple Arcade or Apple News+ early (e.g. so you don’t forget to do so before it renews or because of uncertainty about how many days/hours of lead time you need to give it to avoid being charged) you’ll lose access immediately, whereas third-party apps are required to let you keep using the app/service until the paid period actually ends.

Previously:

Update (2022-04-11): Nick Heer:

The problem is that Apple continues to peddle the lie that it treats every developer the same. That is completely untrue, and Apple’s representatives know it is untrue.

Nikhil Nigade:

Every one seems to be missing an important bit here: this was ready to go when Disney wanted it.

Did it ship with iOS 15.4? Prior to that?

Sarah Perez (MacRumors):

An Apple spokesperson did not dispute the accuracy of the developers’ claims we presented and said this was part of a pilot test.

“We are piloting a new commerce feature we plan to launch very soon. The pilot includes developers across various app categories, organization sizes and regions to help test an upcoming enhancement that we believe will be great for both developers and users, and we’ll have more details to share in the coming weeks,” the spokesperson said.

This, of course, raises a number of questions — like how apps will qualify to use this commerce feature, who’s already in the pilot test group (raising their prices, perhaps unbeknownst to users), whether this has anything to do with the recent changes to “reader” apps and their ability to include external links, how Apple would police such a feature to ensure it was not used by bad actors and much more.

Nick Heer:

On its face, giving developers the ability to raise prices without explicit user confirmation seems extremely risky. Apple has faced many problems with developers abusing app subscriptions in the past. I am obviously curious about what systems will be in place to prevent even worse behaviour.

Eat Your Books

Jeff Carlson:

Then I discovered Eat Your Books, a website that combines the searchability and discoverability of modern technology with the richness (and generally higher quality) of printed cookbooks.

[…]

The core of Eat Your Books is an extensive reference database of the contents of over 160,000 cookbooks and food magazines. It won’t show you any actual recipes because, the company says, that would violate copyrights. (That’s not precisely true; lists of ingredients and simple sets of instructions are not copyrightable. However, recipe introductions and creative instructions can be protected. I suspect the company is trying both to support authors and avoid potential litigation.) Instead, you can search for the name of a dish or ingredient and see matching recipes that come from the books you own.

[…]

A free Eat Your Books account lets you add up to five books or magazines and an unlimited number of sources for online recipes. A Premium membership, which removes those limitations, costs $3 per month or $30 per year.