Archive for June 2019

Tuesday, June 25, 2019 [Tweets] [Favorites]

Swift Property Wrappers

Mattt Thompson:

SE-0258: Property Wrappers is currently in its third review (scheduled to end yesterday, at the time of publication), and it promises to make open up functionality like lazy so that library authors can implement similar functionality themselves.

The proposal does an excellent job outlining its design and implementation. So rather than attempt to improve on this explanation, we thought it’d be interesting to look at some new patterns that property wrappers make possible — and, in the process, get a better handle on how we might use this feature in our projects.

This is one of my favorite new Swift features, although there are some issues:

As described in the previous section, property wrappers have but two methods of recourse to deal with invalid values:

  1. Ignoring them (silently)
  2. Crashing with fatalError()


Attempting to compose two property wrappers that act on String values fails, because the outermost wrapper is acting on a value of the innermost wrapper type.


SuperDuper 3.2.5

Dave Nanian:

So if that code was right, why the heck were some users getting occasional multiple runs? And why wasn’t it happening to us here at Shirt Pocket HQ?


Previously, in order to work around problems with Clean My Mac (which, for some reason, incorrectly disables our scheduling when a cleanup pass is run, much to my frustration), we changed SuperDuper to reload our LaunchAgents when it starts, in order to self-repair.


Readers may recall that launchd’s ThrottleInterval doesn’t really control how often a job might launch, “throttling” it to only once every n seconds. It actually forces a task to relaunch if it doesn’t run for at least n seconds.

It does this even if a task succeeds, exits normally, and is set up to run, say, every minute.


So, in 3.2.5, we’ve changed this so that rather than write a file “optimally”, maximizing the number of holes, we write it “accurately”. That is, we exactly replicate the sparse structure on the source. This speeds things up tremendously. For example, with a typical sparse docker image, the OS’s low-level copyfile function takes 13 minutes to copy with full fidelity, rsync takes 3 minutes and doesn’t provide full fidelity, whereas SuperDuper 3.2.5 takes 53 seconds and exactly replicates the source.


StorCentric Acquires Retrospect


StorCentric, parent company of Drobo and Nexsan, today announced that it has acquired privately owned backup software company, Retrospect, Inc. Retrospect, Inc. is a leading provider of backup and recovery tools for consumers, professionals and SMBs. Under terms of the agreement, Retrospect, Inc. will operate as an independent, wholly-owned subsidiary of StorCentric.

Krista Macomber:

It is still early days in terms of its execution. But StorCentric’s approach positions the company to serve a host of organization sizes and industries, as well as storage use cases, well. It accomplishes this by enabling its various acquisitions to continue focusing on serving the markets that they serve well, and developing integration points as appropriate. Blending performance, scalability and reliability was an early focal point of the company. With the acquisition of Retrospect and ongoing portfolio developments – most notably with the continued development of the Assureon line – there will be a deeper focus on continuous data availability as well as data security. StorCentric has a number of developments on its roadmap, including Assureon-based services and blockchain capabilities.

Brian Dunagan:

With StorCentric’s resources, we’ll be able to push Retrospect Backup forward even further with new features and support for more platforms, and our customers and partners will continue to receive the same top-notch service from our excellent Sales and Support teams.

Catalyst Can Rescue the Mac and Grow the iPad

John Voorhees:

By contrast, Catalyst is a shorter-term initiative designed to address two soft spots in Apple’s lineup: the stagnation of the Mac app ecosystem, and the slow growth of pro iPad apps. The unstated assumption underlying the realignment seems to be that the two app platforms are stronger tied together than they are apart, which ultimately will protect the viability of their hardware too.

The impact of Catalyst on the Mac and iPad remains murky. It’s still too early in the process to understand what the long-term effect will be on either platform. There’s substantial execution risk that could harm the Mac or iPad, but despite some troubling signs, which I’ll get to in due course, I’m convinced that Catalyst has the potential for meaningful improvements to both platforms, especially the Mac.


The Mac has always had great productivity apps and still does, which masks the platform’s troubles. While it’s true that I can still get my work done on the Mac with a robust set of first-class apps, it’s also true that the depth and breadth of choices I have are limited. Moreover, every year that passes, I find myself drawn more and more to iOS for specific tools that I can’t get, or which are inferior, on the Mac. On one level, that’s perfectly fine. I’m just as comfortable working on iOS as I am on a Mac. However, I’d rather pick the platform I use for a particular task than be forced to use one over the other because of app availability.

I compiled a very long list of iPad apps I’d like to see come to the Mac as I researched this story. I’ll spare readers the full list of over 60 apps and instead focus on a handful of categories that I think would benefit the most from Catalyst.


Monday, June 24, 2019 [Tweets] [Favorites]

The Day the Duplicates Died

Joe Cieplinski:

So, the big question: Would this bug still be present in Music, despite all the work Apple had put into rebranding and reworking it?


Well, at first, the duplicates appeared again. I was despondent. I could not believe Apple didn’t bother addressing this issue after at least one-and-a-half years. (In all likelihood, the bug has been around quite a bit longer than that.)

But then, a few moments later, something wonderful happened. All the duplicate tracks disappeared in an instant. It was if Music caught itself making the same old mistake, and then corrected itself.


macOS 10.15 Public Beta 1

Juli Clover:

Apple today seeded the first beta of an upcoming macOS Catalina update to its public beta testing group, giving non-developers a chance to try out the software ahead of its fall public release.

It seems to be essentially the same as Developer Beta 2, which is surprising both because that version is a bit rough and because it doesn’t contain the redesigned Catalyst apps that Craig Federighi said would be in the public beta.

Jason Snell:

Music feels like a version of iTunes that’s been heavily influenced by Apple’s decisions on iOS. Up Next and Lyrics panes now slide out over the interface, obscuring what’s behind—essentially the inverse of the old drawer metaphor in the early days of Mac OS X. It’s a decision that makes sense if you’ve got a single-window interface, but I don’t use my Mac in full screen mode and I didn’t mind the popover approach that iTunes took with those windows.


The translation of the [Podcasts] app from iOS to Mac is not without quirks. Resizing the app window seemed sluggish. Clicking on individual podcast episodes in the Downloaded list kept adding to the selection rather than changing the selection; I had to click a second time to deselect them. And selecting a bunch didn’t actually do anything, since you’re not able to delete episodes via a keyboard shortcut or menu item—you apparently have to click a button on each individual episode, then confirm in a dialog box (which can’t be permanently suppressed, so you have to click every single time), before it’s deleted.


I found the [iOS] Finder integration slow and unreliable, which isn’t surprising for a beta, but it needs to be better by the fall. But it’s a good move and people who still connect their devices to their Macs will be well served by it.


Update (2019-06-25): Brent Simmons:

Even if you get extremely lucky and everything works with one release, the next public beta could change all that.

Daniel Jalkut:

In my experience the Catalina beta is pretty stable, but the sheer amount of change, particularly with the filesystem, should warn off any “sunday driver” beta testers. Install this on a second volume until you understand which 3rd party software you'll be giving up for the time.

The Popularity of the 4.7″ iPhone

David Smith:

When I look at the iPhone distribution for Pedometer++ the four most popular devices are all that size. Together they account for nearly 50% of all devices I see in use.


The next most popular screen size is the 5.5″ Plus size at around 19%. The 5.8″ X size comes in around 12%.

The devices actually in use are mostly not the ones you see written about online. Back in the day, each new iPhone model outsold all previous ones combined.


Friday, June 21, 2019 [Tweets] [Favorites]

Jean-Marie Hullot, RIP

Bruce Henderson:

For those of you well versed in computer history, Jean-Marie Hullot died today. Though there is a very small Wikipedia article on him, his contribution to Objective-C, NeXT and eventually Apple and iOS cannot be understated. He was a blazing intellect who saw farther, did more.

Florent Pillet:

So long Jean-Marie Hulot, father of Interface Builder and so many other nice things … RIP

He also led the iCal and iSync teams.

Chris Parker:

Heartbroken to hear this; Jean-Marie Hullot was the original Interface Builder engineer/inventor and just a fantastic man to speak with. I loved talking to him when he visited the AppKit team in Cupertino. He’ll be missed.

Olivier Gutknecht:

I remember reading an article, a long long time ago, about NeXT development tools and Interface Builder, with this picture of Jean-Marie Hullot

Gérard Berry and Gérard Huet (tweet, Google translation):

Jean-Marie Hullot then took the leadership of the interfaces and interactions of the new Macintosh as technical director of the application service of Apple. His creations and those of his team always mark modern computing. He then left Apple and California to settle in Paris. There, Steve Jobs reminded him to regenerate the creative spirit of Apple, but he refused to return to California, and proposed instead to create a phone, or rather a smartphone as they say now. After some difficulties to convince Steve Jobs who did not believe it too much, he created the iPhone in a secret laboratory of twenty people in Paris.

Mark Ames:

Hullot’s team was important in laying the groundwork for the iPhone, but when Jobs decided to pull the trigger on the phone, the project moved to Silicon Valley with all of Apple’s attendant secrecy, a move Hullot didn’t want to make again. So he left Apple, along with his four engineers.

See also: Denis Delbecq (Google translation).


Update (2019-06-24): Michael B. Johnson:

This is super sad. Interface Builder was one of the most important apps I ever used. My PhD thesis work was packaged up as a set of IB “palettes”, bundles of code that extended it.

It was a beautiful piece of work that gave pure workflow joy for me.

Thanks, Jean-Marie.

Olivier B.:

It’s 2005, first job after graduating.

Jean-Marie hires me as a SW Engineer at Apple in France. We’re pre-iPhone, the team is working on iSync (and other things…).

Those years were foundational. I learnt so much from him, from @guiheneuf and the team. Rest In Peace, Jean-Marie.

Damien Petrilli:

The stories are really good at showing one thing: how much talents Apple is losing by not allowing to work on other locations.

A lot of people aren’t willing/interested to relocate to the silicon valley.

Chrome to Limit Ad Blocking Extensions

Kyle Bradshaw (via Eva):

Google is essentially saying that Chrome will still have the capability to block unwanted content, but this will be restricted to only paid, enterprise users of Chrome. This is likely to allow enterprise customers to develop in-house Chrome extensions, not for ad blocking usage.

For the rest of us, Google hasn’t budged on their changes to content blockers, meaning that ad blockers will need to switch to a less effective, rules-based system, called “declarativeNetRequest.”

Justin Schuh (via Dan Masters):

The sole motivation here is correcting major privacy and security deficiencies in the current system. I know, because I set that focus, and the team reports up through me. And here’s a bit more context on the uBlock assertions.

Justin Schuh:

Chrome does let sysadmins manage things beyond user-facing settings (without paying anyone anything!). That’s because enterprises have complex needs and admins responsible for assessing security, privacy, and perf tradeoffs that we can’t foist on the average user.

Then there’s the uBlock Origin arguments. The big problem with webRequest is unfixable privacy and security holes. They ignored that to solely argue perf, but then ignored the biggest perf cost of every webRequest extension stacking a full renderer process, blocking IPC, etc.

Simeon Vincent:

Each of these groups has their own distinct maximum number of allowed rules. These current placeholder max values are specified in the DNR properties documentation. We are planning to raise these values but we won’t have updated numbers until we can run performance tests to find a good upper bound that will work across all supported devices.


Update (2019-06-25): Tanner Bennett:

Some good snippets from the forum thread

1/ “Also, privacy concerns have yet to be substantiated…. Worth noting is the content usually blocked using existing APIs/extensions is much more privacy intrusive: give me an advertising provider that actually respects privacy…”

2/ “Chromium devs pushing this change that no one seems to need and…without…the research that justifies the change makes them and Google look arrogant and uncaring, while covering it all under the “security, privacy, and performance” cliche.

… We haven’t even yet seen the evidence, e.g. a performance analysis or some in-depth metrics that show why webRequest API must be limited and why it should be a global rewrite of the API.”

Thursday, June 20, 2019 [Tweets] [Favorites]

Lightroom CC Returns to the Mac App Store

Sam Byford (MacRumors):

It’s free to download and use for a week, then it’ll require a $9.99 monthly subscription through Apple’s in-app purchasing system, which includes 1TB of cloud storage.


This isn’t the first time that you’ve been able to get Lightroom in the Mac App Store. Back in 2012, when Adobe sold its apps as standalone purchases before starting to push Creative Cloud subscriptions, Lightroom 4 was available for $149.99. Lightroom 5 never came to Apple’s store, however, and even Adobe itself doesn’t sell standalone versions of Lightroom today.

Unfortunately, it’s only the cloud version of Lightroom. I’m currently paying $9.99/month to get Lightroom, Lightroom Classic, and Photoshop. If there were a way to get Lightroom Classic from the Mac App Store, I would switch. First, I don’t like all the Adobe daemons (6 currently) that are constantly running, using CPU time, throwing up notifications, and crashing every morning. And second, it would be nice to be able to consolidate the billing and use iTunes gift cards.


Update (2019-06-25): Cabel Sasser:

Here’s a “fun” fact. Don’t like the marketing notifications in Adobe Creative Cloud? Don’t bother unchecking “Show Notifications”.

“The [Show Notifications] option in your screenshot is the global one that disables all of them — with the exception of marketing ones.” —Adobe

(“The only way they can disabled currently is by the process I’m requesting for your account.” I.e. they can only be disabled is by an Adobe support person putting through a manual request to… someone.)

A 101-year-old TidBITS Reader

Adam Engst:

George [Jedenoff]: When I turned 70, I decided I needed mental exercise that would help to keep the cobwebs out of my brain as I grew older. I have always been interested in technology, so I thought it would be interesting to learn more about computers. I wasn’t alone in this—a number of my friends did likewise but those who tried to learn about PCs had considerable difficulty and gave up. After some research and advice, I felt that the Macintosh would be easier to learn, so I ended up going the Mac route. About 1987, I purchased my first computer, a Macintosh Plus.


Like many people, I carry my iPhone with me at all times and use it constantly for phone conversations, text messages, taking photos, and reading email. Unfortunately, my eyesight is not too good, so even with the size of the iPhone XS Max screen, I prefer to view photos and other information on the iPad Pro. I do my more serious work on the iMac, which has the large 27-inch screen. I use these devices to stay in contact with many friends, do online shopping, write important documents, and so on. In fact, I just recently wrote the history of my family and my life in a 232-page manuscript for my family and close friends. I am now in the process of writing a more public version, which I hope to publish online.

Jason Snell (tweet):

This reminds me of someone I knew, a neighbor in my hometown. Bill was in his 70s but started his own business and built a massive FileMaker database to manage his customer list, all self taught on his Mac. He knew more about the Mac than anyone else I knew in the 90s.

Legacy App Whitelist Bypass

Shaun Nichols:

Wardle, however, found that there is a glaring hole in the new security features: the implementation of backwards compatibility support. He told The Register how, in order to keep the operating system from breaking older applications, Apple included within Mojave a whitelist of apps that can work around the security protections. Specifically, whitelisted apps can perform synthetic events, which would allow them to, among other things, get around the approval click.

What Wardle found was that Apple’s whitelisting mechanism only checks the cryptographic signatures of applications’ executables, not every piece of additional code that they load and run, such as plugins and scripts. This means that an attacker could in some way modify, or rather extend, one of those whitelisted apps to fake a permission approval click and gain access to all of the protected resources in Mojave without any noticeable user notification or interaction.

See also: the synthetic click bug that was fixed in Mojave.


Update (2019-06-21): Rosyna Keller:

The legacy app list was updated automatically (separate from an OS update) on May 29th(?). The hijacked apps no longer appear in the list.

See /System/Library/Sandbox/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist

Scripting a Save Location With Default Folder X

St. Clair Software:

Version 5.3.7 of Default Folder X introduced a new capability: it can now ask what the default folder for an application should be on the fly using AppleScript.


Put an AppleScript script in:

~/Library/Application Support/com.stclairsoft.DefaultFolderX5/Scripts/

or, if you want it to handle only a single application, put it in a sub-folder of the Scripts folder named for the application you want it to serve.

Jason Snell:

The result is somewhat magical: Now when I record audio in Sound Studio and press save, the save dialog box bounces to the Audio Files folder within the newest Logic project folder on the Desktop. Nine times out of ten, it’s exactly where I want to be.

Wednesday, June 19, 2019 [Tweets] [Favorites]

Best Buy to Offer Apple-Certified Repairs

Apple (via MacRumors):

Apple today announced the completion of a major expansion of its Apple authorized service network. With nearly 1,000 Best Buy stores across the US now providing expert service and repairs for Apple products, customers have even easier and more convenient access to safe and reliable repairs.


By expanding to every Best Buy store across the US, customers in cities including Yuma, Arizona; Sioux City, Iowa; Twin Falls, Idaho; Casper, Wyoming and Bismarck, North Dakota will have more convenient access to Apple repairs. Plus, Best Buy’s Geek Squad has nearly 7,600 newly Apple-certified technicians ready to make same-day iPhone repairs or to service other Apple products.

Sounds good, although I wonder what types of repairs they’ll be able to do. Can they replace a MacBook Pro keyboard without mailing it in? Will they charge for “free” iPhone battery replacements, like I’ve seen other authorized service providers do?


I was one of those “Apple certified” techs at the Geek Squad/Best Buy I worked at for 12 years. The training is a joke, you read a few articles and watch a video, then are expected to be able to repair every iPhone that Apple is willing to give you parts for. Forget about same day replacement or loner phones cause that is not going to happen. The few parts that can be replaced in-house are ones that I have hardly ever seen fail, like a speaker or a cellular receiver. Most items are shipped out and your lucky if it takes less then a week to get is back. Some items have a very quick turn around time like Apple TV and sometimes Apple Watch. Your better off just going through Apple, even just mailing it in to them is faster then taking it to a Best Buy, and you will get much better customer service. When anyone in Geek Squad sees an Apple device all they want to do is run and hide cause the process is so horrible, even just to check it in.


Kindle Oasis With Warm Light

Trevor Daugherty:

Amazon’s latest Kindle sports a familiar design, but the top-tier E-ink reader offers one particularly notable feature: a color-adjustable display for nighttime use. The new Kindle Oasis cashes in on a trend that we’ve seen from Apple’s True Tone-enabled iPads, making it easier to enjoy content at night when those blue lights commonly found on displays can be particularly damaging.


Now you can adjust the shade of the screen from white light to a warm amber with the ability to schedule when the light changes for a personalized reading experience. Kindle Oasis also has an adaptive front light that automatically adjusts the brightness of your screen based on lighting conditions.

I mostly read without the backlight, but this sounds great for people who read in the dark. At 6.6 oz., it’s 0.2 oz. lighter than the second-generation Oasis but 2 oz. heavier than the first-generation one (which I still use). It retains the second-generation’s 7-inch display. The new model is $250, and the previous one is down to $200 (both with special offers).


No-Click Google Searches

Shalini Ramachandran:

Crazy number, via @keachhagey: In March, 62% of Google searches on mobile were “no-click” searches, meaning ppl didn’t click on any website after Googling. That’s thanks to Google’s knowledge boxes - of dubious accuracy - sitting atop search results.

Kyle Howells:

It seems Google has gone beyond answering your question at the top of the search results, to not even showing you search results if it can answer your question.


Backing Up VM Image Files to Internet Backup Services

Adam Engst:

Seriously? Code42 is actually admitting that CrashPlan may not back up large files correctly? Isn’t that Job #1 for any backup app?


After the initial upload, apps like Backblaze and CrashPlan do block-level data deduplication, which means that they analyze small blocks of each file, compare them to what’s already backed up, and copy only those blocks that are new or changed. It might seem as though large files wouldn’t present a problem after initial backup as long as they didn’t change all that much. However, as Yev pointed out, the resources necessary to analyze all the blocks in a multi-gigabyte file are significant—you need enough drive space to store a copy of the file, and then the backup app has to spend a lot more time and CPU power analyzing all those blocks.


For these reasons, Backblaze also excludes VM image files and other large file types (it also doesn’t back up system files or applications), as you can see in the app’s Exclusions screen.

In both cases, you can adjust the exclusion lists to include these files.


Update (2019-06-20): Kyle Howells:

You can remove the file type exclusions, but not the location exclusions (I tried and failed to get it to backup the applications directory).

See also: Boot SuperDuper! backup in VMWare Fusion.

Tuesday, June 18, 2019 [Tweets] [Favorites]

