⌘ MacBlog

Dark Patterns in Apple News

I'm aggravated by Apple News.

Dark Patterns in Apple News

Recently, I've encountered two instances where Apple News uses so-called "dark patterns" to increase engagement with the app in user-hostile ways.

And in both instances, Apple is breaking its own rules.

1. The Quit-blocking Promotional Offer

On my Mac, I opened a News article via the Control Center widget. Once I read the article I was done with News and pressed Command + Q to quit the app.

Instead of quitting, News displayed a promotional modal encouraging me to subscribe to News+.

Promotional modal offering News+ subscription

The long-standing macOS convention is for apps to quit when the user tells them to, unless there is unsaved content. A word processing app might confirm you want to quit without saving an open document. Or a web browser might remind you there are multiple open tabs. These are useful affordances that help prevent potential data loss.

Showing me an ad encouraging me to subscribe to a service is not a useful affordance.

2. Automatic Notification Subscriptions

The default configuration for system Notifications on macOS, iOS and iPadOS do not include any settings for Apple News.

Default Notifications settings on macOS

If you open Apple News, then check Notification preferences, Notifications are then automatically enabled. The configuration is the most intrusive possible.

Apple News notifications are automatically enabled

Many first-party Apple apps are granted default notification entitlements. It stands to reason that a user would want Phone and Messages to deliver notifications without additional knob-turning. Having these apps enabled by default meets user expectation.

The issue is that Apple News – while not being granted notification permissions out of the box – grants itself this permission on first launch with no user interaction.

Similar to News, the TV app does not have a "default" configuration for Notifications. However, in contrast, when you first open TV.app, you're prompted to enable notifications if you desire. The flow is just like any third-party, non-Apple app.

Prompt to enable TV notifications
TV Notifications settings on macOS

The value proposition is less clear with News than with TV. TV provides a clear and knowable service. What does News+ do?


I don't mean for this to be a grumpy.website post on different domain; and I shouldn't be surprised Apple is trying to increase services revenue.

It just feels gross.

Third-party apps can't surreptitiously enable notifications without prompting the user. Preventing this exact flavor of abuse is precisely why Apple introduced Notification prompts.

I really hope Apple keeps the News team away from the rest of their software and services.

Personal Notes for Autumn 2021

I haven't posted in the last six months because I've been pretty busy. I have three pieces of personal news to share about what I've been up to.

  1. My wife and I welcomed our daughter to the world. Becoming her father is the biggest privilege of my life, and she teaches me daily how to be a better person.

    She is also – objectively – the best baby ever.

  2. I started a new role at Lyft. My primary focus is managing our global fleet of Apple devices, and helping build the world's best transportation. I'm really enjoying the new challenges, and I'm fortunate to be part of an awesome team.

    This will obviate some references in older articles where I discussed technical implementations at my previous employer. My goal in future articles is to write more "evergreen" pieces that are more broadly applicable.

  3. I redesigned this site. My goals were to increase the focus on the articles and improve legibility on mobile devices. The site also supports both "light" and "dark" color palettes that adapt to your system-wide preference. For boring reasons, I changed the static site software I use from Hugo to Zola. I hope you enjoy the new look.

More to follow soon!

Getting the currently logged-in user's ID (UID) for launchctl

Many scripted macOS workflows require determining the username of the currently logged-in user. Whether you wish to execute a command as that user via su or you just want to log the username during your script's execution, you may need to query macOS for this information.

This is a solved problem, and Armin Briegel's excellent article on Getting the current user in macOS outlines the best method.

In addition to determining the logged-in user's username, you may also need their user ID number, or UID. For example, loading a LaunchAgent as a specific user requires providing that user's UID.

Previous solutions involved grabbing the logged-in user's username, then feeding that to id -u $loggedInUser – but you can get the currently logged-in user's UID in one step.

Renaming Computers via Snipe-IT using Jamf Pro

A couple of years ago, I shared a method to set a Mac's hostname via a Google Sheet. It's worked well at my organization (as well as many others!) and helped us keep our computer names consistent.

We've since moved to using Snipe-IT for asset management. Snipe is a fantastic open-source tool that simplifies inventory tracking for our whole IT shop. It also includes a robust API that allows us to integrate with external systems and processes.

I'm now using the Snipe API to script our computer naming process. We treat Snipe as the system of record for all inventory, and any change made to a computer's hostname in Snipe can be reflected on both the client system and in Jamf Pro. Here's how.