Six Colors
Six Colors

by Jason Snell & Dan Moren

Childhood Cancer Awareness Month

Donate Now - Join us and Relay FM in supporting St. Jude.

By Jason Snell

Not important enough: 1Password abandons its native Mac app

If you can’t move the preferences window because it’s fake, you might be running an Electron app like 1Password 8.

I’ve used AgileBits’s 1Password for more than a decade. I’ve recommended it to friends and family alike. Over time, password management has become more common, and this fall’s operating-system updates will improve Apple’s built-in password management so much that it’s all most people will ever need.

That said, 1Password offers many features Apple doesn’t, and the company has become increasingly active in competing in the enterprise space, with an influx of investment to help it grow rapidly.

Which brings us to this week, when AgileBits announced the beta version of 1Password 8 for the Mac—and walked into a storm of criticism from Mac users. You see, AgileBits chose to build the new version of its Mac app using Electron, a system based on web technologies that’s used by numerous cross-platform apps, including Slack, Skype, and Discord.

I think it’s fair to say that most users don’t care about the tools that a developer uses to write the apps we use. But using a system like Electron does have consequences: Electron apps have a reputation for being slow, eating up a lot of system memory, and—perhaps most offensively—failing to behave like proper, “native” apps on whatever platform they operate.

Just as there are good and bad Catalyst apps, there are good and bad Electron apps. I’m sure that the very best Electron app isn’t as good a Mac app as one written using Apple’s AppKit frameworks—but that doesn’t mean that it can’t be good. And AgileBits has pointed out that it’s using Rust, a robust programming language, to power everything except the user interface, so performance should be more than you’d expect from “just a web app.”

I’m going to withhold judgment of 1Password 8’s interface, mostly because it’s still in beta and I’m sure AgileBits is going to get plenty of feedback about all the ways it fails to measure up to the standards of Mac users. I hope they’re listening and will adjust accordingly.

What’s really causing all this consternation, I think, isn’t 1Password moving to Electron. Electron is a bit of a bogeyman. The root problem is this: 1Password, originally a Mac-forward software developer, has simply decided that the Mac isn’t important enough.

I know that those are harsh words, and that the people at AgileBits would argue with them. But in a blog post by Michael Fey, AgileBits’s VP of Engineering for Client Apps, the company laid out its entire development strategy. It’s a post meant to explain what the company is up to and tamp down a lot of angry hot takes (and probably should’ve been posted the moment it announced the Mac beta).

Fey’s post clearly spells out AgileBits’s priorities. Android and iOS apps are built with native platform frameworks in order to create the best app experience possible on mobile. For iOS, AgileBits decided to use Apple’s new SwiftUI framework rather than the venerable UIKit, in order to skate “to where the puck was going.” Their plan was to use SwiftUI on the Mac, too. In doing so, AgileBits was buying into the vision Apple has for SwiftUI as a tool to build interfaces across all of Apple’s platforms. Unfortunately, it seems that SwiftUI didn’t measure up on the Mac:

Despite the fact that SwiftUI allowed us to share more code than ever between iOS and macOS, we still found ourselves building separate implementations of certain components and sometimes whole features to have them feel at home on their target OS.

I have to read this as a (gently stated) indictment of the current state of SwiftUI. AgileBits was willing to put in the extra work for iOS, because it’s an important platform and SwiftUI is clearly the future there. But implementing it on the Mac required a lot of duplicate work—and what’s worse, SwiftUI apps aren’t compatible with older versions of macOS. AgileBits was planning on covering the older versions with an Electron version, but once it decided the SwiftUI implementation for the Mac was too much work, it pulled the plug—and now plans to ship an Electron version to all Mac users.

I appreciate that AgileBits was originally planning two separate Mac implementations. That’s a sign that the company cared enough to expend extra resources to have a good experience on the Mac, rather than doing what it did to Windows users in deciding Electron was good enough.

And yet as a longtime Mac user, I find AgileBits’s decision-making process incredibly sad. Because as Fey’s post makes clear, at no point did the company consider keeping the Mac-only version of 1Password alive. AgileBits, once a major Mac developer, decided (for legitimate business reasons, of course) that the Mac’s not a platform that deserves its own bespoke app. Or as Fey put it:

We could support as many versions of macOS as we wanted using Apple’s AppKit framework, but that meant adding another frontend toolkit to the mix.

Translation: The Mac’s important, but not important enough to build a version of the app that only works there.

I get it. 1Password has to cover Mac, Windows, Android, iOS, and the web. The Mac is a small platform compared to Windows, and “desktop” is a small platform compared to “mobile.” If I were an engineering manager asking for resources for a bespoke Mac app, I would have a hard time justifying it, too.

And yet, here we are. A banner Mac app and app developer has abandoned a platform-native app for the same web-app wrapper it’s using on Windows. Even if it’s the best Electron app you’ve ever seen, it won’t be the same—and more than that, it says something painful about the future of Mac software.

Apple shares the blame, though. If today’s SwiftUI was truly the One True Tool to unify Apple’s platforms that it’s meant to be in the future, the Mac version of 1Password would be presented in SwiftUI. And perhaps in a year or two, that will happen—after all, the SwiftUI version of 1Password is right over there on iOS, ready to make the move when it’s feasible.

Just because these are decisions made with the cold, hard reality of business priorities and budgets and the current state of developer tools doesn’t make me any less sad, though. A long-running and beloved Mac app is getting thrown in the trash and replaced with a web app. It’s not the first—and unfortunately, it won’t be the last.

If you appreciate articles like this one, support us by becoming a Six Colors subscriber. Subscribers get access to an exclusive podcast, members-only stories, and a special community.


Search Six Colors