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

distribute desktop app #573

Closed
roipoussiere opened this issue Jun 2, 2023 · 8 comments
Closed

distribute desktop app #573

roipoussiere opened this issue Jun 2, 2023 · 8 comments
Labels
feature completely new feature

Comments

@roipoussiere
Copy link
Contributor

It could be practical to allow users to use Strudel as a desktop app, without using the browser.

I noticed in the offline section in the docs that it can be done with npx nativefier strudel.tidalcycles.org, but it's still an extra step for end users.

My suggestion is to package Strudel for main platforms (Linux/Mac/Windows) in each major release using GitHub actions, so binaries will be available in the release section.

It can be done with electron-build or tauri.

I can eventually work on it if you like the idea.

@felixroos
Copy link
Collaborator

Hey! Thank you for all the ideas you've added :)

About the desktop app: having the option to install a desktop app from a chromium based browser (PWA) is already a good start, but of course, you can do much more with a full desktop app + non chromium users can use it too.
The downside is that you have to distribute binaries with every release.

I would advise against electron, because the binaries are really large and running them takes a lot of memory.
Tauri looks great, it also seems to integrate well with vite.
So probably the existing project structure could stay as is, just some additional tauri related files + desktop build task(s).
You can also use node with tauri, which would probably make sense.

The desktop app could add additional features like a file system integration to load samples, osc / midi / ableton link etc..

If you want to work on it, feel free to go ahead. I am also open to talk more about how it should integrate / features / distribution etc..

@roipoussiere
Copy link
Contributor Author

roipoussiere commented Jun 4, 2023

Thank you for your response!
I will try to do something with Tauri. :)

Some interesting features I think about that a desktop app could allow:

  • some cli options to define UI preferences (default theme, disable the welcome message, etc);
  • convert code into music file via cli;
  • integration with an external IDE;
  • start a web server to allow multi-user sessions.

@felixroos
Copy link
Collaborator

I will try to do something with Tauri. :)

great!

some cli options to define UI preferences (default theme, disable the welcome message, etc);

As of now, the welcome message will only appear once. As soon as you select another tab or close the bottom bar, it will stay that way. the same goes for the settings (including theme) and code in the editor. Not sure if that's really needed then.

convert code into music file via cli;

that would be amazing.

integration with an external IDE

there is a prototype for vs code somewhere. but in many cases, it can be tricky to get the highlighting right.

start a web server to allow multi-user sessions.

see #33

I'd generally aim to get the desktop app and web app as close together as possible, so things won't have to be developed twice.

@roipoussiere
Copy link
Contributor Author

As of now, the welcome message will only appear once. As soon as you select another tab or close the bottom bar, it will stay that way. the same goes for the settings (including theme) and code in the editor. Not sure if that's really needed then.

I think there are some use cases where it's interesting to have some options directly set on the first run, for instance to have different ui setups depending on some context, but anyway.

there is a prototype for vs code somewhere. but in many cases, it can be tricky to get the highlighting right.

Do you know where? I'm a VSCode user, I would like to give a try. :)

I'd generally aim to get the desktop app and web app as close together as possible, so things won't have to be developed twice.

Sure!

@felixroos felixroos added the feature completely new feature label Jun 5, 2023
@roipoussiere
Copy link
Contributor Author

So I published a VSCode extension that meets the need of a desktop app! :)

So I'm not sure anymore it's necessary to distribute a desktop version of the strudel app, as it will add more complexity to the project compared to its utility (I will not work on this anyway).

@felixroos
Copy link
Collaborator

So I'm not sure anymore it's necessary to distribute a desktop version of the strudel app, as it will add more complexity to the project compared to its utility (I will not work on this anyway).

Which features of the desktop app could the VSCode extension replace? Can we use it as a file / midi / osc / link server?
I still think a desktop app would be great to have someday, as not everybody uses VSCode and it is still a good thing to have editor / docs / custom UI in one package. But it is also not something I would focus on right now

@yaxu
Copy link
Member

yaxu commented Jun 14, 2023

So I'm not sure anymore it's necessary to distribute a desktop version of the strudel app, as it will add more complexity to the project compared to its utility (I will not work on this anyway).

I also see benefit in a desktop app, but it wouldn't be my focus either. It's a trade-off - I think there benefits in editor plugins that desktop apps don't have, and vice-versa.

Another problem with VS Code is that it's proprietary software, and it seems that relying on it can lead to fracturing (quite a long and difficult-to-understand post, but there's a summary at the end, and I think there's something in it).

@felixroos
Copy link
Collaborator

this is done with #613 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature completely new feature
Projects
None yet
Development

No branches or pull requests

3 participants