What Does “Amazon’s Choice” Mean?

Louise Matsakis (via Hacker News):

The company says the award is given to “highly rated, well-priced products available to ship immediately.” But for many categories, dozens of options fit that description. How does Amazon choose its choices? Do humans have a hand in the decisions, or are they governed by an algorithm?


Amazon’s Choice was first introduced for Amazon Echo in 2015. The idea was to create a seamless shopping experience for voice, where consumers can’t see all the options laid out in front of them. If someone told their smartspeaker to “buy new towels,” Amazon could use their order history to figure out what brand they might have in mind. But if it was their first time purchasing the product on Amazon, the speaker needed a default option to suggest.


Amazon’s Choice is also particularly sensitive to the specific words consumers use when searching the site. Adding a word can result in entirely different recommendations.

Nicole Nguyen:

It’s a label automatically awarded to listings by an algorithm based on customer reviews, price, and whether the product is in stock. And those choices Amazon’s software makes aren’t always reliable — in fact, sometimes they’re Amazon-recommended crap.


One of the phrases Amazon highlights from the infant thermometer reviews is “waste your money.” Customers cite inaccurate and “terribly erratic” readings. One reviewer said the thermometer is advertised on Amazon as “good for adding to your baby registry,” despite the product’s instructions to “not use on newborns.”


Perhaps it’s why, for some categories, Amazon has started including “Editorial Recommendations,” based on actual testing by sites like Wirecutter, OutdoorGearLab, and Reviewed, to compensate for “Amazon’s Choice” screwups.

Nick Heer:

If we set aside the galling ethical faults with labelling trash as a “choice” product, this recommendations system cannot be good for Amazon’s reputation. They’re giving the impression that the company stands behind terrible products.

Business Model and Pricing for Unread 2

John Brayton:

I am not ready to announce new capabilities of Unread 2 yet, but I do want to prepare customers for the change in pricing and business model. Like the current shipping version, Unread 2 will be free to download and to try with some functional limits. After trying the app customers will be able to unlock the full version by purchasing a $19.99/year (USD) subscription.


I believe this business model change is necessary in order to provide a solid foundation for Unread’s future development. In addition this will allow me to release new functionality as soon as it is ready. Unread 2 includes capabilities that I wanted to ship over a year ago. I could have done so if I had a good way to be paid for that work. This business model change will provide that flexibility.


EasyGit 1.4

Georgios Verigakis:

EasyGit is your personal Git server on iCloud. Use your favorite git client to pull and push as usual and everything will be stored safely on iCloud, available on all your computers.


All your repositories are private by default and only accessible by you. Need to collaborate with others? Send them an invitation to give them access.


EasyGit is sandboxed and never touches your repository directly. It also never makes an outgoing network connection.

This is a neat idea. It runs a local server that translates the Git protocol commands to CloudKit. Thus, you can get private online hosting without needing an additional account, plus easy sharing with anyone else who has an Apple ID. A potential downside, though, is that mapping the storage in this way is less efficient than accessing a regular Git server over SSH or HTTP.

I’m not crazy about the idea of running a local server that can access repositories without a password. It breaks the normal assumptions about sandbox protections because any app that can make a network connection could access a repo (if it can guess its name) even if it doesn’t have access to the filesystem. But this is more a theoretical vulnerability that someone could exploit if they were trying to target you, not something most users should worry about.

Monday, June 17, 2019 [Tweets] [Favorites]

Genius Accuses Google of Copying Its Lyrics Data

Jon Fingas (via Nick Heer):

Have you found yourself using Google’s lyrics results more than visiting individual lyrics sites? You’re not alone -- and Genius thinks underhanded tactics are involved. The company has accused Google of not only hurting its traffic with its lyrics cards, but of sometimes grabbing Genius’ lyrics verbatim. The evidence is in the apostrophes, Genius said. It purposefully alternated between straight and curved apostrophes as a form of watermarking (they typically spell out “red handed” in Morse code), and there were reportedly over 100 instances where Google’s lyrics included those exact apostrophes.


The lyrics displayed in the information boxes and in Knowledge Panels on Google Search are licensed from a variety of sources and are not scraped from sites on the web. We take data quality and creator rights very seriously, and hold our licensing partners accountable to the terms of our agreement.

See also: Jack Nicas (via Hacker News):

Online-reviews firm Yelp Inc. alleged that Google is breaking a promise it made as part of a 2012 regulatory settlement to not scrape content from certain third-party sites including Yelp, escalating its yearslong battle against the search giant.

Previously: Xerox Scanners and  Photocopiers Randomly Alter Numbers.

Update (2019-06-18): Janko Roettgers (via Joe Rosensteel):

LyricFind said that it had been contacted by Genius in the past, and offered to remove any content that the company took issue with — but that Genius didn’t respond to this offer. The company also aimed to put Genius’ claims in perspective:

“Genius claims, and the WSJ repeated, that there are 100 lyrics from Genius in our database. To put this into perspective, our database currently contains nearly 1.5 million lyrics,” it wrote. “The scale of Genius’ claims is minuscule and clearly not systemic.”

J Herskowitz:

Here’s my uninformed guess on what’s going on with Genius/Google: publishers may be scraping Genius themselves (since they often don’t get lyrics directly from writers) and delivering that data to the lyric licensors themselves.


To help make it clearer where the lyrics come from, we’ll soon include attribution to the third party providing the digital lyrics text. We will continue to take an approach that respects and compensates rights-holders, and ensures that music publishers and songwriters are paid for their work.

Notarizing Command-Line Tools for macOS 10.15

Howard Oakley:

I was taken aback, then, when I heard from WWDC that Catalina was going to apply essentially the same security rules to command tools as it does to apps.


The processes that I then had to go through to sign, harden, package and notarize each of my four command tools were a revelation. They’re detailed step by step in this article and in this PDF.

They demonstrate how badly this common task in development has been cobbled together without any design: it’s not a workflow but an obstacle course. To turn 260 lines of code into an installable and duly notarized 33 KB package took a total of 5 apps (including Xcode itself), 4 command tools which I had to invoke in 6 different commands, 2 different developer certificates (one for the tool, one for the package) and an app-specific password to be able to run altool to submit the tool for notarization.

It’s almost like they don’t want you to distribute Mac software.


Update (2019-06-18): Rosyna Keller:

All that needs to be done is to put all command line tools into one zip archive and notarize that, per the documentation:

No need to create an Info.plist, package, or 4 Request UUIDs.

Rosyna Keller:

Normally, you’d unzip and staple (if you desire) the top level items in the zip, however many there are. Sadly, due to a current limitation, stand-alone Mach-Os can’t be stapled, so that step can be skipped.

If you zipped up a bunch of things that weren’t standalone Mach-Os, then you’d do the staple.


When stand-alone binaries can be stapled, this will be much less confusing.

Howard Oakley:

Now I’m completely lost!

I have four separately-distributed command tools, each of which comes in its own Installer package.

Are you suggesting that I should Zip all 4 installers together and submit as a single notarization, then unZip them for individual distribution?

Leo Natan:

There are more limitations. In my .app bundle, a developer tool, I had an iOS framework bundle for easier access to developers (similar to how Reveal distributes their mobile framework). Apparently, the notarization service is unable to handle such cases.

Update (2019-06-19): Gus Mueller:

Not a very nice way for notarization to randomly fail :/


I FIGURED IT OUT!! (Well somebody on the forums did but I confirmed it).

I was apart of two other teams that didn’t have an accepted agreement. Of course, I wasn’t using those teams, but apparently it mattered!

Once I left those teams (because they were old and at least one I know the owner lost control due to a silly Apple issue with 2FA), I could notarize with ease.

Update (2019-06-21): Howard Oakley:

Although I’m a fan of Apple’s Notary Service, and have only had good experiences with it over that year, and I’m a strong supporter of notarization for improved security, I hate being given no notice, and hate trying to perform critical tasks without any useful documentation. Thankfully, in response to those articles, Rosyna Keller @rosyna has been kind enough to provide more specific advice. Here I’m going to pass that on, as far as I understand it.

Twitterrific 6 for iOS

Ged Maheux:

Today we are proud to release Twitterrific 6.0 for iOS! This is one of the biggest updates of Twitterrific ever, representing over 50 bug fixes and improvements as well as a ton of new features.


For those of you who want to customize things even more, we’ve added a total of five new colorful themes (two light, three dark) plus three more app icons. There’s also a brand new font available that will totally refresh your timelines: San Francisco Compact Rounded. If you’re feeling especially brave and adventurous, you might find even more customization options by poking around in iCloud Drive – but you didn’t hear it from us! 😉

Jason Snell:

The new version adds a bunch of clever features, some of which I use a lot, some of which will appeal to people who are not me. Videos and GIFs can now play (silently) in timelines, a feature that I immediately turned off. In general, Twitterrific displays images and videos better inline, showing them at their native aspect ratios and including both media and quoted tweets together for the first time.

At last I can select the proper GIF from within the compose window. This version adds support for Giphy, the search engine for animated GIFs, which makes Twitterrific a much better meme-propagation tool.

Dr. Drang:

The main reason I haven’t used Twitterrific in the past is that I was put off by its color schemes. I could never identify exactly what I didn’t like about them, but they just didn’t seem right. Now the default light theme, which is what I use almost all the time, is just about perfect, and I’ve settled on a dark theme that works well, too.

Some people are unhappy because version 6 replaces the version 5 app in the store. If you paid for version 5 more than 5 years ago, your purchase was “taken away” and now you see ads unless you pay more. However, given the way the App Store works, the alternative would have caused even worse problems:

Releasing it as a separate app wouldn’t have allowed us to give special considerations to people who purchased v5 which we do. It also would have meant reduced discovery and a host of other problems.

We tried it this way when we went from v 4 to v5. Created it’s own sets of huge problem including lots of unhappy users who were unable to get a “discount” on the new version. Doing it this way many of them still don’t see ads. There’s no best way forward unfortunately.

Sean Heber:

So perhaps you can understand why we are also upset by all this. We tried to give and be lenient for as long as we possibly could and it. did. not. work. In return for years of generosity to the point of self-harm, we are rewarded with attacks, threats, and accusations.

86 free updates over 6-7 years was quite generous, and the original purchase was only $3. The main problem is that people had the expectation that they were paying once forever. This was technically met because you can decline to update the app beyond version 5, and still retain the benefits of the IAP, but many people have auto-updates enabled or would update without understanding the consequences, and the App Store doesn’t let you go back. (At some point, Twitter will probably make a breaking change, and there would be no point to going back, anyway.)

One could also argue that there was an implied understanding—probably shared by both customers and the developer at the time—that version 6 would be a separate app, since that’s what had been done before. Breaking that is not great, but I don’t think it outweighs all the other considerations here.

In any case, forever is just not realistic in a world of changing iOS and service APIs, and a store that doesn’t support offering multiple versions of the same app. No one should promise it or expect it. Going forward, the Iconfactory is setting clearer expectations:

With Twitterrific 6, we opted to display a banner ad and periodically present a reminder to purchase the app but otherwise not restrict access to any features or impose a free trial time period. This means that the app is fully functional without any purchase, but at the cost of interruptions and advertisements - just like some old-school shareware titles from the days of yore.

Buying Twitterrific 6 eliminates the interruptions and the banner ads.

There are monthly ($1) and yearly ($10) subscriptions, or a “one-time” purchase ($30) for those who don’t like subscriptions.


Forever in this case is the entire life of version 6.

Craig Hockenberry:

There has never been a good way to do upgrades on the App Store: all scenarios suck in one way or another.

After a decade you have to realize that it will never come, so you do the best you can.

Sean Heber:

The vast (really vast) majority of Twitterrific users have been using the free version which has had banner ads at the top for years - since 2013. They love Twitterrific 6. A lot of them have never paid us anything directly and probably never will since the ads don’t bother them.

Update (2019-06-18): Matthias Tretter:

While I sympathize with @Twitterrific and shipping a separate App has tons of downsides, it’s technically not correct that you can’t offer discounts that way. For MindNode 4 -> 5 we stored the receipt in a shared app group and offered different IAPs based on the purchase date

It looks like they would have needed to first issue an update to version 5 that saved the receipt into a shared folder, then wait a sufficient amount of time that most users had launched the new version, then ship the version 6 update. It would need to implement a free in-app purchase to convert the old receipt into something that would become part of the new receipt—or else find a way to preserve the old receipt when the user reinstalls or gets a new device. If the user somehow uninstalled version 5 before purchasing the free IAP in version 6, they would be out of luck. So I think it is technically possible, though kind of a kludge.

Friday, June 14, 2019 [Tweets] [Favorites]

Is the Mac’s Future Bright?

Jeff Johnson:

My argument for the downfall of the Mac is pretty simple. The raison d’être of the Mac has always been its unique software. IMO the best software in the biz. The hardware has had its ups and down, at many points underpowered and/or overpriced. But the software was always best.

The business model of the Mac App Store, and the iOSification of the OS, are destroying unique Mac software. As soon as all the software becomes cross-platform and lowest common denominator, Mac loses its whole reason for being.

The question is, does SwiftUI help fix this by making it easier to support multiple platforms, letting you spend your Mac development time on truly Mac-specific features (rather than busywork from UIKit/AppKit differences)? Or does it bake in too many assumptions and limitations—it was originally developed for watch apps, after all—so that the API of the future can’t make good Mac apps (or makes that hard) and we end up with the worst of write-once-run-anywhere? So far I’ve seen evidence pointing both ways.

Jeff Johnson:

All of the worst case scenarios are coming true. For example, when Swift was released many claimed that the writing was on the wall for Objective-C, and some people including me scoffed, but a mere 5 years later we now have Swift-only frameworks. One of which is the future of UI.

Another worst case scenario: You can simply tick a box in Xcode and port an iOS app to Mac. Unimaginable before, but now it’s here.

Mac developers now need to submit apps to Apple and get approval in order to distribute. Again, this was unimaginable in the past, but the worst case scenario is here.

Don’t look at just this WWDC. Though it’s an important WWDC. Compare the Mac in 2019 to the Mac in 2009. Look at everything we’ve lost in those 10 years. Now project that same pattern out another 10 years.

The list goes on and on, and I’m frustrated by many of the same things. On the other hand, this is not the complete picture. There have been good changes and surprises as well, which empower developers and users. On the whole, I think Swift is a very positive development, and it came out of nowhere at a time when it seemed like Apple wasn’t taking the problems with Objective-C seriously enough. Likewise, SwiftUI could turn out to be fabulous, and it arrived sooner—and more ambitious—than most of us thought possible. iCloud is not great yet, but it has certainly improved greatly compared with where Apple’s cloud services were in 2010. So I’m sure one could make quite a long “good” list, as well. Not that this balances out, necessarily. How can one weigh AirPods against sandboxing or macOS Recovery against tccutil?

Mattt Thompson:

I don’t think it’s an exaggeration to say that Apple’s announcements of Catalyst and SwiftUI this year saved macOS from becoming obsolete as a platform.

John Gruber:

Last week felt like what WWDC should be: an Apple developer conference. Off the top of my head, it was the best WWDC for Mac users and developers since 2005, when the Intel transition was announced.

Marco Arment (tweet):

It’s hard to tell when Apple is listening. They speak concisely, infrequently, and only when they’re ready, saying absolutely nothing in the meantime, even when we’re all screaming about a product line as if it’s on fire. They make great progress, but often with courageous losses that never get reversed, so an extended silence because we’re stuck with a change forever is indistinguishable from an extended silence because the fix isn’t ready yet.

But there has clearly been a major shift in direction for the better since early 2017, and they couldn’t be more clear now:

Apple is listening again, they’ve still got it, and the Mac is back.

Jeff Johnson:

If you somehow believe that this WWDC was good for the Mac, consider this:

Apple specifically and publicly rewarded Twitter for discontinuing their Mac app.

The future Apple wants is one in which you don’t write Mac apps, you write apps for all Apple platforms.

Mac is demoted.

Jim Rea:

I respectfully disagree. At recent WWDCs most features were “sorry, iOS only, quite discouraging for this AppKit only developer. This year, at almost every session the story was “all platforms supported”, and significant time was spent demoing on/for Mac. Very exciting.

Jeff Johnson:

The elephant in the room for Mac software is the Mac App Store. At WWDC 2018, we were given the impression that the MAS would improve. […] The reality is that these few selected companies were given special privileges (in direct contradiction to Apple’s own anti-Spotify argument), and nothing else whatsoever changed about the Mac App Store. And again in 2019, nothing at all changed about the Mac App Store.


The existential question for Mac developers is, how do we sell our software to customers and make a sustainable living?

Steve Troughton-Smith:

Re-watching Catalyst sessions, it seems clear that Apple expects devs to offer brand new app SKUs for the Mac App Store w/ no shared purchase, shared IAPs, shared subscriptions.


Catalyst MAS distribution options currently restrict you to: free apps (no quality filter), free apps with in-app purchase & server-side account records (i.e. price erosion), or angry users having to pay twice for a Mac app that you can’t dedicate 50% of your resources to

I don’t know—I guess this is better than setting the expectation that you get all four versions of the app for one low price?


Update (2019-06-17): Leo:

No. They’re turning it into Windows and adding walled garden BS for non-MAS apps.

Colin Cornaby:

I came out of WWDC feeling that things would be different, but better for both iPad and the Mac. Not worse as was feared with Catalyst.

I also think the “what Apple actually means is Catalyst is the way forward” is just the other side of this. In the sort term, we’re all going to have to let go of things to move forward. And someday SwiftUI will be replaced by something else.

Things aren’t worse. Just new.

I’m not thrilled with the state of the Mac, and I have a lot of questions, but I would say that overall I’m more optimistic after WWDC than before it. Now we’ll have to see whether Apple follows through on its rhetoric with its actions.

Desktop Apps Post-Catalyst

Adam Engst:

That’s not to say that Apple is trying to replace the Mac with iOS or remove those unique capabilities of the Mac that make it special. The Mac and macOS remain first-class, vibrant Apple hardware and software platforms. But what we’re not going to see, at least from Apple, are new technologies that set the Mac further apart from its iOS brethren. When it comes to operating systems, it’s safe to say that it’s one for all, and all for Apple.

Chance Miller:

After talking about the new hardware introduced at WWDC, Craig Federighi dove into Apple’s new Project Catalyst, which allows developers to easily port their iPad apps to the Mac. Federighi noted that if a developer simply ticks the “Mac” option in Xcode, they’ll get some degree of “Mac-ification” right off the bat, but that developers can fine tune that for a true Mac experience.

In defense of the first set of Catalyst apps that were released by Apple last year, such as Apple News and Home on the Mac, Federighi said that some of the complaints people voiced were actually simple interface design decisions that the development teams made. Not necessarily because of Project Catalyst framework itself. Over time, Federighi says that Apple has learned how to strike a balance between the best design for these types of media-oriented applications on the Mac:

When we released the first set of apps using Catalyst, some of the concerns that were voiced placed a certain amount of focus on the technology, but that was really design decisions we made. There were pure design decisions that were different design teams pushing the bounds of what is the future of media oriented design. I think we’re finding our balance there, pulling back in some areas. And the underlying technology has improved.

I guess this was a planned talking point because he repeated it to Gruber and Viticci (whom he also told that he—like Tim Cook—mostly uses an iPad). It seemed to make people breathe a sigh of relief, but why? Is it supposed to inspire confidence that Apple could have used the technology to make good Macs apps, but the designers decided not to?

And have you seen the apps in Catalina? The Home app still looks like an iOS port, with iOS-style buttons and navigation in a little overlay on top of the window.

The News app seems pretty much the same as in Mojave. It still doesn’t support multiple windows. The navigation is still confusing. Basic features like text selection, page-up/down, and printing don’t work. It still has the horrible iOS-style interface for configuring channels and notifications. The “Open in Safari” command should have been given a keyboard shortcut but was instead removed.

The new Podcasts app has an iOS-style interface for notifications and depends on a private Catalyst entitlement. It also has to fake some controls. The info pane slides over the content in a strange way. The compact outline view from iTunes is gone.

The Music app uses AppKit but lost the column browser.

Apple Mail remains an AppKit app but is becoming more iOSified.

We expected Catalyst to finally bring parity to the Mac version of Messages, but it didn’t.

Steve Troughton-Smith:

