{"id":24252,"date":"2021-08-20T15:28:43","date_gmt":"2021-08-20T22:28:43","guid":{"rendered":"https:\/\/www.podfeet.com\/blog\/?p=24252"},"modified":"2021-08-22T07:13:10","modified_gmt":"2021-08-22T14:13:10","slug":"1password-electron","status":"publish","type":"post","link":"https:\/\/www.podfeet.com\/blog\/2021\/08\/1password-electron\/","title":{"rendered":"The Day the Internet Lost Its Mind about 1Password Becoming an Electron App"},"content":{"rendered":"<p>Last week every single Apple-centric podcast was busy with hand wringing about Apple\u2019s new child protection efforts.  This week they have a new target for their hand wringing, and it\u2019s the changes that the folks at AgileBits announced about 1Password.<\/p>\n<h2>What Happened Was\u2026<\/h2>\n<p><a href=\"https:\/\/blog.1password.com\/1password-8-the-story-so-far\/\" rel=\"noopener\" target=\"_blank\"><\/p>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/1Password-8-The-Story-So-Far.jpg\" alt=\"blog post heading image of the same name\" title=\"#title#\" width=\"300 \" height=\"\"><\/a><br \/>\n<\/figure>\n<p><a href=\"https:\/\/blog.1password.com\/1password-8-the-story-so-far\/\" target=\"_blank\" rel=\"noopener\">Michael Fey wrote a blog post at 1password.com<\/a> 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\u2019t try to replicate what he explains, but the bottom line is that their new approach has gotten the Internet\u2019s collective panties in a bunch.<\/p>\n<p>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\u2019s an Electron app.<\/p>\n<p>Electron apps are kind of like web apps, in that they\u2019re written in JavaScript, HTML, and CSS.  The advantage from a developer&#8217;s point of view is that they can write one set of code for macOS, Windows, and Linux to perform the necessary functions of an app. Then the developer can use the HTML and CSS to make it look appropriate for the operating system you\u2019re on. For example, on macOS, you would expect the stoplight red\/yellow\/green buttons in the upper left, but on Windows, you\u2019d expect the red box with a white X in the upper right.<\/p>\n<p>Electron apps have a bad reputation, and I\u2019ve been trying to figure out why. The two biggest reasons I\u2019ve heard are that Electron apps can be bloated (using up tons of RAM) and that they don\u2019t look or act like native apps.<\/p>\n<h2>Abandonment Issues<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/child-crying-kid-boy.jpg\" alt=\"Child crying kid boy\" title=\"child-crying-kid-boy.jpg\" border=\"0\" width=\"303\" height=\"286\" style=\"float:left; margin: 10px\"  \/>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\u2019re assuming that the new app will be terrible, won\u2019t 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.<\/p>\n<p>I\u2019m going to try to draw an analogy and I\u2019m not sure it works but here goes. It\u2019s 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 <em>home<\/em>.  You\u2019re not even going to look at the new condo to find out that it\u2019s 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\u2019t give it a chance.<\/p>\n<p>The funny thing is that many of these loud people haven\u2019t 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\u2019t mentioned filing bug or feature requests to the 1Password team, they\u2019re just sad and angry and they\u2019re very loud about it. I heard one very loud podcaster complaining that when he mistyped his password, the field didn&#8217;t jiggle. Seriously, this was the first complaint he made about the new beta.<\/p>\n<h2>You Are Probably Already Running Electron Apps<\/h2>\n<p>I\u2019d 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\u2019t even realize it.<\/p>\n<p><a href=\"https:\/\/cameronnokes.com\/blog\/how-to-know-if-a-desktop-app-uses-electron\/\" target=\"_blank\" rel=\"noopener\">Cameron Nokes wrote a blog post on how to know if a desktop app uses Electron<\/a> and in the post he gives us a nifty little <code>bash<\/code> script to run in the Terminal to find out how many we have and which ones they are.<\/p>\n<p>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.<\/p>\n<p>While I thought I had maybe 4 or 5 Electron apps, Cameron&#8217;s script revealed  that I have 15 apps that are Electron-based, and I use at least 10 of them regularly:<\/p>\n<ul>\n<li>Coding software:\n<ul>\n<li>Visual Studio Code &#8211; my development environment<\/li>\n<li>Sizzy &#8211; view apps you\u2019re developing on all different platforms at once<\/li>\n<li>GitHub Desktop &#8211; version control GitHub app<\/li>\n<li>GitKraken &#8211; 3rd-party version control GitHub app<\/li>\n<\/ul>\n<\/li>\n<li>Messaging apps:\n<ul>\n<li>Signal<\/li>\n<li>Skype<\/li>\n<li>Facebook Messenger<\/li>\n<li>Microsoft Teams<\/li>\n<li>Slack<\/li>\n<li>Discord<\/li>\n<\/ul>\n<\/li>\n<li>Other categories:\n<ul>\n<li>Airtable &#8211; database<\/li>\n<li>Loom &#8211; video screen recording<\/li>\n<li>Folge &#8211; documentation software<\/li>\n<li>Joplin &#8211; note taking\/notebooks<\/li>\n<li>draw.io &#8211; diagramming<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Do They Look Native?<\/h2>\n<p>I have to be honest here, I simply did not realize that many of these apps were Electron-based.  You could suggest that I&#8217;m unobservant and perhaps that&#8217;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\u2019t look like native apps and that is a big concern for 1Password users.<\/p>\n<p><a href=\"https:\/\/folge.me\" rel=\"noopener\" target=\"_blank\">Folge<\/a> 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\u2019t feel one bit like a native app. It\u2019s not a bad interface, it just doesn\u2019t look like a Mac app. It\u2019s got the stoplight buttons in the upper left, but that\u2019s the end of the similarity.  I think I realized it wasn\u2019t \u201cnormal\u201d when I first went looking for Preferences.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/Folge-Electron-App.jpg\" alt=\"Folge Electron App\" title=\"#title#\" width=\"500 \" height=\"375\"><figcaption style=\"text-align:center\">Folge Electron App<\/figcaption><\/figure>\n<p>Loom certainly doesn\u2019t look like a native app either, but it\u2019s 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.<\/p>\n<p>Remember <a href=\"https:\/\/www.podfeet.com\/blog\/2021\/08\/joplin-knightwise\/\" rel=\"noopener\" target=\"_blank\">last week Knightwise<\/a> told you about the open source notebook\/note-taking app <a href=\"https:\/\/joplinapp.org\" rel=\"noopener\" target=\"_blank\">Joplin<\/a>, and I positively <em>raved<\/em> about how gorgeous it was? I just found out it\u2019s an Electron app!<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/Joplin-on-macOS-1.png\" alt=\"Joplin interface as described last week\" title=\"#title#\" width=\"500 \" height=\"297\"><figcaption style=\"text-align:center\">Joplin Electron App<\/figcaption><\/figure>\n<p>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.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/Ulysses-Not-Electron.jpg\" alt=\"Ulysses macOS interface looks. a lot like Joplin\" title=\"#title#\" width=\"500 \" height=\"287\"><figcaption style=\"text-align:center\">Ulysses is NOT Electron<\/figcaption><\/figure>\n<p>Sizzy is an app that Helma suggested to me, available through Setapp (or <a href=\"https:\/\/sizzy.co\" target=\"_blank\" rel=\"noopener\">$51\/year from the developer<\/a>). I&#8217;m glad Cameron&#8217;s script revealed it as an Electron app because I&#8217;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.<\/p>\n<p>There isn&#8217;t a single thing about this interface that looks like a native Mac app. It&#8217;s got scores of buttons on the interface that I&#8217;ve honestly never explored and they don&#8217;t look at all like macOS buttons.  And yet it performs a fabulous function for developers and it&#8217;s cross-platform to Mac, Windows, and Linux as a result.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/Sizzy-Electron-App.jpg\" alt=\"Sizzy Electron App\" title=\"#title#\" width=\"500 \" height=\"210\"><figcaption style=\"text-align:center\">Sizzy Electron App<\/figcaption><\/figure>\n<p>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\u2026<\/p>\n<h2>Speed<\/h2>\n<p>Let\u2019s 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\u2019s up, it\u2019s very snappy.  GitKraken, the version control app that Bart and I like is very slow to open each project, but once it\u2019s open it\u2019s snappy as well.<\/p>\n<p>Electron apps all take that second or two to build, but I&#8217;ve got some mainstream native apps that open WAY more slowly.  Excel takes a full 17 seconds to launch on my 16\u201d MacBook Pro 8-core Intel i9 with 64GB of RAM.  Seriously.  I haven\u2019t counted how long Affinity Photo takes to launch but it\u2019s at <em>least<\/em> that long.  Native apps don\u2019t necessarily load faster, that\u2019s for sure.<\/p>\n<h2>But What About 1Password?<\/h2>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/1Password-8-beta.png\" alt=\"1Password 8 Beta\" title=\"#title#\" width=\"500 \" height=\"\"><figcaption style=\"text-align:center\">1Password 8 Beta<\/figcaption><\/figure>\n<p>Enough discussion of other Electron apps, what about our precious 1Password?  Should we be freaked out? Is the world really coming to an end?<\/p>\n<p>I decided that I had to see what all the kerfuffle was about so I signed up for the <a href=\"https:\/\/blog.1password.com\/1password-8-for-mac-is-now-in-early-access\/\" target=\"_blank\" rel=\"noopener\">Early Access program for macOS for 1Password 8<\/a>.<\/p>\n<p>Unlike every single loud person on the Internet, I\u2019m not going to poke holes at 1Password and tell you nit-picky details that don\u2019t seem to work quite right.  I\u2019m not going to do that, because that is not being a good netizen.  When you sign up for an early access beta program, you\u2019re supposed to test features and then file bug reports and enhancement requests. That\u2019s the deal. But I will give you some perspective on those very things that are supposed to be so awful about Electron apps.<\/p>\n<h2>Beta 8 Speed<\/h2>\n<p>First of all, I think the visual design of 1Password 8 beta is gorgeous.  I\u2019m running it on my 2016 MacBook Pro that\u2019s 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\u2019t waste time doing a cute animation of the lock unlocking so it actually opens to my passwords significantly <em>faster<\/em> than 1Password 7 on my production machine.  Seriously, it opens your vaults blindingly fast.<\/p>\n<p>Another thing I noticed was the new search is significantly better.  In 1Password 8 beta, you get a dropdown of matches as you&#8217;re typing, and they&#8217;re minimalistic so it&#8217;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&#8217;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\u2019ve always wanted that!<\/p>\n<p>I know a lot of features aren\u2019t finished yet, but that\u2019s what betas are all about!  A friend of mine was distraught because the keystroke \u2318\\ to invoke 1Password in the browser wasn\u2019t 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\u2019t be gone forever, they even have t-shirts made that say \u201c\u2318\\ is my password\u201d!<\/p>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/1Password-add-new-login.jpg\" alt=\"1Password 8 New Login with Fewer Fields\" title=\"#title#\" width=\"350 \" height=\"496\"><figcaption style=\"text-align:center\">1Password 8 New Login with Fewer Fields<\/figcaption><\/figure>\n<div class=\"group\" style=\"float:right\">\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/1Password-7-add-new-login.jpg\" alt=\"1Password 7 add new login\" title=\"#title#\" width=\"350 \" height=\"408\"><figcaption style=\"text-align:center\">1Password 7 New Login Has SO Many Fields<\/figcaption><\/figure>\n<\/div>\n<p>In all versions of 1Password that I&#8217;ve used over the years, I\u2019ve always been slightly confused when I add a new login and there are all these fields available, most of which I don\u2019t need. I\u2019m never clear on whether I\u2019m 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\u2019s an \u201cadd more\u201d button that shows you more fields you can choose to add.<\/p>\n<p>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!<\/p>\n<p>A few things stand out graphically to make 1Password more intuitive for me. Many times I edit an entry or I\u2019m 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\u2019t saved.<\/p>\n<p>In 1Password 8 beta, when you\u2019re editing an entry a purple striped banner with the word \u201cEditing\u201d across it shows up, along with a very obvious big blue Save button. You really can\u2019t miss it.<\/p>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/1Password-8-Editing.png\" alt=\"1Password 8 Editing\" title=\"#title#\" width=\"400 \" height=\"110\"><figcaption style=\"text-align:center\">1Password 8 Editing is obvious<\/figcaption><\/figure>\n<p>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\u2019s no mystery involved in 1Password 8 beta, there\u2019s a giant blue button with a plus button and the words \u201cNew Item\u201d inside it in the upper right. Again, you can\u2019t miss it!<\/p>\n<p>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.<\/p>\n<h2>Does 1Password 8 Feel Native?<\/h2>\n<p>As far as the interface feeling native, I think it really does hit the mark. \u2318, launches preferences just like it should, \u2318-W closes the preference window, and  \u2318-S saves your entries when you&#8217;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.<\/p>\n<h2>What About Bloated Memory Usage?<\/h2>\n<p>Remember I said that one of the problems people complain about with Electron apps is that they\u2019re 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!<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>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\u2019s also possible to write efficient code in either one.<\/p>\n<h2>Accessibility<\/h2>\n<p>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\u2019ve spoken to several developers when I discover one button that\u2019s not accessible, and their reaction has been, \u201cYou mean the rest of it IS accessible? How did that happen?\u201d<\/p>\n<p>A fear when developers create Electron apps is that they won\u2019t have those automatic elements available to them and may not make the extra effort to make their apps accessible.<\/p>\n<p>I ran the 1Password (early) beta through its paces, and I found a <em>lot<\/em> of things that were problematic with it. I\u2019m 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\u2019s hot garbage.<\/p>\n<p>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\u2019d be sure to test only the very latest version.  After finishing my testing, I installed the update.<\/p>\n<p>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\u2019ve still got work to do but they\u2019re making great progress while I\u2019m actually watching.<\/p>\n<p>I think it is a valid concern that Electron doesn\u2019t 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.<\/p>\n<h2>Bottom Line<\/h2>\n<p>The bottom line is I\u2019m 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.<\/p>\n<p>I don\u2019t feel abandoned, and I don\u2019t 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\u2019m all for it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week every single Apple-centric podcast was busy with hand wringing about Apple\u2019s new child protection efforts. This week they have a new target for their hand wringing, and it\u2019s the changes that the folks at AgileBits announced about 1Password. What Happened Was\u2026 Michael Fey wrote a blog post at 1password.com explaining how 1Password has [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24243,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[147],"tags":[305,4740,4737,4738,1104,4739],"class_list":["post-24252","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-posts","tag-1password","tag-abandoned","tag-electron","tag-electron-app","tag-macos","tag-native-app"],"jetpack_featured_media_url":"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/08\/1Password-beta-icon.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/24252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/comments?post=24252"}],"version-history":[{"count":9,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/24252\/revisions"}],"predecessor-version":[{"id":24265,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/24252\/revisions\/24265"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media\/24243"}],"wp:attachment":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media?parent=24252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/categories?post=24252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/tags?post=24252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}