all micro contact rss

About That Keyboard

I managed to get my fingers on one of the new MacBook Pro 16-inch laptops at an Apple Store yesterday. As someone who actually likes the butterfly keyboard that preceded it, I thought I’d share my perspective. I know I’m not alone in worrying this new keyboard would be a step backward for me, despite being absolutely the right move for the company.

Obviously this is a very short first impression, obtained at those ridiculous Apple Store tables that seem to be the worst possible height for typing while standing. So I’ll clearly need more time to make a final judgement. But it didn’t take long to at least know that this is indeed a bit of a step backwards—in terms of feel—for me.

The best way I can describe the new keyboard is if you drew a line with the butterfly keyboard on one side and the wireless Magic Keyboard on the other, this new MacBook Pro keyboard would fall closer to the Magic Keyboard in feel than the butterfly. No surprise, then, people who hated the butterfly are dancing in the streets.

It’s not completely Magic Keyboard in feel, though. It does manage to avoid the sponginess of the Magic. The keys do feel much more precise. Press down from an off-center position, and the whole key does seem to fire pretty evenly. Not quite as good as the butterfly, but better than the Magic, for sure. That’s quite an engineering feat in a scissor switch.

It’s not a bad keyboard, by any stretch of the imagination. And it certainly tramples the old keyboard on the 2015 and prior models. But the extra travel makes me feel like I’m working harder than I should have to when I type. And the extra space between the keys looks and feels cheaper and older to me. My guess is most people looking at this machine side-by-side with one of the current 13-inch models would say the 13-inch is the newer model.

But looks aren’t everything, of course. I’m just gaining a new appreciation for the reasoning behind the butterfly’s aesthetic.

I have never had an issue with the virtual escape key, but since TouchBar doesn’t lose any functionality by bringing back the real key, I’m happy to see the real key return. Combine that with the space now between the edge of TouchBar and the power button, and it has a nice symmetry to it. No complaints about what’s going on at the top of this keyboard.

The inverted-T arrow keys, do, indeed, look old and janky compared to the full-sized keys on the butterfly. (I never thought it was that big a difference until looking at the two side-by-side again yesterday.) But this is a case where function over form is absolutely the right move. I’m thrilled to see the inverted-T back.

So increased travel, slightly less precision, and poorer looks, balanced against the return of inverted-T arrow keys and the assumption of better reliability. (I know that’s a big assumption. But everyone else seems to be giving Apple the benefit of the doubt on this, so I will, too.)

Overall, I think Apple made the right move. But there’s no doubt in my mind I’ll like the keyboard on my next MacBook Pro a little less.

But probably only a little.

It’s not an App. It’s a Store.

Apple TV+ is launching today. We’ve already heard, and will continue to hear, hot takes on how Apple has far too little content, how the shows are hit or miss, that they can’t possibly compete with Netflix and Disney, and on and on.

But here’s the thing. Apple TV+ itself is not particularly important to Apple’s bottom line. And it doesn’t have to be for a long time.

Take a look at the TV app on your iPhone, iPad, or Apple TV. At first, when I saw the way Apple was mixing and matching all the content from available channels, iTunes rentals, purchases, and streaming services like Prime, I was annoyed. How am I supposed to find shows specific to certain sources in here? And more importantly, how can I tell the difference between what I already have access to with my existing subscriptions, and what is going to require a new subscription or a one-time payment?

And that’s the rub. You can’t easily get a screen with all the content you already have access to. Sure the library tab will show you movies and tv shows you’ve purchased on iTunes. But my HBO subscription? Prime? These are just mixed in with all the rest of the content. You can dig and find HBO specific pages, sure. But they are buried behind multiple layers of UI. And there’s a good reason for that.

The TV app is not an app. It’s a store. And Apple knows a thing or two about running stores. They know the more you walk in and hang out, the more likely you will spend some money while you are in there. If I see a new show that looks compelling from Showtime? I can subscribe right there in app. See a movie that I want to rent? Bam, one click of my remote, and I’m watching it. It’s a smorgasbord of impulse buys.

And Apple gets a cut of just about everything in there.

No wonder Apple is giving away a free year of Apple TV+ to people who purchase new hardware. Right now, they just need to drive people into the app. Apple could probably afford to make Apple TV+ a loss leader permanently, as long as the TV app continues to be the primary place you go to watch content. Sure, it’s important Apple creates some compelling shows to keep you coming. But they can afford to grow their Apple TV+ paying subscriber base relatively slowly. They can play the long game, as they are so good at doing. In the meantime, as long as a percentage of the massive installed user base rents a movie or two or subscribes to a channel every month, that revenue will easily outpace the measly $5 they might get from a couple of million TV+ subscribers in the first year or so.

Compare that to Netflix. Every time I open the Netflix app, I see nothing but content to which I already have access. Netflix will never make any more money with their app from me than what I’m already paying them monthly. And as new services take away non-exclusive content, Netflix is poised to become less—not more—valuable over time.

So while so many will want to focus on whether or not Apple is going to be able to sustain the budgets of multi-million dollar-per-episode shows, keep in mind that there’s a lot more money to be made here than a simple $5 a month subscription to Apple TV+.

TV+ is just one product on the shelf of a much larger store.

SwiftUI and PopToRootController Workaround

I’m thoroughly enjoying using SwiftUI. But like any new API, there are limitations that can at times be maddening.

One issue I ran into while developing the UI for logging custom and favorite items in my RECaf watch app was the lack of any way in SwiftUI to pop back to the root of the navigation stack.

