Electron is a popular platform to publish desktop apps these days. Many people are familiar with popular applications like VSCode or Slack that are written in Electron, but is there a way I can check on my own to know if an app was built using Electron?
Yes. In fact, I created a quick video of the process (macOS only):
How to know if a desktop app uses #Electron pic.twitter.com/5tAprex2BV
— Cameron Nokes (@ccnokes) December 10, 2019
I was surprised at how many views it got (I know, it’s not that many in the grand scheme of things but I’m small-time so it was a lot for me).
Written out, the above process is this:
- Right click
.app
file - Click “Show Package Contents”
- Navigate into Contents
- Navigate into Frameworks
- Check if there’s a
Electron Framework.framework
file
Why does this work?
macOS apps are actually a directory that simply looks like a file. Application bundles follow a specific format. A “framework”, which is a dynamic shared library, will always reside in Contents/Frameworks
. You can read more about macOS app bundles on Wikipedia or Apple’s developer docs.
That process might sound tedious if you want to check all of your applications at once. So, that’s why I created a bash script that checks for you 😎:
The overall process of the script is that it runs a find
for every .app
directory. For each match, it checks if a Electron Framework.framework
file exists. If it does, we found an app that uses Electron. Interestingly I found that the find
runs really slow without the -maxdepth
option (using -depth
didn’t help, had to be maxdepth
). I’m not exactly sure why, I’ll have to dig into that later. My best guess is that some of the .app
folders go really deep and -maxdepth
limited the recursion in a way that -depth
doesn’t.