Archive for April 10, 2019

Wednesday, April 10, 2019

macOS 10.15 to Break Up iTunes

Guilherme Rambo (MacRumors):

The new Music, Podcasts, and TV apps will be made using Marzipan, Apple’s new technology designed to facilitate the porting of iPad apps to the Mac without too many code changes. It’s not clear whether the redesigned Apple Books app will also be made using the technology, but given that the redesign came to iOS first and its usage for the other apps, it’s likely that this new Books app will also be using UIKit.

With the standalone versions of Apple’s media apps coming to the Mac, it’s natural to ask: what about iTunes in macOS 10.15? According to sources, the next major version of macOS will still include the iTunes app. Since Apple doesn’t have a new solution for manually syncing devices such as old iPods and iPhones with the Mac, it’s natural to keep iTunes around a little longer.

I’m not looking forward to this because, while I agree that iTunes needs work, I don’t have confidence that Apple will preserve its functionality (or even its desktop-optimized design) in the new apps. I expect that iTunes will remain the only way to sync music that you didn’t buy from the iTunes Store. Apple’s track record is to remove features from AirPort Utility and QuickTime Player 7 and let the dead versions hang around for years until eventually sunsetting them, without ever reimplementing what was lost.

John Gruber:

Nothing surprising here, but it leaves the $64,000 question unanswered: will these apps be more like dumbed-down iPad apps on the Mac, or more like smartened-up Mac apps on the iPad?

Nick Heer:

The unrequited optimist in me is imagining a next generation of cross-platform app that feels completely platform native no matter where it’s running. But I have also used Music on the iPad and it’s not as good as its iPhone sibling — and those are just different versions of the same app on the same platform.


And, as I have no plans to stop using my local music collection and manually syncing a subset of it to my iPhone, I am wary of what this could mean for my stubborn situation over the long term.

Damien Petrilli:

Some are happy about killing iTunes but it’s the only way to load personal stuff on iOS devices so far, do local backups, manage music, avoid cloud, etc.

If marzipan Apps just replace the Apple services and kill this technical part it’s going to be a mess.

Andrew Pontious:

Really not looking forward to Apple’s cheery full-court press (echoed by many online pundits) about how great their new shitty converted iOS apps are for the Mac.

For me, this is proof of further decline of Mac, not improvement.

Colin Cornaby:

I hope with the amount Apple is relying on Marzipan, they fix issues like Marzipan apps rendering at the wrong resolution for compatibility reasons. It makes the text on non-Retina displays really awful and I can’t imagine it helps with in app graphics.

I’m also not exactly a fan of the possible performance issues of Marzipan apps all being boxed inside of their own runtime-ish thing.

Previously: Apple to Target Combining iPhone, iPad, and Mac Apps by 2021.

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

“The Mac experience won’t be worse because of Marzipan” ”Also now we’re going to ship a bunch of redundant audio players because we can’t get our act together on feature sets.”

If they booted all the video features out of iTunes into the TV app, that would help in straightening out iTunes. But I’m guessing they might be stuck on transitioning that portion of the iTunes library on disk to TV, and what to do for Windows.

Podcasts and Music being separate apps still baffles me on the Mac. They seem like complimentary functions and I’d rather have a single audio player UI, and not have two icons in my dock/applications. And I’m never listening to music and playing a podcast at the same time.


We will never correct from being app-centric to data-centric soon enough. So much damage has been done because we didn’t manage to solve the filesystem UX problems!!

Dan Masters:

Instead of revamping & maintaining the Truck App, they’re taking it all and just throwing it away. iTunes is only terrible because they’ve neglected it.


This week, I’ve been using iTunes to manage my extensive music library. Its performance has become shocking. But it’s still the most powerful, versatile music library app I’ve ever used.

Abandoning iTunes for Apple Music is equivalent to forcing people to use Excel Mobile on Mac


Of course, the most likely scenario is that marzipanOS Music will just be a straight port of the iPad app.

If you need any of this “legacy cruft”, you’ll need to use the neglected iTunes app (which will turn into abandonware).

Josh Marshall:

What if Apple take the same road they have with photos? Provide the solution for the 95% of users in their own apps. Then provide access into the library for 3rd party apps to handle importing, metadata+art editing, and playlist creation.

Update (2019-04-15): Dan Moren:

While Smart Playlists created in iTunes sync to iOS via iCloud, there’s no way to natively create them on iOS devices. And that’s a shame, because although Apple has tried to improve its algorithms in Apple Music to surface new songs you might like, those playlists and stations pull from the whole realm of available music, rather than the music you’ve self-selected into your own library. They’re much more powerful than static playlists and allow users a lot more control over their listening habits. It would be a shame if a new Music app on the Mac did away with them.

Marco Arment:

I’m particularly proud of the iTunes-breakup segment on this week’s @atpfm. If you love computers that empower you to be a power user, give this a listen (start at 30:12, runs about an hour)

Jason Snell:

If you’re expecting the new Mac apps to just be mirrors of their iOS counterparts, you might be pleasantly surprised. Apple has the opportunity to work on the iOS apps to make them a little more functional — and have that work come across to macOS at the same time. The iOS apps lack a lot of the functionality of iTunes, and while replicating every iTunes feature is not in the cards (probably ever), it’s hard to believe that Apple won’t attempt to upgrade the apps as it brings them across to the Mac.