Catalyst is the main event, SwiftUI is more long term! That much is very clear to me now 😄 SwiftUI distracts Catalyst detractors from iOS apps consuming the Mac

John Gruber:

An iOS picker control on the Mac is bad UI. I wouldn’t celebrate a Mac picker control on iOS just because the Mac is more important to me personally. Bad UI is bad UI and Apple’s willingness to ship bad UI is the only truly worrisome thing about Apple today.


Update (2019-06-18): John Gruber:

Catalyst apps on Catalina:

News and Stocks: still can’t open articles in their own windows.

Voice Memos: still can’t open more than one recording at a time.

Home: still looks like this[…]

Dieter Bohn:

It is super disappointing that Apple didn’t put any work into these apps. iOS apps on the Mac are starting to feel like a pretty sweet solution.

I wanted Apple to go hard and show developers the right way to do these. This is not that.

Update (2019-06-19): Chris Masterson:

Took a stab at imagining what creating an Automation in the Home app for macOS could look like if it used native controls instead of the iOS app in a wrapper[…]

For context, here's how it looks today.

Jason Hiner (MacRumors):

In an interview with CNET at WWDC, Apple software chief Craig Federighi confirmed that the four iOS apps for Mac released last year will get major updates based on the new technology in Project Catalyst. But he also revealed that the apps will get new designs to make them more Mac-like.

“They’re getting improvements,” Federighi said. “The underlying technology has matured…Some of that is super low-level stuff. Some people have dissected those apps and realized that they were sort of two halves: an AppKit half and a UIKit half, literally running in different processes. That’s all unified now. This has become much more of a native Mac framework…So automatically, the apps we built last year are upgraded.”


People took that as ‘this feels iOS-y’ and therefore they thought it was a technology thing. Actually, it was a designer preference. So part of [the upgrade] is we said we’ve got to co-evolve with our user base around the aesthetics of the Mac experience. And so we made some adjustments to the apps.


“Wait for the public beta. We’re still tuning everything up. That’s where it gets really good,” Federighi said.

Sign In with Apple

Apple (MacRumors):

Sign In with Apple makes it easy for users to sign in to your apps and websites using their Apple ID. Instead of filling out forms, verifying email addresses, and choosing new passwords, they can use Sign In with Apple to set up an account and start using your app right away.

I’ve been wondering for 10 years or so when Apple was going to do this. This is late to the game, but it’s not too late to make a big difference.

I don’t really want to use it myself, because why insert a man-in-the-middle who can access all my accounts? Why link all my accounts to the same password? Why make logging into other services dependent on Apple’s server working? But, for the regular user who doesn’t even have a password manager, this is great.

All accounts are protected with two-factor authentication for superior security, and Apple will not track users’ activity in your app or website.

This is strangely worded. I would assume they aren’t and can’t track what’s going on in the app or site after login. But are they tracking which sites/services you log into (and how often and from where)? This would be very valuable competitive information. And probably of interest to law enforcement as well. It’s likely no worse than single sign-on using Facebook, Google, or Twitter, though.

Lily Hay Newman:

One important difference: Sign in with Apple integrates seamlessly with Apple's authentication offerings—like Face ID and Touch ID—which provide strong security while also being quick and easy to use. No passwords to remember, no extra accounts to manage and worry about. Other single-sign-on schemes largely haven't added support for biometric authentication yet.

And in an even more dramatic measure, Apple's universal login will let you hide your email address from third-party services. Unlike Facebook and Google, Apple will randomly generate an email address on your behalf, which then forwards communications from companies and institutions to your real address.

Sarah Perez:

If I let Apple make up a random email address for me, does Apple now have the ability to read my email?

No. For those who want a randomized email address, Apple offers a private email relay service. That means it’s only routing emails to your personal inbox. It’s not hosting them.

But Apple absolutely can read any e-mail sent by the service that you’re logging into, since it’s sending the message to the relay address. And Apple has historically had aggressive server-side spam filtering that deletes some good messages before you can even see them. Does this make e-mail accounts hosted with other providers subject to that, too?

Ben Thompson (Hacker News):

This was certainly an interesting announcement in its own right: identity management is one of the single most powerful tools in technology. Owning identity was and is a critical part of Microsoft’s dominance in enterprise, and the same could be said of Facebook in particular in the consumer space. Apple making a similar push — or even simply weakening the position of others — is noteworthy.

Manton Reece:

People often ask me how we “win” against the big social networks, bringing more open platforms and indie blogging to everyone. It happens in small steps, not overnight. Sign In with Apple can be one of those small steps. Anything that moves people away from signing in with Facebook and Twitter is part of the solution.

Eric Young:

‘Sign on with Apple’ identity management system - is quite possibly the biggest announcement from Apple in years

Darrell Etherington (Hacker News):

Apple’s truly transforming into a privacy-as-a-service company, which shows in the way that it’s implementing both the new single sign-on account service, as well as its camera and location services updates in iOS 13. The SSO play is especially clever, because it includes a mechanism that will allow developers to still have the relevant info they need to maintain a direct relationship with their users – provided users willingly sign-up to have that relationship, but opting in to either or both name and email sharing.

Laurie Voss:

This is amazing chess by Apple, positioning them as pro-privacy while simultaneously making themselves a major aggregator of behavior, identity and customer relationships. Apple is pro-privacy... as long as you trust Apple with all your data.

Sean Hollister (MacRumors):

But Apple doesn’t seem to be content just selling its single sign-on as a convenient, pro-privacy option. As iOS developer Ben Sandofsky spotted today, the company has unilaterally decided that if any app offers Google, Facebook, or other third-party sign-on options, it’ll need to offer Apple’s sign-on too.


Plus, there’s a genuine argument to be made that offering Apple single sign-in is doing the right thing by users — who will no doubt already be logged into their own iPhones and iPads, and are one thumbprint or glance away from adding an extra level of security to that sign-in with a biometric Touch ID or Face ID login.


On the other hand, this is a terrifying example of the power Apple wields over developers. Apple just announced this feature, and now every developer that got comfy with Facebook, Google, etc. is going to have to add (and find space to add) a button and the underlying code at some undetermined point later this year, or else abandon single sign-on entirely, or risk their livelihood getting cut off?

Lauren Goode:

That doesn’t mean the end user has to use Apple sign-on. But it means it has to be there in sign on screen of the app. And we have yet to see how aggressively this is pushed.

And if you do sign up for an app or service using Apple sign-on and then you try to access that account from another device (like an Android phone) or non-Apple browser (like Chrome) you will be rerouted back to to sign in.

Will it be pushed as aggressively as, say, iCloud Keychain is when you’re trying to use another password manager? Maybe. And that would be annoying.

Ricky Mondello:

My WWDC session, What’s New in Authentication, is now available to watch anytime!

I cover Sign in with Apple, iPad Apps for Mac, transcending Password AutoFill with one tap sign-in, Safari 13’s weak password warnings, SSO, WebAuthn, and more!

Aaron Parecki (tweet):

Thankfully, Apple adopted the existing open standards OAuth 2.0 and OpenID Connect to use as the foundation for their new API. While they don’t explicitly call out OAuth or OIDC in their documentation, they use all the same terminology and API calls. This means if you’re familiar with these technologies, you should have no trouble using Sign in with Apple right away!

Let’s walk through building a short sample application that can leverage Apple’s new API to sign users in.

Zack Whittaker (Hacker News):

app developers will have to switch on SPF for their outgoing email — to prevent others spoofing their emails — before they can use sign-in... which is mandatory.

Eric Ravenscraft:

It’s an appealing promise, but it’s not flawless. The biggest drawback to SSO — whether it comes from Apple or someone else — is that if there’s a failure in the way you sign in to your primary account, then it can make all your accounts vulnerable. Someone with access to your Facebook account could, for example, also get in to your Spotify account. It’s like putting all your eggs in one basket. Security for your primary SSO account has to be as good or better than all of the other accounts you use it to sign in to.

Nameless Wanderer:

This is the kind of stuff I’m scared of with Apple login. I entered all details perfectly on the mac yet it couldn’t verify me. I needed an iPad to finally login to my account.

Dan Masters:

Very valid concern. Apple is notorious for their subpar account management & backend – from repeatedly requiring re-authentication in macOS/iOS, to somehow always forgetting “Remember Me”, to using their own proprietary network-based 2FA rather than a time-based token system…


Update (2019-06-19): Luc P. Beaudoin:

I totally agree with Apple requiring their login to be at the top. Nudge theory — for the good of users who know no better, ie the majority. However, law makers, being part of the majority, might disagree

How “Find My” Works

Andy Greenberg (tweet, Hacker News, MacRumors):

In upcoming versions of iOS and macOS, the new Find My feature will broadcast Bluetooth signals from Apple devices even when they’re offline, allowing nearby Apple devices to relay their location to the cloud. That should help you locate your stolen laptop even when it’s sleeping in a thief’s bag. And it turns out that Apple’s elaborate encryption scheme is also designed not only to prevent interlopers from identifying or tracking an iDevice from its Bluetooth signal, but also to keep Apple itself from learning device locations, even as it allows you to pinpoint yours.


The solution to that paradox, it turns out, is a trick that requires you to own at least two Apple devices. Each one emits a constantly changing key that nearby Apple devices use to encrypt and upload your geolocation data, such that only the other Apple device you own possesses the key to decrypt those locations.


Short summary:

  1. At setup, Find My generates private key shared to all your Apple devices.
  2. The private key generates a perpetual sequence of public keys. These change (iterates to the next) “frequently”.
  3. The rotating public key is shared across all (including other people’s) Apple devices via Bluetooth and can even do this when it’s off.
  4. The shared scheme pings to Apple’s central system and uploads A. hashes of the public keys in the area and B. the location.
  5. When you try to find a device you send your hashed public key to Apples server and they return the last picked up location (encrypted). (You thus need at least 2 Apple devices, one to find the other. Also, they don’t say how the previously iterated public keys are remembered.)

Matthew Green (Hacker News):

The idea of the new system is to turn Apple’s existing network of iPhones into a massive crowdsourced location tracking system. Every active iPhone will continuously monitor for BLE beacon messages that might be coming from a lost device. When it picks up one of these signals, the participating phone tags the data with its own current GPS location; then it sends the whole package up to Apple’s servers.


(It’s worth mentioning that Apple didn’t invent this idea. In fact, companies like Tile have been doing this for quite a while. And yes, they should probably be worried.)


The good news is that Apple claims that their system actually does provide strong privacy, and that it accomplishes this using clever cryptography. But as is typical, they’ve declined to give out the details how they’re going to do it. Andy Greenberg talked me through an incomplete technical description that Apple provided to Wired, so that provides many hints. Unfortunately, what Apple provided still leaves huge gaps. It’s into those gaps that I’m going to fill in my best guess for what Apple is actually doing.


The nasty thing about this problem setting is that, with many weird edge cases, there just isn’t a perfect solution. For example, what if Timmy is evil and wants to make Lassie reveal her location to Apple? What if Old Man Smithers tries to kidnap Lassie?

Thursday, June 13, 2019 [Tweets] [Favorites]

Rejected for Opening the Application Scripts Folder

Jesse Grosjean (tweet):

App Store review is rejecting the latest TaskPaper update because of the “Open Scripts Folder” button in TaskPaper’s preferences.


Is there some other way that apps are doing this now?

Specifically TaskPaper wants to be able to run user scripts so that it can place those scripts in the Commands pallet, and run them when selected.

To review, sandboxing prevents an app from running scripts (that talk to other apps) unless they are placed in this special folder. And the folder is hidden in a deep folder hierarchy, which is inside the invisible-by-default Library folder. Apparently, apps are no longer allowed to even help the customer find this folder. AppleScript is one of the crown jewels of macOS, but recent versions and policies actively prevent people from using it.


Update (2019-06-13): Jesse Grosjean:

Just an hour ago (after going back and forth a few times for clarification) I was told that Taskpaper was going back into review. So it seems like this IS ok, just wasn’t understood.

Jesse Grosjean:

And now a few minutes later it’s approved for release. So good ending without too much delay, just a bit stressful since you never know how long it will take or how it will end.

Meet the New Dropbox

Emil Protalinski:

Dropbox has doubled the storage space for its Plus users from 1TB to 2TB, added Rewind and Smart Sync features, and increased the price from $10 per month to $12 per month. The company has also increased the storage for its Professional plan from 2TB to 3TB and added a watermarking feature. Additionally, Dropbox will be increasing its Business plans from 3TB to 5TB and extended file version history from 120 days to 180 days.

Tim Hardwick:

Dropbox on Tuesday announced a new client for Mac and Windows that seeks to make the cloud storage service a “meta-platform” for collaborative tools in the productivity workspace.

I’ve been using iCloud Drive more and Dropbox less these days, and to avoid the CPU use problems I quit Dropbox when I’m not using it. These days my main use is to share folders with family members, e.g. for photos and 1Password. iCloud Drive will be getting shared folders in macOS 10.15, but as far as I’m aware there’s no way to actually use them from the iOS version of 1Password.

Jason Snell:

Apple: We’ve got iCloud folder sharing coming!

Me: Eh, Dropbox works really well for me and you’re still missing some stuff.

Dropbox: Enterprise collaboration! Google Docs and Slack inside a Dropbox!

Me: Uh, you were saying, Apple?

Ben Sandofsky:

Dropbox now uses over half a gig of memory. Let’s peak into its frameworks folder.

Nick Heer:

My only two requests for this version of Dropbox were for it to use as much memory as possible and somehow also be a web browser, and boy did they deliver. Thanks, Dropbox.

Ken Hayes:

Cheeky of @dropbox to raise subscription cost >20% and double capacity, though I only used 15% of it. Price gap is too large from a $0 useless tier to $120/yr “rolls royce” Plus. Why not do 500 Gb for $50/yr tier and pick up way more prosumers? Now evaluating alternatives...

They’ve got to lose less that 1/6th (~17%) of the current user base to break even on such a price hike. What’s dumb is that I’m a satisfied user - and would pay $99 forever - but now I’m going to take the effort to look for a better deal - and probably cancel for good.

John Price:

So @Dropbox just casually drops an email to tell me they’re raising the price by 54%. […] There is no plan smaller than the 54% increase so I have no choice. Worse customer treatment than an insurance company or a telco.


Update (2019-06-13): Yashendra Shukla:

It’s incredible how Dropbox went from the leanest native cross platform software to the most expensive bloated crap.

Nick Heer:

I suppose Dropbox’s new client is indicative of their increased emphasis on enterprise customers. It sure seems like they’re more eager to compete with Slack and Microsoft than they are to provide syncing tools to individual customers. I’ll respond accordingly by making sure no files or apps I rely upon are dependent on Dropbox.

John Gruber (tweet):

I don’t want any of this. All I want from Dropbox is a folder that syncs perfectly across my devices and allows sharing with friends and colleagues. That’s it: a folder that syncs with sharing. And that’s what Dropbox was.

Federico Viticci:

Yes I’m aware that Dropbox offers a lot more features than iCloud Drive. I pay for it! And I hope Apple copies some of them.

But I mostly need a service that syncs well, with sub-folders I can share with other people. That’s it.


Not to mention that iCloud is now using the same native On-Demand Files API on Windows now, making it a first class citizen on macOS, iOS/iPadOS, and Windows 10!

Update (2019-06-14): @braz:

[When] I switched to Catalina, and OneDrive didn’t work, I shifted a lot of my ~1.5TB of cloud files to iCloud.

Rock solid, easy syncing. Really looking forward to folder sharing.

See also: Accidental Tech Podcast.

Mike Rundle:

Dropbox is in a bad place. They have to expand beyond just syncing/sharing to prove they’re a growing, public software company, but if they alienate long-time users along the way they’ll erode their core userbase. Not sure what path they can take.

Update (2019-06-17): Curtis Herbert:

Your product either dies a hero or lives long enough to alienate its early fans as you start chasing that sweet sweet B2B revenue.

Russell Ivanovic:

Watching people leaving DropBox for iCloud Drive like

I’ve tried it a few times and the opaqueness of the syncing is incredibly frustrating. I’ve tried Google Drive and their desktop app sucks even worse.

I’m all for lean clean apps. But they have to actually work seamlessly

Geoff Knauth:

Beware file loss when moving files/folders from iCloud to Dropbox. (I think this is Apple’s responsibility.)

Update (2019-06-25): Tony Arnold:

What catastrophic mismanagement happened at Dropbox for it to get to the point where the desktop app component takes more CPU than Xcode?

And even when it recovers after a sync, it continues to slow down every other process.

We’re a long way from 2012.

Legal at Apple Scale

Juli Clover:

Establishing a billion dollar search engine deal with Google took Apple more than four months, according to new details shared today by former Apple lawyer Bruce Sewell.


Sewell says that in his time at Apple, he had 900 people working under him. 600 of those were in the law group and included lawyers and paralegals.

In just one of the Samsung lawsuits, Apple had 350 people billing time on that case at any given moment, most of which were outside counsel because it’s impossible for Apple to handle cases of that magnitude with an internal team. “And this was just one of them. There were seven of them going on,” said Sewell.

There were seven or eight billion documents to review, and collectively, law firms billed Apple 280,000 hours. Sewell says his budget was “just shy of a billion dollars a year.”

I wonder whether Apple is looking at ways to protect the privacy of the customers it’s sending to Google search. Right now, services revenue seems to trump privacy.

Wednesday, June 12, 2019 [Tweets] [Favorites]

Feedback Assistant Replaces Bug Reporter


You can now submit developer feedback and file bug reports to Apple using the native Feedback Assistant app for iOS and Mac, or the Feedback Assistant website. When you file a bug, you’ll receive a Feedback ID to track the bug within the app or on the website.

The native app definitely makes submitting easier. And there are more subcategories to classify your bug and fewer text fields that you need to fill in, which I think is good.

But the database migration was a disaster. All my old bugs—I’m assuming because there’s no obvious way to check—are there but were assigned essentially the same date. So there’s no way to sort by when I filed them. They all show up as when they were migrated. This, combined with the poor search, makes it nearly impossible to find anything. I was by no means a prolific Radar filer, and my bug list is upwards of 20 pages long on a 30-inch display.

Partly, this is because the list includes—and shows as Open—some bugs that were marked as closed in the old system. Fortunately, in recent years I have been saving local copies of my bugs in OmniOutliner, so I have a partial local index to help find things.

The bug ID numbers have also all changed, though the old ones are available appended to the titles.

Lastly, the bugs are almost unreadable because it looks like all the line breaks were removed from the Description field.

Lily Ballard:

Wow, RadarWeb is gone. It’s now Feedback Assistant. Unfortunately it’s not showing me my old radars.

I feel like maybe they should have waited until after the big developer conference before doing something that potentially screws with developers’ ability to see old radars.

Russell Ivanovic:

The new Apple Feedback site is magic. I apparently posted all my bugs on the 23rd of April 2019 at 9.04pm and engineers instantly responded in the same minute.

Peter Steinberger:

Feedback Assistant imported all old radars and completely broke the ordering of my radars. They list the creation date as April 15-17, mostly :/

Kyle Seth Gray:

Apple now tells you how and why a radar was closed. Duplicates are now referred to as similar issues, and it will actually tell you if a fix has been shipped

Avi Drissman:

Feedback Assistant fails when I try to submit an issue with backtraces.


Moral of the story: do not put backtraces in your description. Put them in text files and attach them.

Peter Steinberger:

Feedback Assistant is worse than the open source tools we had before.

Steve Troughton-Smith:

The friction removed by having a native, always-accessible Radar app in iOS and macOS means it is so easy to submit feedback now — almost as easy as typing them into Notes for later. I think I’ve filed more Radars this past week than in the past year

Update (2019-06-13): Patrick Wardle:

How does one submit a bug report if Apple’s bug reporter itself is (or appears to be) broken? 🤔

1st report resulted in blank “Untitled” event being filed and now, report #2 is just spinning on “Sending feedback to Apple” 😥

…maybe this is why ppl post 0days to Twitter 🤣

Update (2019-06-17): JP Simard:

Well that’s it, I give up. Feedback Assistant is just throwing away all my bug reports.

Update (2019-06-18): Damien Petrilli:

You don’t know if the website is loaded or not, no feedback when you click a button. It doesn’t plain work.

How can this crap been shipped. How can any manager at Apple say “this is ok, go for it”.

Feedbacks website just doesn’t work on the web at all. You get multiple text box to add a comment, none of them works.

