{"id":19093445,"url":"https://github.com/imagej/imagej-electron-app","last_synced_at":"2025-04-30T12:44:01.451Z","repository":{"id":32438267,"uuid":"133726497","full_name":"imagej/imagej-electron-app","owner":"imagej","description":"[EXPERIMENTAL] Electron app embedding ImageJ + JS image visualization tools","archived":false,"fork":false,"pushed_at":"2023-04-12T14:02:39.000Z","size":399,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-19T02:23:23.276Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imagej.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-16T21:47:43.000Z","updated_at":"2024-08-11T13:56:19.000Z","dependencies_parsed_at":"2024-11-09T03:27:01.018Z","dependency_job_id":"ca513db1-21e2-416e-b0f5-e5f868d4394b","html_url":"https://github.com/imagej/imagej-electron-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagej%2Fimagej-electron-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagej%2Fimagej-electron-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagej%2Fimagej-electron-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagej%2Fimagej-electron-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imagej","download_url":"https://codeload.github.com/imagej/imagej-electron-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251702920,"owners_count":21630119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T03:24:42.647Z","updated_at":"2025-04-30T12:44:01.427Z","avatar_url":"https://github.com/imagej.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImageJ via Electron\n\n[Electron](https://electronjs.org/) is a technology enabling desktop apps using\nthe [Node.js](https://nodejs.org/) JavaScript runtime.\n\nThis repository is an attempt to package [ImageJ](https://imagej.net/) as an\nElectron app, so that it can be combined with JavaScript user interface\nelements, with an eventual possible goal of recasting the core ImageJ UI in\nJavaScript.\n\n## Why Electron\n\n* __User interface.__ The Node.js community has produced much UI awesomeness,\n  and will continue to do so. ImageJ would benefit from UI components such as\n  image viewers that target a broad array of use cases including both web and\n  desktop.\n\n* __Polyglot.__ ImageJ is grounded in the Java ecosystem, but strives for\n  universal accessibility. There is a vast breadth of powerful software,\n  and the ability to combine tools across ecosystems may mean the difference between\n  a successful scientific workflow and a costly software development endeavor.\n\n* __Packaging.__ ImageJ and its sister project [Fiji](https://fiji.sc/)\n  currently use a custom [native launcher](https://imagej.net/Launcher) and\n  custom packaging system which pose numerous challenges relating to native\n  integration. The Node.js / Electron ecosystem has solved native desktop\n  application packaging in a more modern way, which is likely to continue to\n  work for many years to come.\n    * The current ImageJ launcher is ~4000 lines of C code with many\n    platform-specific `#define`s. This code must be regularly maintained\n    and updated to accommodate the constantly evolving requirements and\n    restrictions of operating systems and Java versions.\n\n## Installation\n\n```\nnpm install\nnpm run rebuild\nnpm run postinstall\nnpm start\n```\n\n## Technical challenges and questions\n\nA sloppy list of questions and technical issues follows.\nTo be cleaned up and organized soon!\n\n* __Integration__ - How to pass options to the JVM via node-java\n* __Integration__ - How to mix in Python\n* __Electron__ - How to process Electron CLI args\n* __Electron__ - Bundle JVM and/or JAR libraries into the app\n* __Electron__ - How to override native things e.g. icon, systray\n* __Electron__ - Splash screen while app is loading\n* __Electron__ - JS menu builder - add IJ menu items but also support JS plugins that register menu items\n* __JS dev practices__ - Is there a good JS editor with autocomplete? (WebStorm, I guess)\n* __JS dev practices__ - How to organize sources, code style, multiple files, clean methods, etc\n* __Infrastructure__ - Travis CI builds, AppVeyor builds\n* __ImageJ__ - Integrate a JS script editor plugin? Atom? Something else?\n* __ImageJ__ - What about ImageJ plugins dirs? (set `imagej.dir` property?)\n* __Viewers__ - [VTK.js](https://github.com/Kitware/vtk-js) viewer\n* __Viewers__ - [ivvv](https://github.com/imaging-tools/ivvv) viewer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimagej%2Fimagej-electron-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimagej%2Fimagej-electron-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimagej%2Fimagej-electron-app/lists"}