dgiagio / warp

Create self-contained single binary applications
MIT License
1.92k stars 92 forks source link

Feature Request: Splash Screen or Small Bootstrap exe? #58

Open BrainSlugs83 opened 3 years ago

BrainSlugs83 commented 3 years ago

A common practice for slow loading applications (especially professional and enterprise applications) is to show a splash screen while they are loading. -- Some frameworks bake this in and make it a really easy thing to setup (i.e. in C#/WPF it's as simple as adding an image to the project and declaring it a splash screen).

Unfortunately, Warped executables can add a significant loading time and delay any built-in splash screens by quite a bit (i.e. it can add up to 7 seconds of loading time to my app, where the users sometimes click the exe multiple times).

I understand that adding a blanket "show this bitmap while unpacking" is probably a lot to swallow as a feature request (especially given the cross platform nature of this project), and could easily be considered "out of scope", and just in general be a huge headache to implement. -- So, instead, I'm suggesting an alternate route that would basically enable us to build this in ourselves, with hopefully minimal effort on your part...

Suggested Implementation The workaround I suggest is this: let us declare a bootstrap executable (in addition to the main executable) while packaging.

Then during the unpacking step, you just unpack and run that bootstrap exe before anything else (and you just continue unpacking the rest of the files in the background, and proceed like normal -- no additional changes would be necessary).

This would give us a vector where we could put our own small bit of bootstrapping code (such as displaying a splash screen window) while the rest of the application was being unpacked. -- (And it would be our own responsibility to clean up the window / close the app, etc, once the full application started.)

Is this a reasonable request? -- if not, what would be a reasonable way to achieve the desired result?