expo / expo-electron-adapter

This package wraps `electron-webpack` and adds support for Expo web and other universal React packages.
MIT License
28 stars 11 forks source link

[question] Is this project being maintained? #19

Closed matallui closed 2 years ago

matallui commented 2 years ago

Hi! I'm currently working on a new Expo project and would like to be able to deploy to desktop via Electron at some point. I've found this project, but it looks like there's not been anyone maintaining it since its creation (15 months ago).

Are there any plans by Expo to improve support for Electron in the future?

kilbot commented 2 years ago

Expo seem to be moving towards a unified bundling process, using Metro instead of Webpack. I think this makes sense overall as having separate config files for webpack was quite confusing.

I would be interested in helping build and test a new adapter for electron which uses Metro instead of Webpack. Perhaps @EvanBacon can provide some guidance if this is indeed the right path for the future?

EvanBacon commented 2 years ago

We are moving towards a unified bundling process with Metro, but likewise, we also want to use a unified native runtime as well. Mac Catalyst enables React iOS to run natively on macOS machines, and React Native Windows supports the same on windows. We don't have the bandwidth to support any more platforms outside of iOS, Android, and web right now but if we did, it would be proper native.

This package is a light wrapper around electron-webpack if anyone wants to go more upstream.

Edit: Just to be clear, this project is no longer maintained and we (I) don't have the capacity to work on this at the moment. Sorry for any inconvenience this may have caused.

kilbot commented 2 years ago

I think this makes sense. The more I work with electron, the more I realise it has it's own set of considerations which are probably well beyond the scope of Expo, especially once you start adding native modules such as node-sqlite3.

For others going down the electron path - I am having some success using the Electron React Boilerplate, they have pretty good docs which cover the building and packaging workflow.

matallui commented 2 years ago

Fair enough! I do agree it would be awesome to support desktop native platforms. However, I feel like the problem with that (and I noticed the same in frameworks like Flutter) is that most native packages you'll use in your app won't support desktop platforms, so even if Expo and RN supported those fully, it could still be a problem.

I see Electron as a "quick" win in wrapping the web app into a desktop app, and packages for Node are much easier to find.

So, at least for our first release, we'd like to try and get a quick win here by using electron to build the desktop version of our apps, and later on maybe consider switching to native.