Here’s my scenario: You start with a list, showing items for Custom Entry and Favorites. Tap Favorites, and you are pushed to a list of your favorites. Tap one of the favorites, and you are presented with a confirmation screen, detailing what you are about to log. At the bottom are two buttons. One for completing the log, and the other for canceling.

Because SwiftUI has no function for getting back to the root, I had no way to pop the customer all the way back to the initial list after they canceled or logged. I was stuck hoping that Apple ends up adding this function sooner rather than later. I couldn’t ship this, knowing the customer would have to swipe right several times to get back to the home screen.

But then I remembered, my root SwiftUI view was inside a WKHostingController.

WKHostingController is just a WKInterfaceController that expects a SwiftUI body view. It still retains all the methods of WKInterfaceController, including awakeFromContext.

So what I did was set the hosting controller to listen for a notification indicating a reload was needed. Then, on my Cancel button and on my log confirmation button, I could post that same notification.

And sure enough, the navigation stack pops back to the root.

I’ve seen other workarounds that use more convoluted ways to get SwiftUI to go back one level in the hierarchy, or to dismiss a presented view. But for getting all the way down a long stack in one move, this is going to be my goto. At least until Apple gives us a proper way to pop to root.

Here’s the code for my hostingController:

import SwiftUI

final class NewEntryController: WKHostingController<NewEntry> {
    override func awake(withContext context: Any?) {
        NotificationCenter.default.addObserver(self, selector: #selector(reloadRoot(notification:)), name: Notification.Name(NotificationKeys.watchReloadNeeded), object: nil)
    @objc func reloadRoot(notification: Notification) {

    override var body: NewEntry {


Watch Dependence

I have reached the unfortunate conclusion that RECaf’s watch app will not be able to go fully independent this fall with the release of watchOS 6. While you have always been able to log from your wrist using the app or Siri shortcuts, I was hoping folks who didn’t want to keep RECaf installed on their phones would be able to continue using RECaf on their wrist.

There are simply too many things that can’t be done on watchOS alone at this point, however. So for now, you’ll have to keep that phone app installed.

What’s missing?

  • HealthKit queries on watchOS are limited to about 7 or 8 days worth of data. If RECaf does a sample query for all your caffeine, it will only get the last 8 days or so. I need 30 days to calculate your average caffeine intake. I need 60 days to figure out your most frequent sources and amounts and offer those for quick logging. For now I will have to continue calculating this on the phone and sending the data to the watch.
  • You can’t subscribe to changes in HealthKit in the background. If you log some caffeine using your phone or with Siri, the watch will have no idea that log happened until the app is launched. That means I can’t update your complication without using direct messaging from the phone to the watch.
  • No in-app purchase. You can’t subscribe to RECaf without launching it on your phone. There is no mechanism for purchasing on the watch at this point. I had planned to work around this by having you launch RECaf on your phone just once after installing. That would have been a terrible user experience, but I was willing to accept the trade off before I discovered the other limitations above.

This doesn’t mean RECaf won’t get some great improvements in watchOS 6. I’m working hard on a major update that will make the watch component of RECaf more independent. (You will be able to log all sources, not just your frequent items, for instance.) It just won’t be completely untethered from your phone just yet.

I’m sure Apple is aware of these restrictions and is planning on giving Apple Watch even more power in the coming years. But in the meantime, I suspect fewer apps than you might be hoping will be going fully independent in the short term.

If the Shoe Doesn't Fit, Grab Your Shoehorn

The internal drama explains a lot about Apple’s dilemma. Its one major new product of the post-Jobs era, the Apple Watch, made its debut five years ago. Its iPhone business is faltering, and more recent releases like its wireless AirPods haven’t been enough to shore up falling sales. It hasn’t had a megahit new product since the iPad that started selling in 2010.

via The Wall Street Journal

Every line of that paragraph infuriates me.

Its one major new product of the post-Jobs era, the Apple Watch, made its debut five years ago.

And the iPad debuted 5 years before that. The iPhone was only two years prior, but the iPod was 7 years before that. And the Mac, well that was 17 years prior to that. See a pattern here? Neither do I. Major new products from Apple come out when they are ready. There has never been a period in Apple’s history with hit major new product after major new product.

Its iPhone business is faltering

A 5% decline on 46-million units per quarter now qualifies as “faltering.” Check.

and more recent releases like its wireless AirPods haven’t been enough to shore up falling sales.

AirPods are a legitimate cultural phenomenon. But that doesn’t fit the narrative here, so let’s point out that they’re not expensive enough to make up for “faltering” iPhone sales. Because that won’t directly contradict your point later in the article that iPhone X was too expensive.

It hasn’t had a megahit new product since the iPad that started selling in 2010.

iPad is the fastest-selling consumer electronics gadget of all time. Sure, Apple hasn’t had a hit of that magnitude since. It also never had one of that magnitude prior. And neither has anyone else. What’s your point?

Look, I get it. Jony Ive quits Apple, and you as a journalist see an excellent opportunity to cash in on the sentiment that “things just aren’t as great as they used to be.” So you gather a bunch of disgruntled former Apple employees who haven’t exactly “had a megahit” themselves since they left and cast as negative a picture as you can, so you can generate as many clicks as you can. But don’t expect me to read this drivel and actually believe any of it.

By the end of the piece, I’m supposed to think Apple is doomed because Ive would rather spend time with his ailing father than watch a Lady Gaga concert. (I shit you not.)

But of course, my Twitter timeline is full of Apple fans with malfunctioning keyboards telling me this is a “must read.” So, mission accomplished, I guess?