Update (2019-06-19): Daniel Jalkut:

With apologies to all the hardworking engineers at Apple, the new Feedback Assistant will result in less collaboration from 3rd party developers in fixing bugs in Apple software. My response to requests to update status on bugs all look something like this now.

GarageSale Pro Subscriptions

Ilja A. Iwas (via tweet):

eBay’s strategy has changed a lot since we first introduced GarageSale in 2004. There are now less private sellers on eBay, which were GarageSale’s original target audience. At the same time the share of professional and semi-professional seller went up.

As a result, we have now less, but more demanding GarageSale users. To keep GarageSale a viable business, we are introducing a dual license model with GarageSale 8:

If you are listing less than 50 items on eBay per month and don’t need the ‘Synching’ feature, you can purchase or upgrade to GarageSale 8 for a one time fee of $39.99 (new license) or $19.99 (upgrade fee). (The upgrade will be free if you purchased your GarageSale 7 license after April 1st, 2018.

If you are listing more than 50 items per month, you’ll need a GarageSale Pro subscription for $14.99/month or $149.99/year[…]

It’s a huge price increase for the pro customers, but—and I guess this is easy for me to say as one of the casual users—it seems reasonable for a specialized professional product like this. If you’re using it to run a store, it’s saving you tons of time each year, and you’re already paying a lot more to other companies.


I am, like many others, not a big fan of software subscription, though. I understand and accept that it can make sense in certain scenarios, but I find it a matter of respect towards clients to offer it as a choice. The moment I feel blackmailed into a subscription, I am out… and my understanding is that I am not alone with this attitude.

Let me repeat: I do understand your needs to change to a more predictable income. Or higher income per license, especially from commercial users. And I would be more than happy to support future development as well as current support by buying a Pro license that is priced higher than the basic or current version of GS, if you give me that choice. Right now, all you offer is: license, but only up to 50 listings per month. That wouldn’t work for me (I am above that level). Or, buy the subscription… which I don’t want. That’s why I feel blackmailed. A piece of software, that I use daily, and love to use, suddenly no longer offers me a license model to feel comfortable with.

That’s why I am an ex-Adobe user, an ex-Ulysses user, an ex-TextExpander user and likely an ex-1Password user soon. I am still a CaptureOne user and an Office 365 subscriber, because those two offer me a choice (and regarding MS Office the subscription made sense in my case… I am not a subscription hater per se).

I think there’s something to this—people who are willing to pay more but feel boxed in by subscriptions—but I’m not sure what the answer is. I assume that the reason subscriptions are usually accompanied by price increases is that a sizable number of customers drop out when that’s the only choice. But if you start with the baseline of a subscription business model and want to let some users opt for a perpetual license, clearly it has to be priced even higher than the yearly subscription or you’ll lose most of the subscribers. Of course, you could skip the subscription option and just raise the price. But then you end up charging the same price for someone who’s only selling 51 items or only during the summer as for someone selling thousands of items throughout a year. It’s hard.

David Smith (tweet):

One of the main reasons I have stayed away from them so far is that there is always something tricky about making subscriptions feel good for customers. One of the reasons so many businesses like them is that you set it up once and then the customer doesn’t have to continue taking action to keep paying you. Which is great as long as the user wants to keep paying you, but super sketchy if they don’t.

There is a concept in user interface design called the Principle of Least Surprise, where you want to design systems in such a way that they surprise their users least. I think a similar concept applies to subscription pricing. The ideal (from a user friendliness perspective, not best business perspective) system for customer subscriptions should never surprise the customer with a charge. The customer should always be happy to see a charge appear on their credit card.

In other words, their subscription payments should always be Intentional.

Joe Cieplinski:

As far as being able to cancel your subscription right from the notification itself is concerned, I think this sounds better on paper than it would be in practice. People don’t read their notifications carefully. I see a ton of people accidentally unsubscribing to apps, then getting super confused when their apps no longer work. This would lead to increased support load for everyone. Tapping on the notification should take you directly to the subscriptions page on the App Store, however.

Previously: Productivity Apps and Subscription Pricing.

Google Chrome: Open Source + DRM

Cory Doctorow:

Mako was focused on the ways that “software as a service” subverted free/open software licenses, but just as pernicious is “digital rights management” (DRM), which is afforded a special kind of legal protection under Section 1201 of the Digital Millennium Copyright Act: under this rule, it’s illegal to reverse-engineer and re-implement code that has some connection with restricting access to copyrighted works. That means that once a product or service has a skin of DRM around it, the company that controls that DRM also controls who can make an interoperable product.


Prior to 2017, all W3C standards were free for anyone to implement, allowing free/open browser developers to create their own rivals to the big companies’ offerings. But now, a key W3C standard requires a proprietary component to be functional, and that component is under Google’s control, and the company will not authorize free/open source developers to use that component.


Wait for the next shoe to drop: DMCA 1201 is so badly drafted that it exposes security researchers to criminal and civil penalties if they reveal defects in DRM systems.

Jason Koebler:

The [government] move is a landmark win for the “right to repair” movement; essentially, the federal government has ruled that consumers and repair professionals have the right to legally hack the firmware of “lawfully acquired” devices for the “maintenance” and “repair” of that device. Previously, it was legal to hack tractor firmware for the purposes of repair; it is now legal to hack many consumer electronics.

Specifically, it allows breaking digital rights management (DRM) and embedded software locks for “the maintenance of a device or system … in order to make it work in accordance with its original specifications” or for “the repair of a device or system … to a state of working in accordance with its original specifications.”


Monday, June 10, 2019 [Tweets] [Favorites]

Soulver 3 for Mac


Soulver 3 for Mac is now available. It has 50+ new features, including dark mode, a new user interface, subtotals and calendar calculations. Virtually everything you’ve been asking for. We hope you like it. Download a free 30-day trial now from

The list of new features is here. I use Soulver all the time. It’s the kind of app you really need to try in order to appreciate it. Technically, you can do many of these things in Calculator or Excel or a Python REPL or WolframAlpha. But Soulver makes the process so much easier and faster.

There does not seem to be any upgrade pricing, but it’s currently on sale for $20 instead of $30.


At the moment Soulver 3 is only available directly from us. You can purchase a license directly inside Soulver, or online through Paddle. You can still get Soulver 2 on the Mac App Store.


Right now Soulver 3 is only available on macOS. You can still download Soulver 2 for iOS on the App Store.


Note that it’s not a subscription purchase, so it’s a pretty great deal. Historically we’ve also been pretty generous in terms of free updates. Soulver 1 had five years of free updates, and Soulver 2 had nine years of free updates.

Update (2019-06-13): Marc Edwards:

Soulver 3 app icon.

John Voorhees:

With the update to Soulver, line references have a keyboard shortcut too. ⌘L displays numbers next to each line of a sheet that has a result in the answer column. Type the number corresponding to the line you want and Soulver will drop a reference to it at the cursor.

Soulver also includes powerful automation tools. There's a command line interface that can be added from the Soulver 3 menu, URL schemes for calculating values, an Automator action for evaluating text for calculations, and a Service that can be used to calculate highlighted text and copy the result, append the result to the highlighted text, or replace the highlighted text with the result.

Supporting the iPhone SE Resolution

Kuba Suder:

So, you’d like to drop support for iPhone SE because the screen is “tiny”? Apparently there are still as many active iPhones SE out there as iPhones X + XS + XS Max combined… 😲

iOS 13 drops support for iPhone 6, but it still supports iPhone SE. And iPhone 6s, 7, and 8 use the iPhone SE resolution when Display Zoom is enabled. Even if Apple introduces no new phones at these sizes, which I doubt, it will be a while before no one is using this resolution.

Update (2019-06-11): Joe Groff:

Also, the iPod Touch was just refreshed mere weeks ago, with the same resolution!

Meek Geek:

Apple is still manufacturing new iPhone 6s in India for the local market. The SE resolution isn’t going away.

Update (2019-06-13): Kuba Suder:

FYI, these stats seem to change a lot from week to week, when I posted this iPhone SE had ~7%, and now it’s ~17%… It’s probably not 17% on average, but I think it’s safe to assume it’s enough to make sure your app works on it.

SF Symbols


SF Symbols provides a set of over 1,500 consistent, highly configurable symbols you can use in your app. Apple designed SF Symbols to integrate seamlessly with the San Francisco system font, so the symbols automatically ensure optical vertical alignment with text for all weights and sizes. SF Symbols are available in a wide range of weights and scales to help you create adaptable designs.


SF Symbols come in nine weights—from ultralight to black—each of which corresponds to a weight of the San Francisco system font. This correspondence lets you achieve precise weight matching between symbols and adjacent text, while supporting flexibility for different sizes and contexts.

Ryan Jones:

These SF Symbols are so so clean.

Eli Schiff:

One thing that no one has noticed is that these icons for SF Symbols have “Ink Traps” since they’ll be used for print and not UI.

And if they’re used for UI, that’s a major major failure.

Marc Edwards:

If this is the quality we can expect, it’s going to be difficult to recommend SF Symbols for anything other than rough prototypes.

I believe the icons looking blurry is inherent in the technique, and near impossible to work around, even for icons we make ourselves. I guess I’m sticking with PNGs for everything.

It’s worth noting those issues are extremely easy to see from a normal viewing distance on device.

Joshua Emmons:

206 – Introducing SF Symbols” is unexpectedly deep. Apple baked a ton of thought and flexibility into symbols. Defintiely go back and check it out if you’ve missed it.

Wil Shipley:

There’s a macOS app for SF Symbols but...also macOS is the only platform where SF Symbols aren’t supported.

That is...poor.

Mark Munz:

As Mac developer, I have to write UIKit-based app just to get SF Symbols on Mac (even with SwiftUI)? Apparently.

With SF Symbols, no matter what they say, Apple is basically giving 🖕to AppKit.

Native (AppKit) Apps will now be second-class on their own platform. 😞

Jeff Nadeau:

AppKit already caches raster renditions of vector images generically. It would be great to expose symbols on NSImage, but there are some prerequisites to work out before that can happen.

Benjamin Mayo:

SF Symbols has some frustratingly restrictive rules for certain glyphs. E.G Safari uses the open book icon to mean ‘Bookmarks’, but Apple won’t let a third-party app use it to mean anything other than ‘Apple Books’.

Benjamin Mayo:

Every phone icon in the SF Symbols set is reserved to exclusively mean Apple’s Phone app. All envelopes are for Apple Mail only. Seems dumb.

Austin Tooley:

Weird. In a session earlier today an Apple engineer used the envelope symbol for a login UI.

Kyle Howells:

No one is actually going to pay any attention to these usage restrictions. Apple itself didn’t in the SwiftUI demo.

Using the “video.fill” symbol (which says only to use for FaceTime) to show the demo conference room had video conferencing support.

Wil Shipley:

Apple: “Here are 𝘧𝘪𝘧𝘵𝘦𝘦𝘯 different symbols all of which may 𝗼𝗻𝗹𝘆 refer to Apple’s Phone app. Why fifteen instead of just one? Because what you want in buttons that refer to a single app is 𝘷𝘢𝘳𝘪𝘦𝘵𝘺.”

“If you need to illustrate the concept of a phone but not the ‘Phone’ app, please use any of a hundred free icons on that look very much like these but are slightly different and users won’t know the difference because 15 varieties come with the system.”

Chuck Toporek:

Thing I tried: Many of the SF Symbols are also Unicode, which means you can target them on the web, with font-family: -apple-system; in your CSS. So cool. :)

Howard Oakley:

Although these look the business, they take us into a morass which is almost worse than not having them at all.

JP Simard:

That was quick! A Swift Package providing type-safe accessors to iOS 13’s SF System images 🚀

Matt Diephouse:

I really hope that Apple revisits the SFSymbols API and chooses to provide compile-time constants instead of just strings.

That would:

1. Let Apple use @available to add/deprecate symbols
2. Aid discoverability of icons
3. Let the compiler catch typos

Those seem like big wins.

Update (2019-06-12): Elliott Pogue:

The clipping is definitely a bug. Re: the pixel grid... I don’t think Apple gives a high priority to pixel precision anymore. For instance, my 2018 15” MBP was set to 1680x1050 by default, not the true 2x 1440x900.

Marc Edwards:

Yep, and that’s such a poor choice for the default display scaling. Combined with SF Symbols, you’re getting double damage. With Project Catalyst, triple. I don’t understand these choices. It makes their hardware look terrible.

Marc Edwards:

A very quick comparison GIF with some pixel snapped icons. It worries me that Apple are going to trash the quality of their icons across all their platforms in a single move.

Update (2019-06-18): Marc Edwards:

iOS 13 beta 2 didn’t improve SF Symbol quality. I think there’s two separate issues: The clipping, which is fixable. And, the blurriness, which is not fixable while continuing to use the same technique.


There’s also a third issue: The method required for authoring icons is incredibly manual, requiring a file per icon. That’s just not how anyone building a library of icons for an app or design system should be working. Everything should be as automated as possible.


They’re built to a 100pt font grid that doesn’t match any pixel size I am aware of.

Marc Edwards:

Yep, that that undoes a lot of the good work of the hardware teams, plus these things are cumulative. SF Symbols + Project Catalyst + MacBook Pro display scaling means a vector icon is rendered with fractional offsets, bitmap scaled by 77%, then bitmap scaled again.

Bringing Back Color and Depth

Louie Mantia Jr.:

When I worked on iTunes 10, Steve requested to remove all icons from the source list (sidebar). I created shaded monochrome icons as a last-ditch effort to save them. The request to remove icons inadvertently shifted the sidebar icon style on a system level for the next decade.

In macOS 10.15, colored sidebar icons are back, thankfully, but only in the media apps (Music, News, Podcasts, Apple TV). The explanation given was that these apps have content that can stand up to colored icons, whereas apps like Finder and Mail do not. I don’t think this distinction makes a whole lot of sense.

Meanwhile, Safari continues to have colored favicons in its sidebar, but grouped under monochrome folder icons. And Xcode never stopped using color, and its folders are yellow instead of blue.

Bill Heyman:

Don’t worry, the pendulum will swing back soon. There’s a happy medium between ornate skeumorphism and minimal flat.

Louie Mantia Jr.:

“Don’t worry, the pendulum will swing back soon” is something I’ve verifiably heard for the last 6 years.

The only way we’ll get it back is if designers are brave enough to do it. It’s not going to happen on its own.

Previously: on macOS 10.15.

Thursday, June 6, 2019 [Tweets] [Favorites]

Security & Privacy in macOS 10.15 Beta

Advances in macOS Security:

We are on a journey to continuously improve macOS security, with a particular focus on preventing malware and protecting user data. Join us on the next step and learn more about what's new in Gatekeeper—for keeping malware out of macOS—as well as new protections that help keep users' data and activity under their control.

Kyle Howells:

Apple still refuses to put an “Allow” button on the macOS security prompts I can see.

Thomas Tempelmann:

And still no option to tell macOS that you trust an app accessing everything at once, instead of being asked for every detail separately? It’s already a pain with apps like iClip and Timing to be acknowledge them using AppleEvents on every app you touch.

Zack Whittaker (tweet):

But the protections [in macOS 10.14] weren’t very good. Those ‘allow’ boxes can be subverted with a maliciously manufactured click.


Wardle, who revealed the zero-day flaw at his conference Objective By The Sea in Monaco on Sunday, said the bug stems from an undocumented whitelist of approved macOS apps that are allowed to create synthetic clicks to prevent them from breaking.

Felix Schwarz:

Just when you thought kext development couldn’t get any more frustrating… a “New Feature” arrives.

DriverKit (Hacker News):

The DriverKit framework provides C++ classes for IO services, device matching, memory descriptors, and dispatch queues. It also defines IO-appropriate types for numbers, collections, strings, and other common types. You use these with family-specific driver frameworks like USBDriverKit and HIDDriverKit.

Felix Schwarz:

Wow! macOS #Catalina adds new frameworks to allow drivers to run IN USER SPACE & manage them via “SystemExtensions”!

More on macOS Catalina #DriverKit drivers:

- packaged alongside the app like modern app extensions.
- removed from the system when the host app is
- (possibly) can be dynamically loaded & unloaded them as needed using OSSystemExtensionRequests

In #SOTU, Apple just announced that “in a future #macOS release”, KEXTs targeting driver categories covered by #DriverKit will no longer work and encouraged developers to adopt #DriverKit now.

Jeff Johnson:

A lot of things bothered me yesterday, but I think the one thing that bothered me the most was 10.15 locking down the Documents folder.

In the past, Documents was the place that apps were supposed to use. Now it’s forbidden ground.

The Mac is dying from permission dialogs.

All About Notarization:

Notarization is all about identifying and blocking malicious Mac software prior to distribution, without requiring App Review or the Mac App Store. Introduced last year and already widely adopted by Mac app developers, this is your opportunity to take an in depth tour of Notarization workflows and find out what's new with the Notarization service.

Mark Munz (Rich Trouton):

‘All About Notarization was somewhat disappointing.

They kind of quickly explained Sparkle.framework issue. 🤷‍♂️

But looks like zero workflow improvements to automation & notarization. 😞

Jeff Johnson:

For Mac App Store apps, I suspect that Catalina will be a very easy update. Not many changes as far as I can tell.

For non-sandboxed apps on the other hand... I pray for you.

Steve Troughton-Smith:

Good news: macOS Catalina still respects your System Integrity Protection setting and lets you write to to the hard disk root if SIP is off


Update (2019-06-10): Jeff Johnson:

Wait, according to the “Advances in macOS Security” video (9:30 mark), there’s no more first launch Gatekeeper dialog for standalone executables on Catalina?

Howard Oakley:

This changes again as of 1 June 2019 with respect to Catalina, but not (as far as we know) in Mojave. From that date onwards, all newly-signed apps and other executable code which undergo first run checks (because of a quarantine flag) are required to have been notarized. You can still run apps which haven’t been notarized or even remain unsigned in Catalina, though.

Update (2019-06-11): Rosyna Keller:

macOS never had a first launch prompt for anything not going through LaunchServices before. Catalina is the first to add it for quarantined files not going through LaunchServices.

Daniel Jalkut:

OMG tccutil in Catalina actually accepts the bundle ID it has claimed to accept for years:

% tccutil reset AppleEvents

successfully reset AppleEvents approval status for

Update (2019-06-18): SentinelOne:

10.15 sees some major developments that will affect both the enterprise and developers of security solutions. In this post, we round up what’s been announced so far and explain how it could affect you.

Backing Up macOS 10.15 Beta

Dave Nanian:

FYI, anyone using Catalina - SuperDuper does NOT work properly. Please don’t rely on it under Catalina until we’ve managed to figure out why, or if it’s possible.

Mike Bombich:

In the Finder you’ll only see one volume that represents your startup disk and it will appear as if everything is on that single volume. In reality, the startup disk that you see in the Finder is the read-only system volume and doesn’t have any of your data on it; the “Data” volume is separate and hidden.


Allow me to be the first to say it: stick a fork in it, HFS is done. HFS simply won’t work for making a backup of a Catalina system volume, so in the near future, we’re going to drop support for backing up macOS (Catalina and later) to HFS+ formatted volumes.

Dave Nanian:

