Last week every single Apple-centric podcast was busy with hand wringing about Apple’s new child protection efforts. This week they have a new target for their hand wringing, and it’s the changes that the folks at AgileBits announced about 1Password.
What Happened Was…
Michael Fey wrote a blog post at 1password.com explaining how 1Password has evolved over time as they went from a Mac app alone to adding iOS, Android, Windows and Linux applications. He describes the challenges of keeping multiple teams developing independently and yet in parallel along with a server-side team and how this approach slowed them down from doing the enhancements they wanted to do. I won’t try to replicate what he explains, but the bottom line is that their new approach has gotten the Internet’s collective panties in a bunch.
The panties in a bunch part is that starting with 1Password 8, which is now out in public beta, 1Password is no longer a native Mac app, it’s an Electron app.
Electron apps have a bad reputation, and I’ve been trying to figure out why. The two biggest reasons I’ve heard are that Electron apps can be bloated (using up tons of RAM) and that they don’t look or act like native apps.
But the loud Mac people on the Internet seem to have come up with a third reason. They feel betrayed and abandoned. I find this reaction fascinating. They’re assuming that the new app will be terrible, won’t feel like a Mac app at all, and this is just the beginning of the end for 1Password and it will no longer be the darling of our community.
I’m going to try to draw an analogy and I’m not sure it works but here goes. It’s like if your parents sold the home you grew up in and bought a condo in a nicer climate. You feel betrayed because it was your home. You’re not even going to look at the new condo to find out that it’s got an awesome pool, and they made sure there was a guest room so you can stay over any time you like. Because you feel betrayed and abandoned, you won’t give it a chance.
The funny thing is that many of these loud people haven’t even tried the beta for 1Password 8. Some are hollering on Twitter and in their podcasts after having tested the very first beta out of the gate for only an hour. They haven’t mentioned filing bug or feature requests to the 1Password team, they’re just sad and angry and they’re very loud about it. I heard one very loud podcaster complaining that when he mistyped his password, the field didn’t jiggle. Seriously, this was the first complaint he made about the new beta.
You Are Probably Already Running Electron Apps
I’d heard about Electron apps starting maybe a year ago, and I was pretty sure a few of my apps were already Electron. I was curious whether some of the apps I enjoy were Electron and I didn’t even realize it.
Cameron Nokes wrote a blog post on how to know if a desktop app uses Electron and in the post he gives us a nifty little
bash script to run in the Terminal to find out how many we have and which ones they are.
I took a look at the script and with my limited knowledge of bash scripting, I was able to determine that it appeared to do what Cameron said it did, so I copied it into a text file, made it executable and ran it from the command line in the Terminal.
While I thought I had maybe 4 or 5 Electron apps, Cameron’s script revealed that I have 15 apps that are Electron-based, and I use at least 10 of them regularly:
- Coding software:
- Visual Studio Code – my development environment
- Sizzy – view apps you’re developing on all different platforms at once
- GitHub Desktop – version control GitHub app
- GitKraken – 3rd-party version control GitHub app
- Messaging apps:
- Facebook Messenger
- Microsoft Teams
- Other categories:
- Airtable – database
- Loom – video screen recording
- Folge – documentation software
- Joplin – note taking/notebooks
- draw.io – diagramming
Do They Look Native?
I have to be honest here, I simply did not realize that many of these apps were Electron-based. You could suggest that I’m unobservant and perhaps that’s a valid perspective. When I thought back on each of these, I realize that they do feel different in some way. One of the complaints about Electron apps is they don’t look like native apps and that is a big concern for 1Password users.
Folge is the best app out there on the Mac to replace my beloved Clarify for creating rich documentation with screenshots and annotations. I like the app, I love the developer. But Folge doesn’t feel one bit like a native app. It’s not a bad interface, it just doesn’t look like a Mac app. It’s got the stoplight buttons in the upper left, but that’s the end of the similarity. I think I realized it wasn’t “normal” when I first went looking for Preferences.
Loom certainly doesn’t look like a native app either, but it’s such an interesting app for making videos of your desktop and posting them online in real-time, that I never thought about why it was so different.
You know what though, the Ulysses interface is pretty non-standard and I would not have been surprised if it was an Electron app, but it appears to be native to macOS. Non-standard interfaces are not the domain of Electron apps.
Sizzy is an app that Helma suggested to me, available through Setapp (or $51/year from the developer). I’m glad Cameron’s script revealed it as an Electron app because I’d actually forgotten all about it. This app lets you view your web apps on all different devices in one screen. You can view on an iPhone 11 Pro, a Pixel 4XL, a Galaxy Note 10, an iPad Pro 11, a Desktop, and an iPhone 12, all on the same screen.
There isn’t a single thing about this interface that looks like a native Mac app. It’s got scores of buttons on the interface that I’ve honestly never explored and they don’t look at all like macOS buttons. And yet it performs a fabulous function for developers and it’s cross-platform to Mac, Windows, and Linux as a result.
So Electron apps can be weird if the developer wants them to look weird, or they can look gorgeous, or they can look native. Or maybe they can be better than native…
Let’s talk about the speed with Electron apps. The one thing I notice is that the initial window of all of my Electron apps builds a bit slowly. Take Skype, for example, you just see a white window for a second or so, like a slowly-loading web page. But as soon as it’s up, it’s very snappy. GitKraken, the version control app that Bart and I like is very slow to open each project, but once it’s open it’s snappy as well.
Electron apps all take that second or two to build, but I’ve got some mainstream native apps that open WAY more slowly. Excel takes a full 17 seconds to launch on my 16” MacBook Pro 8-core Intel i9 with 64GB of RAM. Seriously. I haven’t counted how long Affinity Photo takes to launch but it’s at least that long. Native apps don’t necessarily load faster, that’s for sure.
But What About 1Password?
Enough discussion of other Electron apps, what about our precious 1Password? Should we be freaked out? Is the world really coming to an end?
I decided that I had to see what all the kerfuffle was about so I signed up for the Early Access program for macOS for 1Password 8.
Unlike every single loud person on the Internet, I’m not going to poke holes at 1Password and tell you nit-picky details that don’t seem to work quite right. I’m not going to do that, because that is not being a good netizen. When you sign up for an early access beta program, you’re supposed to test features and then file bug reports and enhancement requests. That’s the deal. But I will give you some perspective on those very things that are supposed to be so awful about Electron apps.
Beta 8 Speed
First of all, I think the visual design of 1Password 8 beta is gorgeous. I’m running it on my 2016 MacBook Pro that’s running the macOS Monterey beta, and 1Password has that clean, white space design that is reflected in the new OS. And guess what else? After I use Touch ID to unlock 1Password, it doesn’t waste time doing a cute animation of the lock unlocking so it actually opens to my passwords significantly faster than 1Password 7 on my production machine. Seriously, it opens your vaults blindingly fast.
Another thing I noticed was the new search is significantly better. In 1Password 8 beta, you get a dropdown of matches as you’re typing, and they’re minimalistic so it’s very fast. In contrast, production 1Password 7 draws all of the graphics and information about the matches in the main window and as a result, it’s much slower. The old version also only matches major fields by default and you have to change it with a dropdown to search all fields. Beta version 8 searches all fields by default. I’ve always wanted that!
I know a lot of features aren’t finished yet, but that’s what betas are all about! A friend of mine was distraught because the keystroke ⌘\ to invoke 1Password in the browser wasn’t working. I did a quick search of the beta forums where the 1Password team is taking in feedback and found that in the latest beta release our beloved keystroke is back. I knew it couldn’t be gone forever, they even have t-shirts made that say “⌘\ is my password”!
In all versions of 1Password that I’ve used over the years, I’ve always been slightly confused when I add a new login and there are all these fields available, most of which I don’t need. I’m never clear on whether I’m supposed to be changing the names of the labels or just what I should put in them. In 1Password 8, the default entry is pretty minimalistic, and then there’s an “add more” button that shows you more fields you can choose to add.
I created a new login using beta 8 and when I clicked in the user name field, I was shocked when it offered me the list of user names and emails I commonly used. That was such a time saver!
A few things stand out graphically to make 1Password more intuitive for me. Many times I edit an entry or I’m creating a new one and I forget to hit Save and I get surprised when I try to select something else and it yells at me that I haven’t saved.
In 1Password 8 beta, when you’re editing an entry a purple striped banner with the word “Editing” across it shows up, along with a very obvious big blue Save button. You really can’t miss it.
Another confusion for me is where to go to create a new entry in 1Password 7 and earlier. To the right of the search field is a very small, very thin, medium grey plus sign. There’s no mystery involved in 1Password 8 beta, there’s a giant blue button with a plus button and the words “New Item” inside it in the upper right. Again, you can’t miss it!
In the handy feature category, in the upper right of an entry where it says Edit with a pencil, is a vertical three-dot menu. In here you can quickly open the item in a new window, add it to favorites, move it to a different vault, duplicate it, archive or delete it and even copy a link to the item.
Does 1Password 8 Feel Native?
As far as the interface feeling native, I think it really does hit the mark. ⌘, launches preferences just like it should, ⌘-W closes the preference window, and ⌘-S saves your entries when you’re done editing. Tabbing between fields works as expected, and dropdowns and checkboxes are perfectly normal. Basically everything I tried looked and acted exactly as I would expect from a native app.
What About Bloated Memory Usage?
Remember I said that one of the problems people complain about with Electron apps is that they’re bloated in memory usage? I opened 1Password 7 on my macOS Big Sur Mac, and 1Password 8 beta on my macOS Monterey Mac and compared the usage. The Electron beta 8 version was using 10X the memory of the native app!
But the native app was only taking up 8MB and the Electron app was taking up 85MB. To put that in perspective, Dropbox was taking nearly 400MB and Apple Mail over 250MB. In fact, 1Password beta 8 was #11 of my running apps in memory usage when I checked.
I left the two versions of 1Password running on both machines and when I checked the next day, the beta Electron version had ballooned up to 102MB, but in that same time, the native app had increased to using 204MB, or exactly twice what the Electron app was using.
I think my super-scientific measurements prove that it is possible to write bloated memory apps when writing native code or with Electron, and it’s also possible to write efficient code in either one.
One of the big advantages of developing native macOS and iPadOS apps is that if you use the tools Apple gives you, you practically get accessibility for free. I’ve spoken to several developers when I discover one button that’s not accessible, and their reaction has been, “You mean the rest of it IS accessible? How did that happen?”
A fear when developers create Electron apps is that they won’t have those automatic elements available to them and may not make the extra effort to make their apps accessible.
I ran the 1Password (early) beta through its paces, and I found a lot of things that were problematic with it. I’m a responsible beta tester so I took notes in preparation to report these findings to the development team, rather than ranting and making declarations on Twitter about how it’s hot garbage.
While I was testing the beta, I got a notice of a new version available. I had signed up for the nightly builds so I’d be sure to test only the very latest version. After finishing my testing, I installed the update.
And guess what? Much of what I had recorded as problem areas had already been corrected! For example, in my first test, the toolbar where search and new item live was empty as far as VoiceOver was concerned but after the nightly build update it was completely accessible to me. They’ve still got work to do but they’re making great progress while I’m actually watching.
I think it is a valid concern that Electron doesn’t get you accessibility for free, but it sure feels like the 1Password team is on top of this and working their typing fingers to the bone on it.
The bottom line is I’m already finding a lot of new features and UI enhancements in the beta for 1Password 8, and it was only just launched into beta a few days ago.
I don’t feel abandoned, and I don’t think this is a disaster for the Mac faithful. If this helps the 1Password team to thrive and the software to be enhanced faster than it was with all the disparate development teams, then I’m all for it.