Hacker News new | ask | show | jobs
by hattar 2402 days ago
I don't understand the point of electron for applications whose functionality is entirely dependent on being online anyway. At that point, just use a browser as it's one fewer item to install. Is the Electron version of Slack capable of anything beyond the browser version?
5 comments

Some users prefer having a separate app with its own icon and window instead of another tab in a browser. It keeps things Separate
Specifically it makes it easier to get straight to the chat app.

I suppose I could use Hammerspoon to script hotkeys that jump straight to a Chrome tab with the right title, but that sounds like a lot more work than just binding a key combo to focus "Slack.app" (which is what I currently do).

You can do this already for slack in chromium browsers. Click Menu -> More Tools -> Create Shortcut. The app will run in an app window and NOT a tabbed browser window, just like a PWA, with it's own dock icon and cmd-tab icon.
Huh, that's incredibly useful. I'll have to keep that in mind!
You can just create a shortcut with a custom icon that opens slack in a new browser window then.
Missing the point. I don't want it in my browser. My browser is used for reference materials and things like that. My chat app is its own separate thing and easily switched to.
You can do this already for slack in chromium browsers. Click Menu -> More Tools -> Create Shortcut. The app will run in an app window and NOT a tabbed browser window, just like a PWA, with it's own dock icon and cmd-tab icon.
This is all I want from an electron app, and is basically the main reason I really want PWAs to take off.
You can do this already for slack in chromium browsers. Click Menu -> More Tools -> Create Shortcut. The app will run in an app window and NOT a tabbed browser window, just like a PWA, with it's own dock icon and cmd-tab icon.
> I don't understand the point of electron for applications whose functionality is entirely dependent on being online

I’ve made electron apps that load a website I have no control over and added features to it, including new styling, keyboard shortcuts, and command-line flags.

I would have built a native app, but documentation on making macOS app is awful while electron’s documentation is top notch.

You can include native code in Electron apps. I am not sure it is actually needed in any of the messaging Electron apps (Slack, Discord), but the capability is there.

My favorite Electron app is Balena Etcher. It is "dd" but uses 200MB of RAM. It is AMAZING.

> You can include native code in Electron apps. I am not sure it is actually needed in any of the messaging Electron apps (Slack, Discord), but the capability is there.

Discord has options for streaming your game to others, identifying running processes to display games as your status, downloading and launching games, and displaying a chat overlay on top of external game processes.

Some of those can be accomplished in a roundabout way without native code, but I think it's safe to say Discord benefits from that ability.

That is all available in WebRTC.
> That is all available in WebRTC.

Seriously? I thought it was just a networking protocol. Can you please provide some examples so I can dig in further?

* streaming your game to others - I know that there are window capture APIs in browsers now, or at least in WebExtensions[0]. Then you stream the result over WebRTC, makes perfect sense to me.

* identifying running processes to display games as your status - Does WebRTC really have access to inspect running processes? That's horrifying.

* downloading and launching games - By downloading here I meant managing your installed games like an app store. They had everything from 2D games like Hollow Knight to open world 3D games that require a decent amount of horsepower like Saints Row. It looks like they've actually killed this feature, but either way I'm not really sure how WebRTC helps manage installed applications.

* displaying a chat overlay on top of external game processes - I can imagine how you'd accomplish this via WebRTC for games that expose an API to enable it, but rendering on top of an arbitrary game doesn't seem like something WebRTC allows.

[0]: https://chrome.google.com/webstore/detail/chrome-remote-desk...

Hmm, that doesn't seem totally fair - it's 'dd' but with guardrails so that schoolchildren who want to flash raspbian onto an SD card don't accidentally overwrite their boot disk.
I think you can do that without involving Chromium, but I am not well-versed in the ways of full-stack enterprise-ready desktop apps.
> It is "dd" but uses 200MB of RAM. Say no more. I am sold.
Does it actually include any native code, or does it just wrap `dd`?

I tried this app and it was beyond awful. I went back to `dd`.

Apparently it uses some native code to get the necessary permissions on Windows: https://github.com/balena-io/etcher/blob/master/src/os/win32...
I like having a separate app as I can use the window class in X to manipulate which desktop it opens on without too much fucking about.
I think it can do screen sharing in calls, whereas the browser app can only do voice calls (and maybe video, I can't recall).
They could implement screen sharing in the browser version via webrtc.