Anyone out there able to create a disk group under Catalina with diskutil? I keep getting ( (disk3s1 role S):

diskutil ap createVolume disk3 APFS "MacBook Backup-Data" -role D -groupWith disk3s1
Error: -69624: Unable to add a new APFS Volume to an APFS Container

The answer, if anyone cares, is that you have to add a system volume to a data volume. You can’t add a data volume to a system volume. Because…reasons?


macOS 10.15 Beta


Experience your favorite iPad apps coming soon to Mac. Now developers can easily create Mac apps from the iPad apps you already know and love. They run natively alongside your existing Mac apps so you can drag and drop content between them. And take full advantage of the larger screen and powerful architecture of your Mac to provide a seamless experience across your devices. Enjoy a broad range of Mac apps, with everything from travel, entertainment, and gaming to banking, education, and project management.


With macOS Catalina, there are enhanced security features to better protect macOS against tampering, help ensure that the apps you use are safe, and give you greater control over access to your data. And it’s even easier to find your Mac if it’s lost or stolen.


macOS Catalina includes new features to help everyone get the most out of Mac. Voice Control lets users who don’t use traditional input devices control Mac, iPadOS, and iOS devices entirely with their voice. New tools for users with low vision allow them to zoom a second display or view high-resolution text for items below a cursor.

Here’s the list of new features.

macOS 10.15 Beta Release Notes:

macOS frameworks are now thinned for the x86-64 architecture. Apps that execute i386 code now fail with the EBADARCH error code. The remaining stub frameworks are nonfunctional and exist only for compatibility purposes.

Peter Maurer:

Get off my lawn.

Jerry Jones:

I especially 😳 at the fact that Finder displays “Applications” in a single window, despite it apparently being a collection spread across two separate volumes with different read/write permissions!

Gus Mueller:

Looks like sub-pixel aa is dead dead in 10.15 (it was only mostly dead in 10.14).

Wil van Antwerpen:

This thread describes the problems you bump into if you try to upgrade a macOS Mojave VM to the new beta macOS Catalina. Basically if you run the upgrade then your VM will hang on reboot. If you then try to reboot it in verbose mode, so that you can see what happens, you’ll get the following screen.

Christopher Allen:

A number of people at #wwdc19 today have reported problems using #VMware Fusion to run the macOS Catalina beta (especially as you need it to run #SwiftUI Canvas feature in #Xcode). Reportedly this trick works.


Update (2019-06-10): Marco Arment:

I made a second partition in Disk Utility using APFS space-sharing, installed another copy of Mojave onto it, and upgraded THAT one to Catalina.

Keep FileVault enabled on your main Mojave partition and don’t keep it mounted in Catalina to avoid duplicates in Spotlight.

Update (2019-06-12): Guilherme Rambo:

It looks like NSData.description has changed when linking against iOS13/Catalina, so if you rely on that to generate a string version of your push token, you’re gonna have some issues 😬

It now shows the length and a truncated string of hex bytes, instead of a NeXT-style plist with the entire data’s contents. And it looks like NSDictionary.description calls down do this, so it no longer generates valid ASCII property lists.

Update (2019-06-18): Jonathan Grynspan:

Beginning in macOS 10.15, LSCopyApplicationURLsForURL(), LSCopyAllHandlersForURLScheme(), LSCopyAllRoleHandlersForContentType(), and LSCopyApplicationURLsForBundleIdentifier() all return sorted lists, and it’s documented! 🎉 (NSWorkspace’s equivalent methods do the same.)



What’s in a name? Quite a bit, actually. While built on the same foundation as iOS, iPad has become a truly distinct experience. With powerful apps designed for a large Multi‑Touch display. Multitasking made simple with intuitive gestures. And the ability to drag and drop a file with a fingertip. It’s always been magical. And now it’s called iPadOS.

Here’s the list of new features.

Mitchel Broussard:

Apple today revealed “iPadOS,” a new version of iOS that Apple has designed specifically for the larger screens on the iPad family. Apple said that it renamed the OS to recognize the “distinctive experience” of iPad.


To enhance iPadOS even more, Apple updated Split View to allow users to work with multiple files and documents from the same app at the same time. For example, users can have two emails opened side by side in Mail, or two notes in Notes. Slide Over allows users to quickly view and switch between multiple apps, and App Exposé provides for a quick view of every open window.

Ryan Christoffel:

Files has a new Column view, joining the existing Grid and List views available before. Column view takes better advantage of the iPad’s large display, making it easier to dive into nested folders without getting lost. And a key element of the new Column view is a Preview pane on the right-hand side that includes a visual preview of the currently selected file, rich metadata for that file, and a selection of Quick Actions to easily do things like use Markup, create a PDF, or rotate an image.

At long last, Files includes built-in support for external storage devices. USB drives and SD cards can now be connected to your iPad and the documents they contain can be accessed directly from Files and moved into a separate file provider if you wish.


The most important change to Safari is that it now loads desktop versions of websites by default. But not the same crippled desktop shells that previously existed on the iPad: true desktop versions that are fully optimized for touch input.

Matt Birchler:

Apple fails their own “Safari for iPadOS is a desktop-class browser” as they still ask you to not use their website from it.

On the other hand, Google Docs (on this and other more complex, but also more personal docs) works pretty great. Smooth and works as I’d expect. Really nice!

Colin Cornaby:

Wonder if iPad OS could imply an organizational shift in Apple as well. iPhone and iPad software being the same means they share a team and resources.

...or it’s just marketing!

Guilherme Rambo:

It’s still iOS, still runs SpringBoard, still called “iPhone OS” in the manifest.

Steve Troughton-Smith:

Multi-window really is multi-window. You can spawn as many windows as you want in an app and cycle between them as necessary, or tear them off into new spaces

Nick Lockwood:

I don’t get the whole iPadOS rebranding. Does that mean it’s a new target, like tvOS or watchOS, if so what happens to hybrid apps? Or is it just a marketing gimmick, in which case what possible benefit does it serve? Will they rename iOS back to iPhoneOS again now?

Steve Troughton-Smith:

‘iPadOS’ is a statement, not an OS. iPad is now a top-tier platform on its own, which means Apple needs to address it as such every year with new features. Means they can’t ignore it anymore

Craig Federighi:

It’s become a truly distinct experience. It’s not an iPhone experience. It’s not a Mac experience. The name is a recognition of that. We’ve expanded the domain where people can say the iPad is the best solution.

Tom Warren:

Reminder: Apple CEO Tim Cook once described laptop / tablet hybrids as like trying to converge a “toaster and a refrigerator.” Apple has an iPad Pro with a keyboard, and now it looks like it’s going to create a dedicated iPadOS for it

Dan Masters:

Precisely what concerned me when I heard about iPadOS – Apple is piling all this desktop functionality onto iPad, but is missing the desktop UX, thus ruining what made it appealing in the first place: its simplicity.

To be sure, it’s not an easy problem.

Juli Clover:

As rumored, iPadOS introduces mouse support for the first time, allowing a USB mouse to be connected to an iPad for the first time.

Mouse support is not a standard feature, but is instead available as an AssistiveTouch option within the Accessibility settings on your iOS device.

Owen Williams:

The funniest thing about the iPad getting mouse support? Apple goes out of their way to avoid saying mouse anywhere. In the pairing menu, the mouse name is blocked and it just says “accessory” 😂

See also: Hacker News.


Update (2019-06-18): Federico Viticci:

For now though, after using the iPadOS beta on my 12.9" iPad Pro for a few days, I’d like to share some initial considerations on iPadOS and what it means for the future of the platform.

Rui Carmo:

Having read about (and watched videos of) iPadOS, I still get the feeling that this is much ado about a few little tweaks (again, Apple sweating out the details and doing incremental improvements) rather than an actual breakthrough.

John Gruber:

I think “desktop-class browsing” in Safari is going to be a game-changer for many people. It really is like browsing on Safari with a Mac.

I still don’t get the multitasking metaphor on iPadOS, though.

Jason Snell:

Overall, I’m excited by iPadOS and where Apple is taking the iPad. But it wouldn’t be the post-WWDC hangover period if I weren’t also realizing that some of my most wished-for items just didn’t make it, or didn’t manifest themselves in the way I’d hoped. But that’s okay—this is natural any time fantasy crashes into cold, hard reality.

iOS 13 Beta


iOS 13 introduces a bold new look, major updates to the apps you use every day, new ways to help you protect your privacy, and improvements across the entire system that make your iPhone even faster and more delightful to use.


Apps will launch up to 2x faster than before and be smaller in download size.

Here’s the list of new features.

Joanna Stern:

You will FINALLY able to select a WiFi network in Control Center on iOS 13. How was this not 30 minutes of today’s presentation?!

Ryan Jones:

New title bar size and buttons! Less vertical space waste.

Eli Schiff:

Thread of changes in iOS elements:

Ryan Jones:

Automatic What’s New screens!!!

Ryan Jones:

And automatic ask for feedback.

Tanner Bennett:

This notification appears when you first join a hotspot.

This is the sort of power-user feature iOS needs more of. Bravo!


WebKit on iOS has always been the same engine as macOS. It was just significantly constrained due to the technical limitations of early iPhones. In iOS 13 we have removed many of these old limitations.

Dave Mark:

iOS 13 Apple Maps added traffic lights and stop signs. Apple Maps is getting steadily better.

Pierre Habouzit:

For people curious about this up to 2x app launch win, here is an overview straight from Craig’s mouth (for about 2-3 minutes at the 1:04 mark)

It sounds like the FairPlay DRM that prevents you from installing apps not signed by Apple has been slowing down app launching for all these years.

Federico Viticci:

No more URL schemes, no more clipboard hacks – all done natively and securely.

And the Shortcuts editor is much easier to use thanks to new pickers and natural language-style syntax. ❤

Steve Troughton-Smith:

One neat nugget of information in the File Management session: iOS apps can now be granted read/write access to an entire folder, rather than just a file (!!)

Juli Clover:

Apple in iOS 13 introduced a new “Optimized Battery Charging” feature, which is designed to extend the total battery life of your iOS device.

Found in the Battery section of Settings under “Battery Health,” the optional toggle learns from your personal habits and waits to finish charging all the way up until you need your iPhone.

Nick Heer:

I was blown away by the demo of Voice Control during the Platforms State of the Union presentation and, having had the opportunity to try it myself, it works pretty much as advertised. It’s shockingly good, almost to the extent that I was considering keeping it on so I could use my iPad while I’m cooking, for example, but I worry about its impact on battery life.

Juli Clover:

In the Phone section of the Settings app in iOS 13, there’s an interesting new toggle called “Silence Unknown Callers,” which appears to do exactly what the name suggests. With this feature enabled, calls received by people not in your contacts list seem to be sent straight to voicemail.

Update (2019-06-10): Bradley Chambers:

Apple announced data separation for BYOD devices. While we don’t know all of the details about how this will work, it does appear that Apple is moving to what I was asking for. Employees want to be able to make sure that IT departments can’t access their personal data, and IT departments want to ensure that their corporate data will be secure. I will have more to say on this as we learn more.

Meek Geek:

Oh look, Apple copied the Qnovo charging tech used by some Android flagships for years […] Hopefully iPhone batteries will last 2 years instead of being throttled after 1 year!

Matt Birchler:

First and foremost, the talk confirmed what I feared: there is no way to add arbitrary fonts you already own into iOS. They must be installed by apps downloaded from the App Store.

Geoff Hackworth:

I want to focus on immediately noticeable, and potentially breaking, changes to view controller presentations in iOS 13.

Update (2019-06-13): Michael Saji:

The explanation for why Apple took so long to implement USB storage for iOS: they had to rewrite the kernel storage driver to live in userspace. The most secure USB storage ever. Same for fonts.

Juli Clover:

In addition to these features that made it into Apple’s keynote event, there are dozens if not hundreds of smaller new changes and tweaks that are included in iOS 13. Below, we’ve rounded up a comprehensive list of new and notable “hidden” features in iOS 13.

Update (2019-06-18): Steven Aquino:

One cool tidbit about Voice Control: It uses the TrueDepth camera on iOS/iPadOS to tell if you’re looking at the computer. If someone walks over and you turn your head, Voice Control will stop listening until you go back to your computer.

Update (2019-06-19): John Gruber:

The new volume HUD in iOS 13 is delightful. Notice how it is physically aligned with the hardware volume buttons. This position and the animation make hardware and software feel as one.

Tuesday, June 4, 2019 [Tweets] [Favorites]

macOS 10.15 Switches From bash to zsh

Apple (Hacker News):

Starting with the macOS Catalina beta, your Mac uses zsh as the default login shell and interactive shell. You can make zsh the default in earlier versions of macOS as well.


zsh is highly compatible with the Bourne shell (sh) and mostly compatible with bash, with some differences. For more about zsh and its comprehensive command-line completion system, enter man zsh in Terminal.

It doesn’t change the default shell of existing accounts.

Greg Hurrell:

I like Zsh and use it, but I don’t know why anyone would be excited about this. It is probably going to be a years-old version anyway. I’ll still be installing it with Homebrew.

It actually seems to be the current version, 5.7.1.

See also: Wikipedia.

Update (2019-06-04): Greg Hurrell:

All of this probably motivated by a desire to get away from GPL to MIT.

I think that’s it. The version of bash included is from 2007.

Previously: Mojave’s rsync From the Days of Tiger.

Update (2019-06-06): Matthew (2002, tweet):

As of 10.10 the remaining GPL-only packages seemed to be JavaScriptCore, bash, bc, emacs, efax, gnudiff, gnuserv, gnutar, groff, gpatch, keymgr, libstdcxx, man, nano, screen, texinfo, and uucp. I include this list as Apple have stopped listing the licenses on their download page, to make it harder to track their progress…

The trend supports the idea that Apple is trying to remove all GPL-licensed software from OS X.

See also: Slashdot, Hacker News.

Armin Briegel:

Apple is strongly messaging that you should switch shells. This is different from the last switch in Mac OS X 10.3 Panther, when Apple switched the default to bash, but didn’t really care if you remained on tcsh. In fact, tcsh is still present on macOS.

Apple’s messaging should tell us, that the days of /bin/bash are numbered. Probably not very soon, but eventually keeping a more than ten year old version of bash on the system will turn into a liability. The built-in bash had to be patched in 2014 to mitigate the ‘Shellshock’ vulnerability. At some point Apple will consider the cost of continued maintenance too high.

Scripting Languages to Be Removed

Xcode 11 Beta Release Notes:

Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. In future versions of macOS, scripting language runtimes won’t be available by default, and may require you to install an additional package. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.


Use of Python 2.7 isn’t recommended. This version is included in macOS for compatibility with legacy software. Future versions of macOS won’t include Python 2.7. Instead, it’s recommended that you run python3 in Terminal.

This is a big deal in terms of philosophy; Apple once touted the built-in Unix tool suite as a Mac advantage. And it also means lots of practical changes; installers and AppleScripts can no longer lean on other scripting languages.

Marcin Krzyzanowski:

The same year Microsoft is proud to add a new terminal app with the full support of bash and everything to please developers. Apple decided to deprecate scripting on macOS and replace bash with zsh.

No explanation was given, but we’re curious. Maybe there’s a valid reason.

Joe Groff:

The downside of all that stuff getting included was that it could never be upgraded, because apps would depend on the exact versions that shipped a decade ago.

It still doesn’t make sense to me because these scripting languages aren’t huge, and Apple did update them and remove old versions from time-to-time.


Update (2019-06-04): Wood Borer:

I guess the kids all think this is a good change, because now no one will have an old version of Python or Perl. Instead, they’ll have ten of them, and you’ll have to play with paths to pick the right one, like Windows.

Update (2019-06-06): See also: Lobsters, Reddit, Hacker News.

Update (2019-06-10): Dr. Drang:

One of the great values of Apple providing scripting languages with macOS is to make it easy for regular users to turn themselves into occasional scripters. People who program all the time seem to forget how terrifying the idea of writing code is to those who’ve never done it before. Even “power users” quail at the idea of scripting until they’ve done it a few times and survived. If the first step in learning to script is Install Python via Homebrew, they are simply going to pass.

These new scripters don’t care, for example, that the Apple-supplied Python is out of date, and there’s no reason for them to. Python 2.7 is a perfectly good starting point, as is Perl 5.18 and Ruby 2.3.

Removing scripting languages also means that those of us who know how to use them can’t send scripts to our friends to help them automate their tasks. I’m perfectly happy to “slum” in Python 2 (oh dear, I have to use the format function instead of f-strings) if that’s what it takes.

Microsoft (via Hacker News):

Microsoft has been involved with the Python community for over twelve years, and currently employ four of the key contributors to the language and primary runtime. The growth of Python has been incredible, as it finds homes among data scientists, web developers, system administrators, and students, and roughly half of this work is already happening on Windows.


Finally, with the May 2019 Windows Update, we are completing the picture. While Python continues to remain completely independent from the operating system, every install of Windows will include python and python3 commands that take you directly to the Python store page.

Update (2019-06-12): Kyle Crawford:

Scripting runtimes and bridges should be included in an OS. I like Swift. I’m comfortable with Swift. But I also like ruby and python. And often they are a better fit for the job. I’ve written a lot of Swift but I still write lots of ruby and python.

Xcode 11 Beta

Xcode 11 Beta Release Notes:

Xcode 11 beta supports development with SwiftUI.

Xcode supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool. Application Loader is no longer included with Xcode.


LaunchServices on macOS now respects the selected Xcode when launching Instruments, Simulator, and other developer tools embedded within Xcode.


Editors can be added to any window without needing the Assistant Editor.


Run script phases and custom build rules may declare and emit a dependencies file, in the Makefile-style .d format output used by some compilers and build tools.


XCFrameworks make it possible to bundle a binary framework or library for multiple platforms —including iOS devices, iOS simulators, and UIKit for Mac — into a single distributable .xcframework bundle that your developers can use within their own applications.


When a data model configuration supports CloudKit, the data model editor performs additional validation to ensure the model conforms to the requirements for Core Data CloudKit support.


A view controller method annotated with the new @IBSegueAction attribute can be used to create a segue’s destination view controller in code, using a custom initializer with any required values. This makes it possible to use view controllers with non-optional initialization requirements in storyboards.


LLDB’s Python scripting is now based on Python 3. If you are using Python extensions that aren’t compatible with Python 3, they will break.


Xcode 11’s source editor introduces a mini map of the file. The mini map includes legible text for Mark:, highlighted lines with errors and warnings, source control changes, breakpoints, and highlighted Find results.


Test Plans are a new way to manage which tests run, and how those tests run. Schemes can reference multiple test plans, and define a default test plan for automation.


XCTest includes augmented performance testing capabilities with the new measureWithMetrics:options:block: method and related methods.

Plus an unwrap method.

Peter Steinberger:

There’s a new sidebar!

Jordan Rose:

I’ve been living on the new Xcode 11 source editing UI and it’s great. The full/assistant/comparison/authors/history pentachotomy is gone; now it’s “editors with sidebars” and “comparison mode”. And the inline diff means I don’t jump into comparison mode nearly as often.

Peter Steinberger:

Guess the device support trick no longer works/needs an update?

Tanner Bennett:

Goodbyyyyyye .xcodeproj! If you haven't heard, you can open Package.swift directly into Xcode now. I assume it just generates the project file in a temporary location.

You can even run tests!

Joe Fabisevich:

Xcode 11 has QuickSpec built in?


Update (2019-06-06): Matt Diephouse:

Things that don’t work in the Xcode 11b1 UI:

— Creating a new target in a project
— Creating a new project in a workspace
— Deleting a project in a workspace
— The “Edit Scheme…” keyboard shortcut
— Deleting a build setting

Mike Hay:

Xcode’s source code editor does a lot of neat stuff, but much of it is a bit hard to find.

Here are four examples of things that you might not have realized that you could do in Xcode’s editor.

These also work in Xcode 10.


The Apple API Reference docset was updated to work with the latest docs from the Xcode 11 beta.

To use the Xcode 11 beta docs, make sure xcode-select -p (in Terminal) points to the location where you have Xcode 11 installed.

Update (2019-06-13): Steve Troughton-Smith:

Hold the command key (⌘) while you mouse over the new Xcode 11 mini map to show all your methods and properties


iPad Apps for Mac Human Interface Guidelines:

When you bring your iPad app to Mac, you give people the opportunity to enjoy your app in the context of the Mac’s large display, outstanding native performance, and ample local storage.


To ensure that your app gives people a rich Mac experience, it’s essential to enhance this foundation and go beyond simply displaying your iOS UI in a macOS window.

Creating a Mac Version of Your iPad App:

Starting with Xcode 11, you can create a Mac version of your iPad app using UIKit. Configuring your app to run in macOS takes just a click in a checkbox. However, more steps may be needed depending on the system features and frameworks your app uses.

Optimizing Your iPad App for Mac:

The Mac version of your iPad app supports many system features found in macOS without requiring any effort from you. […] You can, however, extend your app to take advantage of even more system features.

Dieter Bohn:

One notable thing Apple told me: it won’t try to force all Catalyst sales through the Mac App Store. If you convert your iOS app to the Mac, you can sell it however you want without paying Apple a 30% commission.

It’s not clear yet whether they can be unsandboxed. The documentation simply says that Xcode auto-adds the entitlement.

Ryan Christoffel:

Project Catalyst may not have received as much stage time as expected during the WWDC keynote, but it is a huge development for the future of the Mac and iPad alike.


Twitter is thrilled to announce we are bringing the Twitter for iPad experience to the Mac!


Apple’s exciting new technology empowers Twitter to easily bring our entire 1.5 million line code base from iOS to the Mac, allowing ongoing full feature parity with our iPad app, and enhanced with the macOS experience that will make Twitter feel right at home on your Mac.

This Twitter for Mac will be fully native, with all the native features of a Mac app. Multiple windows, window resizing, drag and drop, dark mode, keyboard shortcuts, notifications and more!

Thanks to Apple’s technology, the new Twitter for Mac will get regular updates, just like Twitter for iPad and iPhone. It’s the best of both worlds: the full Twitter experience enhanced to run natively on a Mac!

Max Seelemann:

SwiftUI ist the new Cocoa. It’s to UIKit and AppKit what Cocoa was to Carbon.

Marzipan is transitional technology. Once iOS apps are built with SwiftUI, Marzipan will become obsolete.

Jacob Gorban:

So all the AppKit developers who were concerned that Marzipan would herald the beginning of the end of AppKit (myself included) can relax.

It won’t be Marzipan (officially Catalyst). It’ll be SwiftUI.

Drew McCormack:

So Catalyst turned out to be “Carbon” I guess.

Kuba Suder:

Honestly, I know everyone will hear what they want to hear, but so far it absolutely does not look like UIKit is taking over Mac (or going to soon). They said it’s “good for some kinds of apps”, AppKit is still getting improvements and is fully integrated with SwiftUI.

Jeff Nadeau:

Say hi to NSSwitch.

It supports the full NSControl API including bindings and formatters. It’s keyboard-accessible (spacebar and arrows), has AX options like state indicators, the works.

Jeff Nadeau:

Last bit on the Mac switch control: by default the SwiftUI Toggle control is a checkbox on Mac, but you can request a switch using .toggleStyle(.switch).

Don’t go replacing all your checkboxes with it. It’s really for “big switches”, not lists of preferences.

I expect many apps will use them that way, anyway.

Steve Troughton-Smith:

Picker controls are completely unchanged in Catalina’s UIKit

Steve Troughton-Smith:

Apple is very much downplaying UIKit on the Mac this year, trying to thread the needle of Mac developer/user perception. However, I think it’s clear the one-two punch of Catalyst and SwiftUI has all but ensured that the future of the Mac UI is shared with iOS

David Clarke:

The nail in that coffin is the fact that they didn’t implement any connection between that and AppKit. That’s going to do more than convince users, it’ll win over developers very quickly. No one will want to work without it soon. Therefore that’s what users will get used to.

Steve Troughton-Smith:

Apple made less attempt to show that Catalyst apps can be good than I did in three blog posts. I think that’s a mistake.

Kyle Howells:

I’m still waiting for Apple to show a good high information density mouse focused app made with it (NSTableView style grid of information?).

Music and Podcasts may look the same (good), but they both look like iPad apps; with giant touch targets and massive list row heights.

Dieter Bohn:

Regarding last week’s Mazipan (now Catalyst) video: Apple hasn’t shown enough today to give me confidence these will be good. I am pretty worried about these apps. Cut for time, maybe, but I fear the consumer Mac is in a precarious position

Steve Troughton-Smith:

As far as I can tell, window title visibility is the only concession apart from window title that we get in Catalyst; there’s no way to set minimum/maximum content sizes, window style mask, etc

Steve Troughton-Smith:

Bafflingly, Apple hasn’t yet shipped UIUserInterfaceIdiomMac in Catalina, which means the 77% scaling is here to stay. Is that really not something coming this year? 😱

Michael Love:

Bummer on macOS/Catalyst: static libraries from iOS Simulator and from regular macOS won’t work, even if they’re pure C/C++ and don’t make any use of Cocoa or higher-level framework code. May be able to hack Mach-O header loading commands to work around this but a big pain.

Drew McCormack:

That was quite a day at WWDC. My big take aways:

1. NeXT is finally dead. ObjC and IB are done. AppKit too.
2. React has won (…like it or not).
3. Mac-specific software is not long for this Earth. Not a single ADA winner was for macOS.

Steve Troughton-Smith:

I’ve seen people wondering how different Catalina’s Catalyst is from Mojave’s Marzipan: the process architecture is different, but overall it’s very similar. Same issues, same bugs as marzipanified apps from a year ago; more of the holes have been filled+more frameworks ported

Peter Steinberger:

Xcode automatically adds “uikitformac” to the bundle ID for Catalyst builds.

Steve Troughton-Smith:

which is a pain in the ass if you support iCloud. I have no idea yet how to fix it


Update (2019-06-04): Colin Cornaby:

The other interesting thing to me is how Swift UI still has to be hosted inside a UIKit or AppKit app. It actually massively compliments AppKit by giving AppKit a path to share UI with a UIKit app.

If you’re an AppKit developer right now, the best path doesn’t look like tearing down and porting to Catalyst. It looks like starting to build shared SwiftUI components where you can.

Wil Shipley:

SwiftUI : Cocoa :: Catalyst : Carbon

Update (2019-06-06): Matt Birchler:

Reasons to create a Mac app based on your iPad app. They specified that if you already have a great Mac app then there’s no compelling reason to use this.

Kyle Howells (MacRumors):

[regarding Twitter] I can never understand how companies can take indie apps maintained by 1 person and grow them into 100+ developer Goliaths, that seem to have the same or fewer features.

How can tiny teams make native Tweetbot and Twitterrific for multiple platforms, but Twitter itself can’t do that without Catalyst?

Update (2019-06-19): Steve Troughton-Smith:

There seems to be no way for a Catalyst app to ‘share purchase’ with an iOS app(?), which would put me off shipping anything with it. And due to the enforced bundle ID prefix I can’t even use UIKit to replace my existing Mac app on the App Store(?), which I would do for sure

Peter Steinberger:

If you want to share a subscription between iOS and Mac/Catalyst, you’ll have to do it all yourself. Apple has no solution for that yet. iCloud Containers are one option, but I’ll probably go with @RevenueCat

John Gruber:

Catalyst, from what Apple revealed this week, is a sideshow for games, toy apps, and media consumption apps.

John Gruber:

Who did we see in the keynote raving about Catalyst? Twitter. A poorly-run company with no strategy. They had a great Mac client. They also had arguably the world’s most innovative iPad app. They threw both away because their execs were too dumb to recognize what they had.

Tanner Bennett:

Odd comparison, but: the Mac developer who says Catalyst will be the end of Electron is like the web developer who says web apps will be the end of native.

They’re going to co-exist forever. But it’s amusing how the extremists on each side are convinced the other is doomed

Pádraig Kennedy:

The near-universal excitement about SwiftUI among long time Mac devs really undermines the critique that they are all stuck in their ways and defensive about change. They rightly just didn’t want to run a weirdo iOS app on their Mac.

Steve Troughton-Smith:

“Just follow this twelve-step process to opt out of the automatic uikitformac bundle identifier prefix!” 😪

Daniel Jalkut:

This is a huge shortcoming for the App Store as Apple broadens the appeal for cross-platform apps without improving the options for “single point of sale.” Kudos to @RevenueCat for filling the void.

Steve Troughton-Smith:

Embed your new macOS bundle in your app and make its inclusion conditional to macOS only.

It’s as simple as that! Now you have a loadable bundle that is built with the Mac SDK, and thus has access to all of AppKit. All you have to do is load it manually when you detect you’re running on macOS.

Steve Troughton-Smith:

Re-watching Catalyst sessions, it seems clear that Apple expects devs to offer brand new app SKUs for the Mac App Store w/ no shared purchase, shared IAPs, shared subscriptions. I can’t ship on macOS like that, so if that doesn’t change before Sept, that makes Catalyst DOA for me

That’s a huge part of Catalyst that’s fundamentally broken, and not in a small way. It’s hard enough to get users to pay for apps in the first place; forcing them to pay again for the Mac will scupper many apps that wanted to support Mac but not commit to standalone Mac app

If you want to share an app record between macOS and iOS, and share purchases/IAPs/subscriptions, you better get your feedback in now because if Apple doesn’t course-correct you won’t be able to ship on the Mac for another year at the least

Markus Müller-Simhofer:

I’m very biased here, but I think for premium Mac apps this is a good thing. This will ensure that Catalyst apps won’t immediately bring down the higher MAS price level. But I agree, customers don’t understand why they have to pay two times and Catalyst isn’t helping.

Steve Troughton-Smith:

Apple didn’t show off anything at WWDC to enable developers to do anything more than ‘dump their iPad UI on Mac’. That clearly wasn’t the message (despite it being possible), and isn’t documented at all

Michael Love:

Confirmation from Apple that they do not consider Simulator and Catalyst binaries to be ABI compatible and so are presumably not going to provide a solution to embed libraries from the former in the latter.

Steve Troughton-Smith:

Since Apple’s making a point to treat Catalyst apps as ‘true Mac apps’, that means that your app can do what any other Mac app can do: embed an AppKit-based bundle or framework, and load it at runtime as a plugin.

Colin Cornaby:

I’m going to make an absurdly long term prediction: Catalyst is going to be deprecated at the same time as UIKit. Could be a decade before we get there. But it’s not going to be the future environment that SwiftUI is built on.

John Gruber:

Resizable windows, drag and drop support, keyboard support. Wow! What a great testimony to Catalyst that Mac users can expect such advanced features. Maybe we’ll even be able to copy and paste text.

Syncing Core Data With CloudKit and NSPersistentCloudKitContainer

WWDC Session 202:

CloudKit offers powerful, cloud-syncing technology while Core Data provides extensive data modeling and persistence APIs. Learn about combining these complementary technologies to easily build cloud-backed applications. See how new Core Data APIs make it easy to manage the flow of data through your application, as well as in and out of CloudKit. Join us to learn more about combining these frameworks to provide a great experience across all your customers’ devices.

See also:

This is great to see, although for all the specific use cases I have in mind it would likely be more appropriate to use CloudKit directly. NSPersistentCloudKitContainer seems too automatic/opaque. (I say this before the session has taken place, though.)

Hunter Hillegas:

It’s a whole new managed approach where Core Data owns the CloudKit container and handles it. No clue how well it works.

Scott Perry:

Yup, Core Data CloudKit implements to-many relationships using CRDTs!

Drew McCormack:

Looking at the Core Data + CloudKit sample code, I have a feeling it might be a case of “fool me twice”. The fact that there is no global identifier for objects means you end up with a lot of messy deduplication code. Even a real basic app like the sample will scare many away.

Malcolm Hall:

You can get the global identifier using recordForManagedObjectID: it is stored in a meta data table, see attached screenshot:

Drew McCormack:

Yeah, I figured they had an id internally. My point is the user doesn’t seem to be able to pick one. Eg. merging tags is trivial if you can choose your own global id.

Malcolm Hall:

Oh so in the sample the deduplicate method is finding all tags with the same name, selecting one, and then setting all posts that are using any of the duplicates to the single tag. That’s pretty nasty.

Malcolm Hall:

So CloudKit Core Data Sync doesn’t merge in remote changes before syncing up the modified local record, and sends whole record not just changed fields, causing it to overwrite whatever changes another device made that was not yet received, seems like a dealbreaker.


Update (2019-06-04): Malcolm Hall:

sadly Core Data CloudKit isn’t using CKReference for related records, just using a string field, thus losing integrity. I was really hoping they would make the public the CKReferenceActionValidate that Notes uses for e.g. the one-to-many folder notes relation.

Update (2019-06-06): Tom Harrington:

I went to the Core Data with CloudKit lab and, to their credit, the team did not run away and hide from me.

Update (2019-06-11): Bob Cottrell:

There was a throwaway line at the end of the Core Data and CloudKit session that talked about using Lamport timestamps to, you know, actually reflect the distributive nature of syncing. This was probably one of the most mind-blowing thoughts to come out of all the videos so far.

This is interesting in light of Malcolm Hall’s statement above that it does not seem to be properly merging the fields. He’s also said that he looked for timestamps in the syncing database but couldn’t find them. So it’s not clear to me what Core Data actually does.

Update (2019-06-17): Drew McCormack (tweet):

The general approach Apple are taking seems sound enough to me. They are using their new generational storage (with history) to track changes, and update the cloud from that. Effectively having “versions” in your store is very powerful, because you can bring in new sync changes while the UI of the app continues on oblivious. […] This is preferable to the nightmare we used to have with concurrent changes, where one context would be forced to merge in change notifications, and failing to do so would lead to exceptions.


The nature of Apple’s sync, where you effectively have distributed stores, means you can’t globally validate data like you can with a single central store. Apple have chosen to work around this by disallowing validation on relationships. It’s something to keep in mind. For example, if you have a one-to-one relationship that was previously non-optional, once you add sync, you will have to make it optional, and concurrent changes could lead to an orphaned object where the relationship is nil. This is not really avoidable in a decentralized syncing system, though how it is handled can vary. In Ensembles, the same problem can arise, and a delegate method is called to allow the app code to correct the issue (eg delete an object); Apple have opted to just disallow validation of relationships, which means you will probably need to add your own checks to “correct” the data.

Andy Bargh:

It also seems to be a bit of a partial solution as well as there doesn’t seem to be any support for the Public or Shared databases in there either which seems like a bit of an omission. on macOS 10.15

Jason Snell:

The Music app is basically iTunes—but with a design update that puts Apple Music at the fore. You can still see your entire music library, of course, and even buy music on the iTunes Store if you want to. As someone who uses iTunes with Apple Music every day, I’m okay with this change. And if you click on the Songs view in the Library section of the sidebar, you will get your classic iTunes song list back, like it never left.

Nick Heer:

The preferences window in Music on Catalina is still modal, so all is right in the world.

Doug Adams:

I thought Apple would keep a “legacy” iTunes around, in the same way QuickTime Player 7 and Aperture were allowed to languish. But I’m guessing the new new media apps work well enough that such a strategy was deemed unnecessary.


Current iTunes scripts will not work with or At least, not without some slight modifications.’s scripting definitions file is virtually the same as iTunes (likewise the Apple


No Column Browser (sad).

Damien Petrilli:

Seems that Apple Music is now the default on the Music App and that you have to enable the option “show iTunes Store” to purchase your music.

Bad sign for purchasers of music like me, and another crappy move from Apple trying to force its services upon users.

Adam Engst:

What about the syncing features of iTunes? macOS Catalina builds them into the Finder. Attach an iOS device to a Mac and it appears in a Finder window’s sidebar. Select it and what looks like the standard iTunes sync settings screen appears in the window. You won’t get syncing or management of iOS apps, but you’ll be able to back up, update, and restore devices from the Mac.

Juli Clover:

Apple told Ars Technica that on Windows, there will be no changes. Those who use iTunes on a PC to manage their devices, listen to music, and make iTunes purchases will be able to continue to do so.


Update (2019-06-04): It does not seem to support Home Sharing. [Update (2019-06-06): It’s there but has moved to System Preferences.]

Update (2019-06-06): Apple (MacRumors):

macOS Catalina makes it faster and simpler to access all of your “ripped” or imported music, purchased media, and more. The new apps organize your media just like the same apps on iOS. Your entire media collection will find a new home and transition automatically into the new Apple Music, Apple TV, and Apple Podcasts apps. In addition, your previous iTunes Store purchases and synced libraries will not change on any of your devices.

Kirk McElhearn:

In essence, nothing much has changed. The iTunes name is still used for the iTunes Store, despite some publications claiming that the iTunes name was being retired, or that Apple was ending its music download service.

I don’t know… For years, people have been kvetching about iTunes, and all it took was for Apple to move a couple of media kinds to different apps, and to change the name of the music player, and everyone’s suddenly happy, but also dancing around the grave of an app that hasn’t really changed that much. You can still buy music from the iTunes Store, rip your CDs, sync your devices, make playlists, and so on.

Updates to the App Store Review Guidelines


Guidelines 1.3 and 5.1.4. In order to help keep kids’ data private, apps in the kids category and apps intended for kids cannot include third-party advertising or analytics software and may not transmit data to third parties. This guideline is now enforced for new apps. Existing apps must follow this guideline by September 3, 2019.


Guideline 4.2.7. Remote desktop clients now include game consoles owned by the user. Software appearing in the client must be fully executed on the host device.

Peter Steinberger:

„Guideline 5.1.1(vii) (New). Apps that compile information from any source that is not directly from the user or without the user’s explicit consent, even public databases, are not permitted on the App Store.“ What would that be?


GPDR, basically you need their consent but also you can’t gather information on that user from public sources I.e their public github profile. I’m sure open datasets like Wikipedia are fine


Update (2019-06-06): See also: Hacker News.

Update (2019-06-10): Jacob Eiting:

There’s an updated Apple Developer Program agreement and the oppressive language around subscription paywalls has been backed way down.

Schedule 2 Section 3.8 (b) has been totally re-written to only require title, length, and price.


The previous version required a ton of legalese on every paywall. This shouldn’t be required any longer.

Joe Cieplinski:

Tip for anyone with a subscription app: Submit a small bug fix soon, just to see if you get caught up in a rejection from a reviewer who doesn’t understand the new guidelines.

Not that I’m speaking from experience, or anything.

Previously: Acceptable Renewable Subscriptions Pitch Screens.

Update (2019-06-13): Rafał Kobyliński:

I believe min # of employees requirement is new: “To enroll in the Apple Developer Enterprise Program, your organization must be a legal entity with 100 or more employees.”


Apple (MacRumors):

Sidecar lets you extend your workspace by using your iPad as a second Mac display. Work in one app while you reference another or view your artwork on your Mac while you use tools and palettes on your iPad. You can also mirror the screens so they both display the same content, making it perfect for sharing exactly what you see with others.


For apps with Touch Bar support, the controls appear at the bottom of your iPad screen — even if your Mac doesn’t have a Touch Bar.

Jason Snell:

While Luna Display was initially conceived as more or less what Sidecar does—let Mac users see their content on an iPad display and use the Apple Pencil to draw and otherwise interact with Mac content—it has come to be embraced as a tool to let iPad users control a Mac on the local network.

Well, guess what. You can’t initiate a Sidecar session from an iPad—it’s a Mac feature that is initiated from a Mac. Which means that everyone who has extolled the virtues of using Luna Display with a headless Mac mini won’t see that feature replaced by Sidecar.


Update (2019-06-06): Steve Troughton-Smith:

To enable Sidecar on older Macs and devices (sadly, doesn’t work on mine):

Sidecar supports iMac 27" (Late 2015) or newer, MacBook Pro (2016) or newer, mac Mini (2018), Mac Pro (2019), MacBook Air (2018) , MacBook (Early 2016 or newer), and blacklists all the devices in the screenshot

defaults write allowAllDevices -bool YES

Matt Ronge:

I wonder if it is using HEVC and that’s why it’s so limited

Dan Blondell:

This makes so much sense. I can’t think of why else my puny MacBook could do it but a Mac Pro couldn’t.

Sam Deane:

Biggest gripe with Sidecar so far: screen locking. It needs a way to sync unlocking the iPad with the Mac.

It’s a massive pain having to unlock both if you’ve stepped out for a minute - you unlock the Mac first and it can’t restore the connection to the iPad.

Apple Reverses Course on MDM and Parental Control Apps

Joe Rossignol:

As one of many updates to its App Store Review Guidelines this week, Apple has indicated that parental control app developers are again permitted to use Mobile Device Management (MDM) technology in their apps, so long as they do not sell, use, or disclose any data to third parties for any purpose.


Update (2019-06-04): Russell Ivanovic:

Remember kids, running to the press never works 😉

Monday, June 3, 2019 [Tweets] [Favorites]

SwiftUI and Combine


SwiftUI is an innovative, exceptionally simple way to build user interfaces across all Apple platforms with the power of Swift. Build user interfaces for any Apple device using just one set of tools and APIs. With a declarative Swift syntax that’s easy to read and natural to write, SwiftUI works seamlessly with new Xcode design tools to keep your code and design perfectly in sync. Automatic support for Dynamic Type, Dark Mode, localization, and accessibility means your first line of SwiftUI code is already the most powerful UI code you’ve ever written.

I guess this is project Amber. I don’t know the details well enough to say much yet. But I think building UIs in code with a functional/declarative style is fundamentally the right approach. The code snippets look similar to (but better than) the newer UI code I’ve been writing using my own layer on top of AppKit.

As you work in the design canvas, everything you edit is completely in sync with the code in the adjoining editor. Code is instantly visible as a preview as you type, and any change you make to that preview immediately appears in your code. Xcode recompiles your changes instantly and inserts them into a running version of your app, visible and editable at all times.

The Swift compiler and runtime are fully embedded throughout Xcode, so your app is constantly being built and run. The design canvas you see isn’t just an approximation of your user interface — it’s your live app. And Xcode can swap edited code directly in your live app with “dynamic replacement”, a new feature in Swift.

At first I thought SwiftUI was a wrapper layer on top of AppKit and UIKit.

Robert Clegg:

It really isn’t. It’s built from the ground up and is all Swift code.

If so, this is really interesting as it introduces a separate UI stack and really makes Objective-C a second-class citizen. But it is also a chance to have a unified framework that can apparently coexist with legacy views in the same window.

Nate Cook:

SwiftUI works great with UIKit, AppKit, and more! This tutorial shows how you can host SwiftUI views inside view controllers, and then embed those view controllers in SwiftUI

Jack Lawrence:

Remember all those awesome UX #WWDC talks about interruptible animations, and how they make your app feel far more responsive? Getting it right used to be incredibly hard. #SwiftUI does it all for you with One. Line. Of. Code.


The Combine framework provides a declarative Swift API for processing values over time. These values can represent user interface events, network responses, scheduled events, and many other kinds of asynchronous data. Combine declares publishers to expose values that can change over time, and subscribers to receive those values from the publishers.

This is Apple’s reactive framework (finally) and the successor to Cocoa Bindings and KVO.


Update (2019-06-04): Joe Groff:

Some things wrap UI/NS views, but whether they do, and what view type they wrap, is subject to change. Best to think about it as a distinct thing

Joe Groff:

SwiftUI controls have layers that are managed directly by the framework; there are APIs for embedding an NS/UIView in SwiftUI and vice versa. Performance was a top priority, it’s good

Joe Groff:

Any transform that can change visibility or structure gets represented by a generic wrapper in Swift, so it’s known that opacity/scale/rotation/etc. can change, when content can have variable numbers of nodes, etc. Only the variable cases need “ids” for diffing

Kyle Howells:

You don’t build an entirely brand new UI framework from scratch if you intend the other to be around long term.

Best case you reimplement everything twice in both frameworks forever, or they diverge and you get diff behaviours in each over time (like adding swipe to delete).

Olivier Halligon:

Sooo... This is what’s likely behind that strange SwiftUI! 🕵️‍♂️ (you know, with no commas and still an if statement inside that StackV)

There’s now a forum thread.

David Smith:

Let’s see, names this project has had…


am I forgetting any? 😂

JP Simard:

I’m assuming the SwiftUI @State keywords are @dgregor79’s Property Wrappers currently being pitched in the Swift Forums.

Daniel Jalkut:

If you were lost when Apple used $ in $variableNames during coding demos, it comes from this addition to Swift.

Jordan Rose:

Yeah, it has too many system components to backwards-deploy, sorry. But it supports all the usual weak-linking / availability stuff, so if you want to mix-and-match for new views in existing apps you do have that option.

Jeff Nadeau:

Localized by default. In fact, if you want to display un-localized text from model data or internet sources, you use the Text(verbatim:) initializer instead.

Kyle Howells:

I’m actually incredibly disappointed that SwiftUI seems to be a new UI framework, not written on top of UIKit.

Declarative UI frameworks are great for simple straight forward UIs that fully their preconceptions. But if you want to violate those they are a massive pain!

If it was built on top of a normal imperative UI framework you could drop down to the real power of a normal framework instead of dancing through hundreds of hoops to make it work.

I’m fearful this will regress iOS UI into more bland plain simple UIs even further than iOS7.

Corbin Dunn:

I also worry about customizability.

Jeff Nadeau:

Most things are customizable (or will be when API lands). The controls do some indirection through a Style type that lets you implement whatever appearance and behaviors you want.

It’s just a matter of getting to everything since there are so many widgets on the Mac

Patrick Balestra:

Creating a brand new project in Xcode 11 doesn’t create a Main.storyboard anymore, everything is defined in code.

Joe Groff:

One place Swift really helps with performance compared to other Reactish frameworks is the type system. The static subset of the view graph is encoded in the type system, so the runtime knows it can’t change and only has to diff the dynamic parts. 120hz update was a P0 goal

Daniel Jalkut:

It’s still sinking in for me that Apple effectively deprecated ALL of their UI frameworks yesterday. Mac, iOS, tvOS, and watchOS developers are equally displaced.

See also: Hacker News.

Kyle Howells:

Two things Swift (and looks like SwiftUI now too) fall down on is lack of understandability/predictability and reasoning about perfo; and being seemingly simple but having a very steep difficulty curve when you get into the details.

Zhuowei Zhang:

Apple: Swift is a system programming language that can replace C++
Also Apple: writes new #SwiftUI library in C++

In fairness, most of SwiftUI is written in Swift! It’s just the scenegraph that is in C++. I wonder why they did that. Is there an older library that they reused?

Jeff Nadeau:

SwiftUI does not require Catalyst (it interfaces with AppKit directly on macOS), but it does work in Catalyst apps if that’s what you’re building.

Russell Ivanovic:

iOS Devs: “ha ha only 10% of Android devices are on the latest OS”

Also iOS Devs: “I can’t touch SwiftUI for another 2 years because I have to support older iOS versions”

Android Devs: “Oh Google shipped a new framework? I’ll update my AndroidX package and start using it today”

Update (2019-06-20): Jeff Nadeau:

A feature of this screen I took from today’s Introducing SwiftUI talk, and something I think will be very typical.

Look at the shape of the code: state, var body, and functions. The body is all nouns, and then all of the verbs follow in separate functions.

Personally I think this separation is wonderful. It keeps the event-reactive code out of the DSL and very cleanly demarcates “deciding what to show” vs “deciding what to do”.

Rob Mayoff:

Order of modifiers in SwiftUI view impacts view appearance


It is better not to think of the modifiers as modifying the MapView. Instead, think of MapView().edgesIgnoringSafeArea(.top) as returning a SafeAreaIgnoringView whose body is the MapView, and which lays out its body differently depending on whether its own top edge is at the top edge of the safe area. You should think of it that way because that is what it actually does.

Jonathan Wight:

Quick example.

This is NSOutlineView uses a SwiftUI HStack (or rather many…) for each row.

The (unoptimised, in need of a refactor) method for outlineView(viewFor:item:) is shown.

I think this code plays to both Cocoa’s and SwiftUI’s strengths


I will try to show you real-world app example written entirely in SwiftUI. Let’s build an app searching for Github repos. We need a screen with a text field for typing a query and a list of repos which comes from the search query.

John Sundell:

Declarative UI programming patterns have become incredibly popular over the last few years. On the web with frameworks like React and Vue.js, in cross-platform development environments like React Native and Flutter, and through native tools like RxSwift and RxCocoa — declarative UIs and the reactive principles behind them have truly taken many development communities by storm.

It’s therefore especially exciting to see Apple step into this scene, with their own, completely native declarative UI framework — called SwiftUI. While there’s a ton of functionality to be discovered and experimented with in this new UI framework for all of Apple’s platforms — let’s start by taking a first look at some of the fundamentals of SwiftUI, and how it lets us drastically reduce the amount of code needed to produce common forms of UIs and interactions.

Rui Peres:

First, how I feel as a developer and as a person that has dedicated a tremendous amount of time to FRP* (both as a dev, contributor and evangelist). The release of Combine is the realization that the investment I have been making all these years made sense and it's also the confirmation that the industry is moving on this particular direction.

Adam Sharp:

Combine has very different thread safety guarantees than I’m used to coming from ReactiveSwift, which goes to heroic effort to ensure that events are always delivered serially, and never recursively.

John Sundell:

While it’s quite easy to initially look at SwiftUI as just a declarative API written right on top of UIKit (and in some ways it is), it’s so much bigger than that. While it’s true that, at the end of the day, any SwiftUI view hierarchy will get resolved into some form of UIKit/AppKit/CoreAnimation representation — there’s not a simple 1-to-1 mapping going on here.

Dave Abrahams:

SwiftUI layout isn’t a constraint system—or you could say we just have one-way constraints between parents and children. Most of the time, that’s enough, but if you need generalized constraints you can bridge views to UIKit and use autolayout.

Joe Groff:

The eventual goal is to allow all your UI code to be done in SwiftUI. Whether and how things map to UIViews is subject to change

Daniel Jalkut:

I’m going to throw some more worms into this compost bin. Another huge “mind blown” realization I had (with help) today: SwiftUI means “views” are essentially free. Zero overhead. Declarative UI is as cheap as any other struct. Huge shift from UIView, even more from NSView.

Shai Mishali:

Myself, and Gett, are heavy users of RxSwift — so as part of my learning process, I’m trying to make a map of things that correlate directly between RxSwift and Combine.

Casey Liss:

In order to discuss a Combine, one has to discuss the main differences between it and RxSwift. To my eyes: there are three.

Matt Gallagher:

Apple’s Combine talk at WWDC didn’t mention “reactive programming” or any background to the field. When presenting functions with the same interface as standard reactive transforms they said “we’ve designed”. It was the most blinkered, isolationist talk I’ve seen.

Bruno Rocha:

The new Swift features that are spawning out it are also game changing, and I for one am ready for the addition of new compiler black magics into Swift.

Chris Eidhof:

SwiftUI still seems to be full of bugs, making it hard to learn. You don’t know if it’s you making a mistake, or the implementation. Here’s another one[…]

Eric Lewis:

There is so many gotchas in SwiftUI. Especially around lists.

Wil Shipley:

The other (real) complaint is there’s no good reason this was secret. It’s not like Apple just invented reactive programming. This could have been done with community input.

Apple’s making this common mistake where they’re like, “Oh boy, we created something amazing with help from a huge community working together — now we should add our own private surprise stuff because surely we know better than everyone else in the whole world combined.”

Brent Simmons:

The future of app-making looks more and more like web development. Declarative. Semantic. Dynamic — adapting to context (interaction styles, accessibility settings, screen size, etc.). Runtime-editable.

Andrew Pontious:

I’ve never seen an abstraction layer high enough up to make cross-platform apps work well enough to be something I’d like to use for native apps.

Everyone keeps trying to reinvent the web, but for native, this time.

But the web exists for a reason. It was supposed to give us cross platform functionality without being native. And it works!


Apple fought cross-platform layers for so many years! And we cheered along with them!

And now, suddenly, due to their own strategic moves, they have too many platforms to develop for individually.

Same problem they brushed aside when it was only our problem!

Paulo Andrade:

While I’m very excited about SwiftUI, this type of stuff is what scares me most about letting the framework “do the right thing”. Sometimes you might want a slightly different behavior than what the framework does and you’re down the rabbit hole trying to make that happen.

Craig Hockenberry:

This is exactly why I think Apple has a HUGE advantage over other systems. Their solution must adapt for interaction sizes as small as a watch face and as large as a TV screen. That requirement means it must be control independent, thereby allowing a native platform feel.

Brent Simmons:

I have not watched WWDC videos so avidly, and with so much glee, in a decade.

Brent Simmons:

I’m surely not the only person to think, all week long, that this WWDC marks the end of Apple’s NeXT era and the beginning of the Swift era.

Matt Gallagher (tweet):

This article will look at how SwiftUI’s approach to declarative views compares to CwlViews, why the two approaches differ and what Apple changed to make this possible.


Long term, SwiftUI will be good but it’s going to be years of transition before most projects have a minimum deployment target of iOS 13 or macOS 10.15. As with the first year or two of Swift development, I expect a lot of hastily started, poorly implemented and quickly forgotten projects. The SwiftUI implementation, its API and associated tooling are likely to change rapidly as serious bugs and gaping holes are patched.

Colin Cornaby:

SwiftUI is amazing because it doesn’t feel like there are any losers. It makes the Mac better. It makes the iPad better. It makes the iPhone better. Heck, it even makes the Apple Watch and Apple TV better. I’m thinking about ways to ship apps for the TV and Watch, and I never would have considered that before. I even have Mac apps I might bring to iPad. I didn’t want to give up the power of AppKit on the Mac, and I didn’t want to maintain two separate code bases. Now I don’t have to choose.

Craig Hockenberry:

Something I haven’t seen discussed: how size classes will be handled in SwiftUI.

I realize it’s still early days, but this is a pretty important aspect of devices like the iPad, where screen real estate varies widely.

“Just add some conditional logic” hurts the abstraction.

Steve Troughton-Smith:

SwiftUI is really great for AppKit developers because it does give them a path forward that is cross-platform and isn’t ‘port to UIKit’. But I don’t see SwiftUI currently capable of replacing complex AppKit-specific Mac UI any more than UIKit; that could be some years out

Erica Sadun:

In fact, as a developer, I’m not happy about not having direct control over the tightness of either layout or an obvious way to relate ZStack siblings. If there’s a way to describe how much content hugging I want in a ZStack layout and how to prioritize which item in that layout should guide the others, I haven’t discovered it. If you have, please let me know!

Craig Hockenberry:

But I think there’s something important to add to his note: the SwiftUI DSL describes the most capable environment. It’s the maximum interaction surface: platforms will render and react to a subset of what’s declared.

Colin Cornaby:

Are master/detail editable views a problem in SwiftUI right now? If you have an array of structs, and a detail view that edits one of the structs, there’s no way to commit the edit to the master array it seems like.

Joe Heck:

Color, Layout, and graphics design are all clearly customizable with SwiftUI. I also expect that some of the crazier innovations (such as the now common “pull to refresh” gesture) will become significantly harder to enable from declarative structures. By its very nature, the declarative structure will make the common, well established UI elements easy and accessible, so much so that I wouldn’t be surprised to see a lot of early SwiftUI apps to “all look alike”. I expect the impact of “all looking alike” to drive a number of IOS dev teams a bit nuts.

The “escape hatches” to do crazy things clearly do exist – and while I haven’t reached that level of learning with SwiftUI, it does seem to follow the “make easy things simple, and hard things possible” concept of progressive disclosure.

It will be interesting to see what happens this fall when the first SwiftUI apps become available as experiments and where that takes consistency and usability on the Apple platforms.

Tanner Bennett:

It seems every single WWDC session on SwiftUI and Combine I’ve watched have managed to avoid talk of graceful error handling.

If someone could please point me to some resources on this, I would be very greatful. For example, displaying an alert when refreshing a feed failed.

Drew McCormack:

One thing I won’t miss is autolayout. Feels like the layout system in SwiftUI is an admission that autolayout was a dead end. It can live out its days with Garbage Collection and Java Cocoa. (Or perhaps it will remain, but only as an implementation detail.)

Kuba Suder:

Prepare to feel like you’ve just started learning Mac/iOS programming… This is a completely new thing which works in a completely new way, and it’s hard to switch your brain to a new mode. You will be thinking “How the hell do I do X” every step of the way.


Long term, I imagine the way it’s going to work is that SwiftUI (and possibly some related new frameworks) will gradually take over more and more parts of the underlying platform UI frameworks, to the point where they eventually just disappear. We’ll be writing a single codebase with SwiftUI and it will render differently on each platform, with some customizations required for each platform, but it’s possible that we’ll need less and less of those going forward, as the framework will get smarter.

Jaanus Kase:

In the old UIKit/AppKit world, view controllers were a central building block, and did a lot of manual shuffling between view and model. In the SwiftUI world, the view binds directly to the model, the glue is gone, and I have yet to figure out if there is any “logic” left which previously lived in ViewControllers and would still need to exist, or can I just forget about the whole ViewController concept.

Guilherme Rambo:

So apparently the way Apple found to hide SwiftUI (Amber) from the eyes of curious engineers was to implement it in a framework called “TimerSupport” lol

Drew McCormack:

Rather than hacking a DSL into the Swift language for SwiftUI, I think I would have preferred they add a data format based on Swift syntax. Like JSON is to JS.

Joe Groff:

We’d considered this. The problem with that for UI, and historically with nibs, is that if you outgrow what the data language can do, then you’re stuck rewriting a programmatic UI. By using code, the DSL, mix regular and DSL code, and also DSL and Kit components


The goal of this repository is to gather all this information having an unique place where looking for info about SwiftUI.

Update (2019-06-24): Mike:

Hmmm, looks like CareKit uses Combine and CoreData as a local database… And this project is open-source so you can get a glimpse how to use Combine in the wild!

Jeff Nadeau:

The SwiftUI Environment is extensible, if you want to propagate your own custom values hierarchically. Once you define a property on EnvironmentValues, you can push new values using the .environment modifier and a KeyPath to your property.

Mac Pro 2019


Power to change everything. Say hello to a Mac that is extreme in every way. With the greatest performance, expansion, and configurability yet, it is a system created to let a wide range of professionals push the limits of what is possible.

Function defines form. Every aspect of Mac Pro is designed in pursuit of performance. Built around a stainless steel space frame, an aluminum housing lifts off, allowing 360-degree access to every component and vast configuration. From there anything is possible.

I thought Apple wouldn’t listen and would find a way to screw this up. But it looks really great. Besides the core features like lots of processor cores and PCI slots, there are so many nice touches, from a couple USB-A ports to the rounded handles and the rotating, height-adjustable stand for the 6K matte display.

Joe Rossignol:

The new Mac Pro will start at $5,999 with an eight-core Intel Xeon processor, 32GB of ECC RAM, AMD WX 7100 graphics, and 256GB of SSD storage.

However, it’s way more machine—and price—than developers need. (And only 256 GB of storage for the $6K base model—when the base iMac Pro has 1 TB?) Similarly, the Pro Display XDR looks amazing, but I would like to have a more affordable 5K one to put next to my iMac.

I’m also not exactly sure what the situation is for internal storage. It looks like there are two slots, but I don’t know whether they are proprietary or can be upgraded after purchase.


Update (2019-06-03): Drunken Dogcow:

The PowerMac G5 base price was $1,999 (or around $2,700 adjusted for inflation). $6,000 is incredibly insane.

Update (2019-06-04): Rory Prior:

Of course on the PC side you can buy a workstation for dramatically less money to suit your budget. With Apple you’re either all in or you’re stuck with either a ‘throw away’ iMac Pro at the high end or pay through the nose for a weakly specced mini.

Timothy Wood:

I love the annual Apple hate day. Today’s favorite is the complaining about the $1000 discount you get if you go with the VESA mount option and get your own damn monitor stand for your deep color super bright 6K display that’ll last you 15+ years (my current Apple display is 17!)

Jack Brewster:

Saw a comment about “don’t complain about Mac Pro pricing Apple didn’t build it for you” which feels like the wrong take.

It could have been for me, too. But Apple chose not to make it that way. It’s a flexible, tower computer. It could have been many things to many customers.

Scott Anguish:

Apple could have released a monitor targeted to 10x more users that matched the iMac/iMac Pro 27” and 5k and we’d have been ecstatic.

David Owens II:

The blower-style exhaust fan looks pretty cool... I wonder how dust is handled though. I didn’t see any dust filters.


There sure is a LOT to say/question about this new machine, but my central one is how in the blazes can they call this a REAL pro machine if it’s not capable of running CUDA? Far as I know, CUDA is a very essential part of a LOT of actual professionals…

Mark Gurman:

I need help deciding between an iPhone XS and the stand that’s required to hold up the new $5000 Apple monitor.

Greg Titus:

“Detach. Move. Attach.”

Wait. So the display MAGNETS to the stand? People are going to get two $1000 stands and carry their 32" display in between them?!?!

There is going to be that one guy who gets their local coffee shop to install a stand for them at a table, isn’t there?

Wojtek Pietrusiewicz:

Dear @Apple @pschiller @tim_cook — this but with a Core i9, industry standard M.2 NVMe SSDs, and support for “regular” GPUs. And a normal price tag.

Ryan Jones:

Apple 100% DID abandon Pros!

“Everyone” was right.

And “everyone” saying it is 100% the main reason for today.

The community voicing and explaining concern saved Pro. 100%

Colin Cornaby:

The first third party MPX module was already quietly announced by Apple

Felix Schwarz:

Internal #MacPro SATA port mystery solved! Promise will make an enclosure that attaches to them: the Pegasus J2i with two 3.5" SATA drives. Promise will also make an MPX module, the Pegasus R4i with four 3.5" SATA drives. In total, that'd enable up to 10 internal HDDs.

Marco Arment:

Here (at 6:53) you can just barely hear what Jony was explaining to Tim about the new Mac Pro as I awkwardly stood behind them

Michael Pusateri:

Finally, I can tweet knowledgeably on a topic, the new Mac Pro & display. I help oversee 175+ Macs used for professional video editing, audio mixing, and graphics creation. Here’s a ‘hot take’ on the new Mac Pros.

Eric Young:

The new Mac Pro is the exotic flagship model. It’s the best computer money can buy. It’s the super car of computers

It’s not about need. It’s about want

I don’t need a McLaren or a Ferrari. I want a McLaren or a Ferrari!

Felix Schwarz:

According to specs, the new #MacPro ships with PCIe 3.0. Meanwhile, AMD ships Ryzen CPUs with PCIe 4.0 this year, doubling transfer speeds. Intel is rumored to start adopting PCIe 4.0 in late 2020. At these prices… may be worth waiting for it.

Ole Begemann:

The new Apple monitor doesn’t seem to have speakers or a camera built in.

Steve Troughton-Smith:

We entered WWDC without Apple offering a modular desktop that meets our needs, and we’re leaving WWDC without Apple offering a modular desktop that meets our needs. They clearly don’t have enough developers in their focus group, so the Mac Pro is a major failure in that respect.

See also: Accidental Tech Podcast.

Rick Gigger:

I know I’m not their target customer. I want to be. I want them to make a monitor they fits the needs of normal professionals, not just people doing high end video work.

See also: Hacker News (3), Rene Ritchie, Jason Snell, Joe Rossignol, Tim Hardwick.

Update (2019-06-06): Stephen Kampff:

Unfortunately, reference monitors aren’t all the same, and newer standards like HDR10 and Dolby Vision can only be achieved with a certain class of display. That wouldn’t be a problem if these things were cheap, but an industry standard Flanders Scientific monitor will seriously set you back, and you'll want it to last years. A Flanders that’s comparable to Apple’s Pro Display XDR would cost $35,000 and would be 4K instead of 6K.

A side note here that I prefer a true 16x9 4K reference monitor so there’s no upscaling from a 4K signal. Still, 6K is impressive and will be amazing for photographers.

Mac Power Users (MacRumors):

Stephen and David have boots on the ground in San Jose for WWDC 2019. In this episode, they interview Doug Brooks, the Apple Product Manager for the new Mac Pro.

Marques Brownlee:

Pretty sure this whole “Apple Pro stand costs $1000” rampant headline would’ve been avoided if on stage they just said

“Apple Pro display XDR costs $5999”

And then when the config site goes live in fall they have an option that says “ship without stand” and it drops to $4999

Colin Cornaby:

It's a Xeon workstation. What did you think it would cost? Apple was absolutely right that its price competitive. Things have changed since 2012.

Sam Deane:

The confusion comes from different definitions of “pro”.

For me it means a machine designed for people who want to replace components. Something I can put a new graphics card into and upgrade the memory and drives later.

Powerful, but not ridiculously so. Just flexible.

Nick Heer:

These prices and the ridiculous capabilities of these products are exclusive in the truest definition of that word. They exclude huge numbers of customers who either cannot afford to spend over $12,000 on a new computer and display, or do not need such high-end capabilities. I think that’s okay. The iMac Pro remains a very capable machine for all but the most demanding users.

Greg Koenig:

That’s the thing- the intro price is eye watering for a poor spec machine. I’ll bet not a single demo Apple touted can be done on a Mac Pro costing less than $12k (sans crazy display).

This is a great machine- but the low end needs $1500 off, and a 30" 5k display option.


Apple held an unprecedented roundtable with podcasters and bloggers to tell them how much they care about developers. […] Announcing that product at WWDC was a monumental insult to every single Apple developer.


What does this have to do with the new Mac Pro? It shows me Apple isn’t thinking on all cylinders. The Mac community has been asking for a IIci since before the 2013 Mac Pro “Trashcan”. The new mini just doesn’t cut it. And the new Mac Pro doesn’t either.

Mike Zornek:

I truly believe they should have revealed this MacPro and monitor at a proper video / media conference. Revealing it in front of developers who can’t afford it nor whom the product is marketed at just feel very out of context. We were begging them to built us a tower and display, but they built them for someone else, and it’s kind of depressing.


I wanted a $5000 tower where I could update the graphics cards a few years in. I don’t need 8 PCI slots, maybe 4 or 2 would work. I wanted to have easy access to RAM to add more in the future (I don’t need 12 slots I’m sure 4-6 would be fine). I want multiple SSD slots on the board (2 is fine). I want to be able to open it up and clean out the dust every few months (this is why an iMac will never work for me).

I wanted a $1000 self-contained version of the 5K iMac display. Maybe an ultrawide version? I like Apple monitors historically. They work great out of the box and have great color. Surely there is room in the market for a sub-$6000 Apple monitor for the “rest of us”?

Jon Alper:

The power of the Mac Pro 2019 summarized perfectly:

“With the head of software engineering right here at our disposal for an hour, I can’t think of anything better to talk about than…hardware” - @gruber

See also: Hacker News.

Update (2019-06-17): Paul Haddad:

We are now living in the time of the < $100 1TB high performance SSD!

If you don’t buy from Apple.

Jeff Johnson:

Interesting theory from @tytus_s is that the new Mac Pro was never for developers at all, and Apple only started to work on it when they started to get into the movie and TV making business and got pushback about it from showbiz people.

This makes sense, although it raises the question of why Apple specifically made the point at the 2017 media event that developers were their largest pro audience. That—and the history of sub-$2,000 Mac towers—is why developers expected the new Mac Pro to be “for them.” Apple even continued this in the 2019 Mac Pro’s announcement (to a room full of developers), presenting the Pro Display XDR as great for writing code.

The display is actually the main problem for developers. The Mac Pro costs a little more than people expected—given the iMac Pro. But the display does a lot more and costs a lot more than the type of display developers need. And, with LG exiting the market, there isn’t really a suitable non-Apple display available that’s 5K and the right Retina resolution for iOS/Mac development.

Colin Cornaby:

Just for fun I spec’d out a Dell workstation comparatively to a base 2019 Mac Pro. The Dell still has slower storage and less PCIe slots.

Rory Prior:

It’s just a shame they don’t make a box with an i9, at least 1x 16x PCIe for a GPU of your choice, upgradable RAM and storage. That would be the perfect system for 99% of pro users, power users and developers who don’t need workstation level components.

Bryan Pietrzak:

Apple has iPad mini, iPad, iPad Pro. MacBook Mini (Air), MacBook, MacBook Pro, iMac and iMac Pro, and Mac mini and Mac Pro. Seems like a mid range "Mac" computer in the same case, but i9 cpus, ddr ram, fewer PCIe slots, smaller power supply price point around $3-$4K could work

And they have Pro Display XDR, let's see an Apple Display 5K that takes the 5K iMac panel, 27" (or maybe 32"?) with stand and typical ports (including power delivery) for $1599 would selll very well

Helge Heß:

People who say that the new MacPro is not for developers are ObjC dinosaurs and never worked on a large Swift project (or a C++ one, like CLang).

Bob Burrough:

If a solution is inaccessible to you, it doesn't matter whether the reason is technical (e.g. poor thermal management) or financial (e.g. exorbitantly overpriced). Your problems remain unsolved.

Jean-Louis Gassée (Hacker News):

The gods who render mad those they want to destroy have struck again. They’ve caused a marketing exec — we hope not the same one who bragged about innovation in 2013 — to price the new XDR monitor stand at a baffling $999. Listen to the guffaws in the audience at 1hr 40 mins into the keynote video. Why not $399 instead and increase the MacPro base price by a barely visible $600?

A friend points out two factors. One, Mac Pro configurations will probably be used with multiple XDR monitors mounted in a bay arrangement using relatively inexpensive ($199) VESA mounts. Two, businesses and production companies are less price sensitive than the developers in the WWDC audience.

These are reasonable points, but good marketing deals with emotions and impressions, not mere reason. The $999 stand was widely mocked in the media, Apple was labeled as greedy and tone-deaf — the latter definitely deserved.


Heya @atpfm @marcoarment @siracusa @gruber maybe your ear w/ Apple can find out why the $6K Mac Pro has slower read SSDs than 2017 iMac Pro & 2019 MacBook Pro:

3.3w/2.8r iMac Pro
2.2w/3.2r MacBook Pro
2.7w/2.6r Mac Pro

AFAIK slightly faster than 2017 & 2019 iMac 5K 2.5r/2w

Marco Arment:

iMac Pro uses two SSD modules in parallel for all sizes. Mac Pro uses just one in the 256GB config, two in the higher ones.

Also maybe relevant: I don’t think iMac Pro uses a PCIe switch to offer more total lanes than its CPU, but Mac Pro does. Maybe SSD bandwidth is reduced.

Ed Cormany:

When Apple announced the new Mac Pro last week, one of the things that got the most attention was its price tag: the base configuration will cost $5,999. The question is whether it’s an outlandish price for what is far and away the most powerful Mac ever sold. The fact is that Apple has definitely charged that much in the past for its hardware.

The graph above shows the base prices for 60 different Apple hardware lines, and how those values compare over time accounting for inflation.

Tom Nelson:

Will additional MPX modules be available in the near future? And will they only be available from Apple, or will other peripheral manufacturers be able to make use of the MPX system?


IKEA has joined in poking fun at the new Mac Pro… 🧀

John Kheit:

The entirety of the Mac press’ post-WWDC rationalization distortion field is: “the computer for the rest of us”, “it’s not for you.” After receiving Apple’s PR fluffjob, these pundits make straw-man arguments that people think the Mac Pro is bad because it’s too pro, too powerful, or not cheap enough. They ignore what enthusiasts are saying: “Apple please add a lower entry level slot upgradable model that enthusiasts can also afford.”

Accidental Tech Podcast discusses how the Mac Pro effectively does have internal drive bays.

Update (2019-06-25): Marco Arment:

These are the CPUs used by the Mac Pro. Note Intel’s pricing.

The “M” variants (which cost twice as much) are needed to support >1 TB RAM configs.


There is zero chance that the Afterburner card is “$1K …$1.5K”, as Marco guessed.

To give you context, similar accelerator card produced by Red is almost $7K…

And programmable ASIC that are comparable are in the $9K-15K range.

WWDC 2019 Links


Customer Stuff:


What’s New:

Release Notes:

Key Sessions:



This post will be updated as I find new links. If you see anything good that I missed, please tweet or e-mail me.


Final Marzipan Thoughts Before WWDC 2019

Neil Sardesai:

“AppKit is our primary native framework and it takes full advantage of all the Mac has to offer. And in no way are we de-emphasizing that.” —WWDC 2018, Platforms State of the Union

Craig Hockenberry:

Cross-platform frameworks have a long history of sucking. If you ever used a Java app during the early days of Mac OS X, you know immediately what I’m talking about: the interactions were from a different universe. The design of the system was a “least common denominator” where only a limited set of capabilities was exposed. It just felt wrong.


Apple’s been down this road before and I don’t see them making the journey again. Instead, I see them taking a new and forward thinking direction. A bold and pragmatic change that Apple is famous for: they’d be setting themselves up for the next decade of user interaction.


I’m not going to predict how this would be accomplished. Yes, it could draw inspiration from React or other similar technologies. The only thing I’m confident of at this point is that Apple knows it has a problem and is working actively to solve it in a platform-independent fashion.

Marzipan is our first step. And what I’ve described above is Amber, the next step.

Brent Simmons:

I’m kind of unsure that leadership at Apple understands what’s great and important about Macs that we should not lose.

Evolve, change, yes — but not become a supercomputer with its arms tied behinds its back. That’s what I worry about it.

Riccardo Mori:

Also, as a consequence, I fear that the Mac App Store is going to become more like iOS’s App Store in every way — with thousands of crappy apps, and terrible pricing trends. Where by ‘terrible pricing trends’ I mean the race to the bottom on the one hand, and on the other hand an increase in subscriptions as the only payment method even for simple utilities and single‐purpose apps. (I hope more people realise how subscriptions aren’t sustainable on a large scale for customers).

I fear that iOS is going to become the new model that dictates how the Mac user interface has to behave. That Macs are going to be considered just as ‘big iPads’, and that paradigms and behaviours that are tailored for iOS and belong to iOS come to replace those paradigms, principles, and behaviours that made the Mac’s user interface great.


I’m all for change if it brings unequivocal progress. But I’m afraid that Mac OS is getting repurposed and repackaged more to fit inside an agenda than to keep thriving as a platform with its history, characteristics, and unique features.

I’ve experienced firsthand all the transitions the Mac platform has gone through, and this is the one that’s leaving me the most apprehensive. Because all past transitions brought clear advantages to the Mac, either from a hardware or software standpoint. The signals were of progress for the Mac platform; or, at the very least, of having to take a step sideways to then take two steps forward. This time it feels that things have to change simply to benefit the advancement of another platform.

Dieter Bohn:

The apps are not good. I think Apple should make more of them.

In fact, I think Apple should do more than double down on these iPad-style apps on the Mac. I think Apple should go all in and make nearly all of its consumer Mac apps with the new UIKit / Marzipan frameworks, including Mail, Notes, Messages, FaceTime, Photos, Reminders, and Calendar. Apple should just go for it, sooner rather than later, and ideally right now.

My reasoning is pretty simple: whether you think these apps should be the future of macOS development, they’re absolutely coming either way, and Apple should want to ensure that they’re great.


I worry that Apple could find itself facing an analogous (though not parallel) quandary to what Microsoft has faced with its own next-generation Windows app framework. Called the “Universal Windows Platform,” it has been fraught with changes in direction and complaints that it was too limiting. It took the company nearly half a decade just to decide what to call them. Worst of all, UWP saw very little adoption as developers stuck with the old way of making apps. Now, even Microsoft might not be very committed to them anymore. The best way to avoid that kind of confusion is to be clear and decisive from the start.

I’m also hopeful (perhaps naively so) that this new Mac framework will be powerful and flexible enough for many different kinds of apps.

Jason Snell:

Sort of like jumping into a cold swimming pool. I’m not sure Apple’s really that kind of company, but I hope that behind the scenes, Apple is ceasing development on the Mac-only versions of all of its consumer apps and instead pushing all future development to be done with Marzipan in mind. We might not get a Marzipan version of Mail or iMovie or Pages this year, but those need to be in the works.

Like it or not, Marzipan apps are the future of macOS—and they need to be good, or macOS won’t be.

If that’s in fact the future, it’s only because of Apple’s choosing. I simply don’t see the situation without Marzipan as dire. Mac are selling well. And what problems there are could be fixed in other ways—they’re not that the apps aren’t iOSy enough, more the opposite. Part of my pessimism is with the general idea of write-once-run-anywhere. But also, at the present time, I have low confidence in Apple’s ability to implement good rewrites of Mac software. What in theory may seem like an OK unification strategy, is actually quite risky because if they don’t do it well we’ll end up much worse off than if they’d just kept the Mac in maintenance mode for a while.

Damien Petrilli:

I see some tweets about electron Apps and marzipan.

But Apple is mainly responsible for it:

- driving quality of App down (and leading the way since iOS 7)
- making the app market unsustainable
- bad dev tools / documentation making it costly to do native dev

Marzipan is seen as one way to tackle this, but unless all the points above are addressed today, this isn’t going to change and could even get worst.

Steve Troughton-Smith (tweet):

I have been very vocal about why I think UIKit coming to the Mac is something to be excited about. There is so much potential in unifying the software ecosystem across Apple’s platforms, but to do it right you can’t stay on the fence like Microsoft did. For this to work, you need to own it, and you need to make it so good that it’s hard to imagine wanting to use or write any other kind of software. That is how iOS makes me feel, and that is how the Mac should make iOS users feel.


I really don’t think there will be a viable future for the Mac if Marzipan falls flat on its face. Apple’s dominant ecosystem is iOS — that ship has sailed. No new UI framework or declarative layer on top is going to change the arithmetic; any new app framework for the Mac will by definition have to be shared across iOS and Mac, or we’ll be right back where we started. By the time we’ve got to that point, there may not be any native desktop apps left, and iOS will still be accelerating into the future with new form-factors, augmented reality or whatever comes next. Even native app development titans like Adobe have a version of Photoshop in development for WebAssembly, and it’s hard to not see the appeal for developers. The web is amazing; WebGL and WebAssembly will enable all kinds of powerful new platforms.

Tanner Bennett:

Geez, I don’t know what planet Steve TS lives on, but just because one platform is more “dominant” than another (iOS vs macOS) doesn’t mean one is or should be totally left behind.

That’s like saying cars are the dominant form of transportation and we should just abandon boats.

Rob Griffiths:

I honestly wish Apple were bringing the Mac and iPad closer together by bringing more of the Mac to the iPad than by bringing more of the iPad to the Mac.


Apple is supposed to complete the curveball it threw all of us for in last year’s WWDC, when it started to say that iOS apps are not coming to Mac, and following it up by saying that instead, UIKit is coming to the Mac, presenting four new apps that looked like straight-up ports from their new iOS incarnations that had in fact not even been ports.


The reason I’m not wild about Marzipan is because wanting to use a Mac in the first place has always been about liking the way things are subtly different and subtly better. The Marzipan apps so far have been completely bled of this quality. They make the same mistake “Universal” Windows applications did, which is to believe that taking a touch interface and sprinkling keyboard-and-mouse adaptiveness on top of it is “enough”. It is “enough” for a dropdown menu to be one of those scrollable list pickers - the ones designed for a finger to swipe through on a constrained display, with haptic feedback guiding you. (This was UI that Apple actually shipped in an app that wasn’t just a major feature of an OS update but a flagship app of a new framework.) At least the UWP applications can more readily expect the screen on a laptop to respond to touch.

The thought of Marzipan being capable of delivering something Mac users will recognize and praise as Mac-like is laughable; the thought of it subsuming Cocoa to become the recommended default is offensive. Cocoa eclipsed Carbon because it was better at providing a Mac-like experience. For all the recent iOSsification of macOS, I still don’t see this being the case without extensive surgery. If anything, the way forward should have been a “Cocoa X”, designed from scratch with the learnings of both UIKit and AppKit/Cocoa in mind.

See also: The Talk Show.

Colin Cornaby:

Ok, final pre-Keynote Marzipan hot take: I find it funny when it’s put in terms of some emotional fight over legacy vs modern and looking down on people. I just want a tool that’s able to get the work done I need it to get done. Mac, iPad, whatever.

When there is a possibility or an actuality of the platform preventing you from getting your work done, or making it a lot more difficult, that’s a problem.

People who use their Macs to get a job done that they couldn’t do with another tool don’t care about opinions about legacy or whatever. A hammer is a legacy tool but people get important things done with them every day.


Samsung Notebook 7

Cameron Faulkner:

Of the two sizes, the 13-inch model bears the closest resemblance to Apple’s MacBook Pro, with its keyboard arrangement and center-aligned trackpad, and well, just about everything else about it. The 15-inch laptop’s design dashes the illusion completely with a numpad on its keyboard, which shoves all of the keys and its trackpad left-of-center.

The Notebook 7, unlike Apple’s MacBook Pro, features a load of useful ports, including two USB 3.0 ports, a USB-C port, HDMI, and a microSD slot. So, no dongles are necessary if you want to hook it up to an external monitor, or connect multiple accessories — though it can’t connect via Ethernet.

Samsung’s homage to the MacBook Pro starts at $999.99 and will release in the US on July 26th on Amazon and Samsung’s own online store.

Lots of aspects that I wish Apple would copy. They even have inverted-T arrow keys.


Proposed Screen Time API

Joe Rossignol:

Over a dozen parental control app developers have come together with a shared message for Apple: it’s “time to put kids first.”

Together, they have launched a new website called Screen Time API that urges Apple to release a public API granting developers access to the same functionalities that iOS 12’s Screen Time feature uses. The developers have even proposed their own API, complete with samples of code and a diagram of how it would work.


The developers were encouraged to act by Tony Fadell, a former Apple executive known as the “Father of the iPod.” Fadell backed the developers in a series of tweets, and according to The New York Times, he also said he would help “push” their message “out to the world,” adding “just make sure it’s done BEFORE WWDC.”


Update (2019-06-04): nilrog:

+1000000 to this...

The @Apple implementation of Screen Time sucks am because it’s filled with weird we need alternatives!