Archive for March 6, 2020

Friday, March 6, 2020

iOS Default Apps and Competing With Built-in Apps

Charlie Sorrel:

In iPadOS and iOS 13, you can kinda replace the stock Apple apps on your iPhone or iPad. For instance, anytime you tap the Mail icon, Spark could launch instead. Or, and this is probably the most useful, when you tap the lock-screen shortcut for the Camera app, you could launch Halide instead.

[…]

Here’s how it works. You make a Shortcuts automation that is triggered when you open the stock Camera app. When triggered, it opens the camera app of your choice.

Mark Gurman:

The issue has become more prevalent as Apple’s selection of apps has grown. In 2007, the iPhone had 17 pre-installed apps. Today, there are 38. And since the App Store launched in 2008, Apple has never let consumers set a third-party app as a default option, unlike on Android, Windows, and Apple’s own macOS computer operating system. Android users can pick Firefox as their go-to browser relatively easily, for instance.

A House antitrust panel wrote to Apple recently to demand executive communications relating to iPhone default apps. The lawmakers want to learn about the company’s policies on whether iPhone users can set non-Apple apps as defaults in categories including web browsers, maps, email and music.

“This sounds like Microsoft in the 90s,” said David Reichenberg, an antitrust lawyer at Cozen O’Connor.

Microsoft did let you set a different default browser, and different browsers were allowed to provide their own rendering engines, unlike on iOS.

Joe Rossignol:

Apple plans to release a software update later this year that will make Siri more flexible with third-party messaging apps like WhatsApp, Skype, and Facebook Messenger, the company told Bloomberg’s Mark Gurman.

[…]

It will still not be possible to straight-up set third-party apps as default on an iPhone. Instead, the report claims Siri will decide which messaging app to use based on interactions with specific contacts.

Mark Gurman:

An Apple spokesman provided the following statement:

[…] In the few categories where Apple also has an app, we have many successful competitors and we’re proud that their success is responsible for almost 2 million U.S. jobs in a thriving multibillion dollar market for developers. Our North Star is always to create the best products for our customers and that is why iPhone has the highest customer satisfaction in the industry.

Apple-made apps that are pre-installed on iPhones represent only 0.00002% of the roughly 2 million apps in the App Store, the company also noted.

[…]

It offers developers free marketing in the App Store and on social media, gives personalized recommendations to users who might be interested in their apps, and provides advice from the Apple developer-relations team.

Michael Love:

These responses are somewhat infuriating.

Steve Troughton-Smith:

We all know Apple doesn’t play in the App Store on a level playing field; many people excuse this with “it’s their store, they can do what they want”, which I think is trash. If antitrust litigation forces Apple to do right thing, so be it

If you statically analyze Apple’s App Store apps (like I’ve had to do for experimentation with marzipanify), you’ll find that almost none of them would pass App Review if submitted by an external developer. They get all kinds of private API access and special entitlements

Setting app defaults is just the start of the story; even as the default app, it will be hard to compete fairly with the special privileges Apple grants its own apps

The question is a totally legit one: does Apple compete fairly with apps on its App Store? All of us developers know the answer is ‘of course not’. Many users might know this too. Detractors attack the question instead of the facts behind it because that’s all you can do

Does Apple empower developers? Heck yes. Have they created entire new industries and millions of jobs? For sure. Is iOS a great platform to develop for? Absolutely! Two things can be true at the same time; Apple giveth, Apple competeth unfairly

As a developer, I’m afraid that even antitrust litigation will miss the forest for the trees, and only address setting default apps on iOS, which would be an easy token gesture for Apple to give and wouldn’t really address the underlying problem

I have literally had Apple reject an App Store app of mine (with a ‘never gonna happen’) only to introduce one a few months later with the same app name, icon and purpose 😂 (that was ‘Files’). Apple even gets to unfairly compete with not-yet-released apps

Yoav Weiss:

This happened to me too on watchOS. I submitted an app that displayed multiple swipeable white screens and acted as a flashlight on your wrist. Apple called and said “too many flashlight apps for iPhone”. Me: this is for ᴡᴀᴛᴄʜ. Apple: behold! watchOS 4 with flashlight!

Andrew Chidden:

Apple also loves picking favorites. One WWDC showcased our competitors with a critical feature previously removed from watchOS. Prior to WWDC Apple told us to pound sand when we asked about the feature, so we had already pivoted the team away.

I’m now at a company that Apple “likes”, and the difference is striking. We know about certain things well in advance, our app is shown on stage + Apple.com, and we don’t get blocked from the App Store for half the year.

Eric Lewis:

