Crequency / KitX

An all-purpose toolbox app that connect everything.
https://kitx.apps.crequency.com
GNU Affero General Public License v3.0
1.17k stars 49 forks source link

[Installer] Rewrite cross-platform installer through other ui framework #264

Closed Dynesshely closed 11 months ago

Dynesshely commented 1 year ago

🪦 Is your feature request related to a problem? Please describe.

Previously, in order to make the installation package smaller, we chose to use the .NET Framework Winform framework to build the installation package, because the Windows operating system has a built-in low version of the .NET Framework runtime.

Today, we are abandoning the .NET Framework platform and embracing the .NET Core platform. It's time to ditch the old installer and rewrite it using another small, cross-platform UI framework.

🪧 Describe the solution you'd like

First of all, I consider from the aspect of language: We need to use a language that can be compiled to the native code of the platform. From this point of view, we do not consider using languages ​​like CSharp, Java, etc. that rely on virtual machines. I recommend using the Rust language.

Secondly, I consider from the aspect of UI framework: The Rust community has a small cross-platform UI framework such as egui, which may be suitable for developing a simple installation package.

🧾 Describe alternatives you've considered

Maybe we can consider other UI frameworks.

I personally still recommend rust with egui.

📎 Additional context

No response

Dynesshely commented 1 year ago

In addition, considering that there are many desktop systems under the Linux platform, there may be some unexpected situations.

We can provide a command-line controlled installation process by splitting the core installation logic and interface parts.

Cranyozen commented 1 year ago

Great! But someone must be proficient in rust.

github-actions[bot] commented 1 year ago

Tracked by #265 .

Dynesshely commented 1 year ago

How to specific version and profile to download ? I test my idea:

image

Use universal id to fill positions, and we can replace them by patcher.