all micro contact rss

We’ve Changed

“it appears the world is going up in flames, both literally and figuratively, and the Apple rumor mill, which once brought us a bit of cheer throughout the winter doldrums, is now greeted with a general sense of weariness and indifference.”

via Becky Hansmeyer

I hadn’t thought of that particular point before, but it’s obviously accurate. People in general are anxious and scared to death about the condition of the world and where it is headed, be it political divisions, global climate crisis, etc. And so that negativity naturally flows right into other aspects of their lives—namely the things they geek out about.

I love Curtis Herbert’s reaction to Becky’s piece on Twitter:

He’s absolutely right. Apple could release technology as game-changing as iPhone today, and people would love it for about two weeks. Then the negativity would pour in immediately after. How do I know this? It already happened with Apple Watch. Apple created a device that literally saved me from a stroke just by wearing it. But what was the community’s reaction? “The icons in that little honeycomb are too hard to tap.”

The same thing will happen with Apple glasses. The car. Whatever else Apple does. The hate will drown out whatever faint praise anyone has the gall to post.

I think it’s time we face the fact that sure, Apple has changed. It’s gotten bigger. More corporate. More mistakes are falling through the cracks. But also, we’ve changed as a community. We’ve become ridiculously jaded. I can’t post anything remotely positive about Apple anymore without getting called a fanboy behind my back. Rene Ritchie can’t set the record straight with his patented brand of fighting FUD with a laundry list of reality without getting labeled a shill. We reward people for complaining, and we shame anyone who says anything positive.

But here’s the thing. I keep doing it anyway. Because every time I post an opinion that goes against the accepted conventional wisdom, along with the haters come two or three people who say “Hey thanks. I thought I was nuts for thinking Touch Bar is actually pretty cool.” Or, “I agree Apple Maps is actually better than Google Maps for my purposes.”

I still give Apple hell when I think they deserve it, but when they do something right, and people are still spewing bile, I try to offer an alternative opinion for those who are frankly tired of being told they are wrong for liking something.

And I get it, from a business perpsective. Apple hate gets a lot more clicks than praise. I can see that from my own posts. But at some point, you have to ask yourself, why am I still here, if everything I read bums me out, and everything I like gets shat upon daily?

I feel bad for people like Becky who have joined our community at a time when the only way to gain acceptance is to be a constant whiner. I doubt I would have stuck around long if it had been that way back in 1986 when I got my first Mac.

Even in Apple’s darkest hours during the 90s, people outside the community were the haters.

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.