This is 100% true, I got away with some amazing stuff with my relationship with Apple. Including background location in a way beyond anything they’d ever allow.

David Barnard:

The problem I have is when Apple doesn’t allow 3rd party developers to compete even when that competition wouldn’t cause security or privacy issues.

The example I gave @markgurman on that was my @Timer app. I’ve begged Apple for the critical alerts entitlement so that my timers can compete with the system timer in alerting people even when the mute switch is on or volume turned down. I get so many confused support emails.

And as I complained earlier this summer, @LaunchCenterPro pioneered the use of NFC stickers for triggering shortcuts on iOS, but Shortcuts added NFC with special background access that 3rd party apps don’t get.

What’s ultimately best for iOS customers is a vibrant 3rd party developer community that’s allowed to better compete with 1st party apps AND Apple integrating some things into 1st party apps that just shouldn’t be allowed in 3rd party apps.

Mark Gurman (MacRumors):

The technology giant is discussing whether to let users choose third-party web browser and mail applications as their default options on Apple’s mobile devices, replacing the company’s Safari browser and Mail app, according to people familiar with the matter.

John Gruber:

Users have been clamoring for this ever since the App Store opened. I get why Apple has been cautious about allowing this, but at this point it’s overdue. There are third-party email clients and web browsers that are really good — Apple should celebrate that fact.

[…]

Siri does support third-party apps — you just have to specify them by name: “Hey Siri, play some Pearl Jam from Spotify”. It makes sense that this should be a setting too — if you’re a Spotify user it’s a bit ridiculous that you’re currently required to tack on “from Spotify” with every single request.

Benjamin Mayo:

That small change would cover the use cases of what most people think up when they say they want the ability to set default apps. With such a trivial amount of work involved, that is probably what Apple will do. Competition regulators would probably be appeased by it. However, if you were actually trying to design a system that treated third-party and first-party apps as equals, there’s a lot further to go.

Apple’s stock apps have a lot of privileged system behaviours. For instance, Mail gets to poll the server for new emails on a regular schedule. You can go into Settings and set to check for new mail as often as once every every fifteen minutes. Third-party email apps can only use the sanctioned background refresh APIs, which throttle updates significantly and do not have any guarantees of regularity. This means the majority of third-party email apps have to be backed by a cloud service that checks inboxes and sends new mail push notifications to the device. Apple Mail also has deep and granular options for notification preferences; a user can choose how and where notifications appear on a per-mailbox basis, and do things like let messages from VIP contacts hit the lock screen whilst sending everything else silently to Notification Centre. No App Store app has the capability to do that stuff.

Jason Snell:

The Files app never wants to let you open a bunch of file types directly in an external editor. PDFs and audio and video files? Forget it—those open in Quick Look if you tap on them or tap Open in the Get Info view (which is the same view that appears if you tap on a file when you’re in column view). To open these files, you need to choose Share and then send them to another app.

For other file types, you can indeed set a default—so long as the app in question supports opening files directly. To do this, you tap and hold on a file, then choose Share from the resulting contextual menu. From the resulting share sheet, choose an app from the list of apps at the very top, or swipe all the way to the end of the list and tap More to see even more options. What you want is an option to “Open in [name of app].”

John Gruber:

This whole thing about being able to map a default handler for file types — but not PDFs or audio or video — is bananas. Bananas that even Jason Snell didn’t know about it, bananas that PDFs and AV files are special-case locked to Quick View, bananas all around.

Jared Sorge:

If one of the benefits of setting your default browser to (let’s say) Chrome so you have access to all the Chrome things all the time would it be jarring for a user to see Safari inside of their Twitter app when they tap on a link? Would Apple provide some kind of hook inside of SFSafariViewController to actually show the content of a third-party app like this? If I’ve purposefully gone and set Chrome as my default browser then I sure don’t want Safari ever getting in my way.

There’s also similar code around MFMailComposeViewController for sending emails in apps (I use that in Scorebook) as well as MFMessageComposeViewController for sending iMessage or SMS messages. Would they allow users to pick their email or message client and slide up those experiences as well?

Previously:

Buy-Back Programs for iPhones

Jenna Tsui:

Many Apple users know Cult of Mac as a tech news site, but fewer think of it as a site that will buy back Apple gear. In 2015, however, the site launched the Cult of Mac Buy-Back Program, which claims to give people more money for their Apple products than other, less-specific sites like Gazelle. You don’t have to worry about Cult of Mac publisher Leander Kahney inspecting old iPhones himself; the program is white-labeled through MyPhones Unlimited, an Arkansas-based recycler.

[…]

