Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add desktop application support via Electron #31

Closed
monicanagent opened this issue Feb 10, 2019 · 1 comment
Closed

Add desktop application support via Electron #31

monicanagent opened this issue Feb 10, 2019 · 1 comment
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@monicanagent
Copy link
Owner

Combine existing web and server components of CypherPoker.JS into a single, standalone desktop Electron application.

Ideally the desktop code will reside in a desktop folder and load both (web and server) components from their current locations so that desktop builds pick up the latest changes. If this is not possible then the code should either be copied prior to each build (which is not be ideal due to the copy time requirements and possible conflicts), or the desktop code may need to exist at a higher level (also less than ideal since it makes the folder structure less clear).

Additional investigation will need to be done to determine differences between Windows, MacOS, and Linux builds:

  • can they exist in the same folder?
  • are there conflicts in generated binaries?
  • are there significant differences in file URLs that must be taken into account?

Update this issue with additional findings or questions.

@monicanagent monicanagent added the enhancement New feature or request label Feb 10, 2019
@monicanagent monicanagent added this to the v0.4.0 milestone Feb 10, 2019
@monicanagent monicanagent self-assigned this Feb 10, 2019
@monicanagent monicanagent added this to To do in CypherPoker.JS via automation Feb 10, 2019
monicanagent added a commit that referenced this issue Feb 18, 2019
…her for CypherPoker.JS that retains existing "web" and "server" structures and uses a SQLite 3 database for local storage; tested on Windows 10 and all functionality appears to work as expected (compared to existing web version); note that a "postinstall.js" script applies a patch to bitcoinjs-lib and BIP32 modules for compatibility with >= Electron 4.x.x (since switch to BoringSSL -- electron/electron#16454).
@monicanagent
Copy link
Owner Author

Updated in revision 113 (a3a68f2).

Native desktop support now implemented and tested in WIndows 10. A local SQLite 3 database and custom adapter is used instead of a remote or in-memory one--though both can still be used.

In addition:

  • The current "web" and "server" directories have been maintained so that the code that's used in the web version mirrors that used in the desktop version. However, some bootstrapping code is used to launch the desktop version and a patch is applied after "npm install" to fix an incompatibility with Electron >= 4.x.x, bitcoinjs-lib, and the BIP32 library (fix: expose ripemd160 hash from boringssl electron/electron#16454).
  • Electron binaries are installed using "npm install" in the target OS and platform so there are no inherent incompatibilities between builds. However, some path changes may be required when creating a standalone or installer (to be investigated).

CypherPoker.JS automation moved this from To do to Done Feb 18, 2019
monicanagent added a commit that referenced this issue Feb 18, 2019
… paths for server launch and implements SQLite 3 adapter calls for database interactions.
monicanagent added a commit that referenced this issue Feb 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

1 participant