Genie Discord forum
I have a bit of Julia code for manipulating and analyzing medical images. I am going to build a interface for non coders to interact with the images.
As far as I can see there are a few different approaches that I could take but I’m not really knowledgeable enough in all of them to know the benefits and downsides. So if you guys have thoughts I would love to hear what you think about the pros and cons.
Basic functionality is the ability to load an image from disk along with other files like csv files. Click on a few options for graphing, etc.
- I could use something like GTK.jl to keep it extremely simple
- I could use genie to stick with Julia
- I could use Vue since it seems like Genie already has a close relationship to Vue via stipple
- I could use Nuxt potentially to build out this GUI in a way that scales seamlessly to a more sophisticated web app.
Please let me know if you have thoughts on any of the pros/cons of these approaches or anything I’ve missed
Also, with regards to 4), an idea would be to use Nuxt for a full stack, type safe app, that possibly spins up a Julia process for the underlying medical imaging manipulation and analysis code, using Genie or something along those lines to initiate the Julia process.
I would not use anything GTK or native we can't make executable in Julia. So packaging Julia files and shipping executables to friends and colleagues is not possible
However, a Genie App can be distributed via the web. Can use authentication for restricted access
I've also thought about trying to build the front end in Nuxt and use Genie in the back end. You'd just need to have a REST API in the back with Nuxt accessing it. There's also the possibility of using websockets, which Genie already supports (it's what the reactive UI components use)
For your use case, I'd start small with a Genie app formed by your data analysis code + an app.jl file for the UI logic + app.html for the UI. Like we do in the demos
If you then need something more complex then you could repurpose the logic into an API and add a Nuxt/Vue front end