It would also be helpful if Apple lets Music add audio files to the library, a feature that iTunes has had since Day 1 and that has never been available on iOS. If you’ve ever bought an indie album via Bandcamp on an iPad, only to receive a Zip archive in return, you’ve run into this roadblock. While the Music app will always primarily be an interface for Apple Music, letting users import audio files is a necessary addition. (The same should be said for adding video files to the TV app.)

Kirk McElhearn:

Rumors of Apple dismantling iTunes are almost as old as the software itself. I can remember people clamoring for its destruction back when Apple added video management to the app, claiming that since it's called iTunes, it shouldn't manage anything but music.

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

My favorite Marzipan “bug” is how it doesn’t understand mouse drags. Really frustrating to use home.

My guess is it’s still the underlying hold-then-drag gesture recognizer that iOS uses, and they don’t want to break apps by automatically getting rid of the hold.

This has existed since the initial betas and I was thinking about tweeting about it then but I said “Well you’re not supposed to share beta screenshots and I’m sure it will be fixed by final” and guess what jokes on me.

Update (2019-05-09): Mark Gurman:

The Mac Podcasts app will be a ported iPad app (Marzipan), but the Music and TV apps will likely be true Mac apps.

Steve Troughton-Smith:

As @_inside revealed it on Stacktrace, I can finally repeat here: the Music app on macOS 10.15 is indeed not a UIKit app, but is a stripped-down and refactored version of iTunes. Including (last I heard) disc burning, smart playlists, & device management

Accessibility Quirk With “Bold Text”

Joe Heck:

When one of my testers ran the app, the toolbar button “disappeared”. It was still there, but rendering white on the white toolbar. It took a while to figure out that the difference between our environments: that Bold Text was enabled in accessibility. Then it took a while longer to find that it wasn’t respecting the local tint, but using the global tint when enabled.

That “Bold Text” being enabled effected the image rendering came as a surprise to me. Some friends indicated they’d seen significant performance issues with Bold Text as well (in cells in a tableview), so they knew that it impacted image rendering – I guess it does something to try and make an image “bolder”, even though it’s not text.

Kindle 9


Meet the all-new Kindle, now with a built-in adjustable front light so you can read indoors and outdoors and at more times of day. Purpose-built for reading, Kindle features a glare-free touchscreen display that reads like real paper, even in direct sunlight.


Designed by Amazon to perfectly fit your Kindle, these slim, form-fitting covers attach securely and fold back for one-handed reading. They automatically put your Kindle to sleep when closed and wake upon opening, making it easy to get back to your story.

I think it’s worth stepping up to the $130 Kindle Paperwhite, which is waterproof and has almost twice the resolution, but it’s cool that you can get a Kindle with a light and the higher contrast screen for only $89.

Update (2019-04-16): Joe Workman:

I bought a like-new Kindle Voyage 2 weeks ago off Amazon for only $80. Replaced my Kindle 3. Very happy with it.


I did the same a few weeks ago. I was upgrading from a Paperwhite 2 and wanted the new waterproof one, but I found out the screen on the Voyage is still superior to everything but the Oasis. I’m so happy with the purchase.

Postmortem: iTunes Affiliate for Apps

Jeff Johnson:

Yesterday, six months later, I finally got paid the remaining balance owed to me as an iTunes Affiliate. Getting paid was an ordeal that took many emails from me to the iTunes Affiliate Program.


I had balances in at least 20 forms of currency. The payments to me are all converted to US dollars, but their payment system is organized by currency, and each currency has a minimum payment threshold. If I recall correctly, the payment threshold was $30, so if your balance in one currency is less than the threshold, you don’t get paid from that balance, and the iTunes Affiliate Program just hoards your money until you reach the threshold.


Be persistent. Mention the $50 manual adjustment. If all else fails, threaten a lawsuit. They’ll want to close your account, but don’t let them close it until after you’ve been paid in full.

I’ve been going back and forth with them for months but didn’t threaten a lawsuit, and they haven’t paid me yet.


Improving the UI of Swift Generics

Joe Groff:

This document tries to provide a foundation for conversations about refining the generics model, not really changing the framework established by the Generics Manifesto, but considering some of its weaknesses, and how we might make it more approachable and easier to use:

  • One of the biggest missing pieces from the original manifesto is generalized existentials. These have been hailed as a panacea for a wide range of problems, but as we’ve explored the idea, we’ve found that there are many use cases that existentials would never be able to address.
  • In particular, although existentials would allow functions to hide their concrete return types behind protocols as implementation details, they would not always be the most desirable tool for this job. We have a gap in the generics model in allowing functions to abstract their concrete return types while still maintaining the underlying type’s identity in client code, and we’ll look at how that gap can be filled.
  • We’ll also look at our existing notation for generics and existentials. Swift follows in the tradition of similar languages like C++, Java, and C# in its generics notation, using explicit type variable declarations in angle brackets, but this notation can be verbose and awkward. We could look at what C++20 is doing with abbreviated templates, and Rust with its impl Trait feature, for ways to make writing generic functions more concise and fluent. Also, protocols currently do double-duty as the spelling for existential types, but this relationship has been a common source of confusion.

Update (2019-04-15): Tim Ekl (Hacker News):

To that end, this post aims to walk through some of the proposals from Joe’s document, explaining the syntax and offering examples of how the changes to generics might look in practice. We’ll pick up a couple technical terms in a practical setting, and wrap up with some details about the open Swift Evolution proposal(s) being considered.