Simply Mac is an independent Apple retailer with locations throughout the United States. Its Simple Trade program is another option for those who prefer to trade in an iPhone in person but don’t have an Apple Store near them. When taking this approach, you receive your buy-back quote after a Simply Mac representative evaluates the device in person. Unfortunately, trade-ins are accepted only in Simply Mac stores.

[…]

However, not all iPhones are fed to Daisy. Apple clarified that Daisy works only with select used iPhones from the company’s trade-in program, as well as those sourced from Best Buy’s recycling initiative in the United States and KPN stores in the Netherlands. […] If it seems that Apple isn’t being entirely forthcoming, the other two companies are even less specific about what happens to old phones. Both Cult of Mac and Simply Mac sell refurbished phones when possible, but neither company says where.

The Gazelle prices are always a bit lower than I’d like, but they make the process very easy.

Previously:

The Decimation of Safari Extensions

Jeff Johnson:

As a result of the change in format from safariextz to app, Safari extensions have been decimated. There are significantly fewer Safari extensions available. The developer program membership cost factor is obvious, so I won’t spend any more time discussing that. I believe that the biggest barrier now to creating Safari extensions is not money but developer expertise. To create an extension for Firefox, Chrome, or any browser based on Chromium — Microsoft Edge, Brave, Opera, Vivaldi — you just need to know JavaScript, CSS, and HTML. In other words, almost any web developer in the world can create an extension for almost any web browser in the world. All these worlds are yours… except Safari! Attempt no landing there. Safari is unique, unprecedented in its extension requirements. Safari extension developers still have to know web development, but they also have to know native Mac development.

[…]

If you’re wondering why your favorite old Safari extension hasn’t been ported to a new Safari app extension, the reason isn’t necessarily just lack of native Mac development expertise by the developer. Even though an app extension still uses JavaScript and CSS like a safariextz, the new API is not the same as the old API. Developers can’t simply take the old JavaScript and stick it inside a Mac app bundle, that’s not how it works. The new SafariServices API is simply not as powerful as the old Safari JavaScript API. There are things an extension could do in the past that it can no longer do.

Brian Krebs (Hacker News):

The incident is a reminder that browser extensions — however useful or fun they may seem when you install them — typically have a great deal of power and can effectively read and/or write all data in your browsing sessions. And as we’ll see, it’s not uncommon for extension makers to sell or lease their user base to shady advertising firms, or in some cases abandon them to outright cybercriminals.

As far as I know, the new Safari extensions model doesn’t fix this problem. I don’t want to run any extensions that have access to both the full webpage contents and the ability to send my information to a server. The extension runs in its own process, and thus I get a Little Snitch alert if it tries to make a network connection. But the extension could also modify the page content to make network connections on its behalf, and then this would not be caught by Little Snitch. So it still seems like the only way to be sure an extension is safe is to read its JavaScript source.

Previously:

The Apollo Guidance Computer

Wojtek Pietrusiewicz:

As you can see, the DSKY has a black keypad with white legends, yellow indicator lights, and a green electroluminescent seven-segment display. Commands were entered numerically, as two-digit numbers — called Verb and Noun. The first one represented the action being issued, while the second represented the data that would be changed.

He’s designed some keyboard kits using to commemorate the 50th anniversary of Apollo 11.

One of my goals was to use the legends and values from DSKY’s various keys and indicators, in place of traditional modifier legends. This in turn led me to a decision to use stock GMK colours, to make everything easier and more affordable.

Ken Shirriff (via Maxime Chevalier-Boisvert):

The Launch Vehicle Digital Computer (LVDC) had a key role in the Apollo Moon mission, guiding and controlling the Saturn V rocket. Like most computers of the era, it used core memory, storing data in tiny magnetic cores. In this article, I take a close look at an LVDC core memory module from Steve Jurvetson’s collection. This memory module was technologically advanced for the mid-1960s, using surface-mount components, hybrid modules, and flexible connectors that made it an order of magnitude smaller and lighter than mainframe core memories. Even so, this memory stored just 4096 words of 26 bits.

Previously:

Twitter Testing “Fleets”

Ryan Christoffel:

Today Twitter announced a test, limited to Brazil, of a major new feature for the social service: Fleets, which take their inspiration from the Stories feature found on Instagram, Snapchat, and Facebook.

Fleets, short for “fleeting tweets,” live at the top of your timeline just like stories do in other social media apps, and they disappear after 24 hours. Multiple fleets can be written in a day and include text, images, GIFs, and videos, but the way they are interacted with is different than a standard tweet. There’s no way to retweet or reply to someone’s tweet in a public sense; instead, followers can react to a fleet via DM, or a reaction which is sent via DM. Presumably this means that if someone’s DMs are closed, only people they follow can respond to their fleets.