What are the mainstream frameworks for desktop application development?

Benefiting from the development of open source technology and responding to actual business needs for rapid development, cross-platform development is not limited to mobile cross-platform. Although the desktop side is not as rich in market application scenarios as the mobile side, there is also market demand.
For individual developers, the use of cross-platform frameworks is mainly to meet the following three main capabilities:

Productivity improvement: The framework can help developers achieve rapid development, which is the basis for cost reduction and efficiency improvement. If you can't achieve "fastness", it won't be much faster than writing code from scratch.

The packaged framework is lightweight and lightweight: Most developers are ordinary users who do not know how to install the basic environment (no operation and maintenance, no operation and maintenance, no operation and maintenance).

Cross-platform: Many developers still use Mac as their main development machine for daily development, so there is a strong need for cross-platform (cross mobile platforms, cross mobile and desktop platforms).

Today, in this article, we will take stock of the five mainstream frameworks for cross-platform desktop application development: Electron, wxPython, FinClip, Tauri, and Flutter.

Electron
believes that everyone is familiar with this framework.
First of all, Electron itself is based on Node.js, so it can take advantage of Node.js's ready-made resources.
Secondly, Electron is cross-platform. In other words, it can develop web applications and desktop applications at the same time. Some conventional resources, such as UI, code (JS) and other resources can be shared, greatly reducing the workload for developers. Even companies don’t need to repeatedly invest in manpower to develop systems.
Furthermore, Electron not only supports Web API to complete the same work as Web applications, but also allows calling many operating system underlying APIs to interact with hardware devices. You can even use C++ and Go to write local modules, so that you can complete many Web applications. Things that apps can't do.

Summary: It uses the languages ​​​​html, js, css, etc., with powerful functions, gorgeous interface, cross-platform, and low development cost. It can be said that it combines the advantages. Except, the performance cannot be complimented~~

wxPython
wxPython and pyqt are similar, both are developed in python language. The former is an encapsulation of wxWidgets, and the latter is an encapsulation of the famous qt. wxWidgets is based on the API of the operating system to make desktop applications. That is to say, when developing a desktop application under Windows, it will look like the style of traditional Windows desktop software. Under Mac, it will be Mac style. All three have their own self-drawing engines.

In other words, using wxWidgets on the three platforms, the button is drawn according to the three platforms' own APIs. wxWidgets provides a lot of operating system APIs and can be statically linked, but there are many minor problems.

Tauri
"Build an optimized, secure, and frontend-independent application for multi-platform deployment."
From the slogan on Tauri's official website, we can see several of Tauri's main selling points:

optimized: high performance, small size
secure: strong security
frontend-independent: front-end independent
multiplatform: the cross-platform
Tauri framework is implemented by the Rust language, and the back-end of the Tauri application is also written in Rust. Rust is a general-purpose, compiled system programming language developed by Mozilla. The Rust language itself has the following features:

High performance (optimized): Rust’s performance is comparable to that of C/C++. Due to Rust’s “ownership” mechanism, Rust does not require GC, and it can also avoid languages ​​such as C/C++ that require manual memory management from forgetting to release. Memory leak problems caused by memory;

Secure: Rust is designed with an ownership system where all values ​​have a unique owner and the scope of the value is the same as the scope of the owner. Values ​​can be passed by immutable reference (&T), mutable reference (&mut T), or by the value itself (T). At any time, a variable can have multiple immutable references or one mutable reference, which is actually an explicit read-write lock. The Rust compiler enforces these rules at compile time and checks all references to be valid. It can effectively avoid problems such as dangling pointers in languages ​​such as C/C++;

FFI compiler-friendly (multiplatform): FFI is a mechanism that allows programs written in one programming language to call code written in another programming language. Using Rust can easily provide interfaces for calls from other languages;

Some features of the Rust language also enhance the reliability and value of the Tauri framework. In addition, hello word is only 10m after packaging, and development can still use html+css technology, which is very efficient.

FinClip

FinClip is a set of small program container technology, which can also be said to be the small program sandbox Runtime/Engine. It provides a runtime based on the browser kernel, using dynamic language (JS) and declarative View construction (XML). It is compatible with the mainstream Internet small program technology and can Adopt DSL framework based on Vue and react.

Unlike cross-end platforms such as Electron, Flutter, and Tauri, FinClip is strictly a container technology. Not only does it not conflict with cross-end platforms, it can also be perfectly integrated. In the mobile cross-platform development framework, small programs developed through Flutter, Taro, kbone, etc. can be run in FinClip.

This mini program container technology also brings many benefits by separating the view layer and the logic layer:
1. Facilitates data sharing and interaction between multiple mini program pages. Having the same context in the life cycle of the applet can provide a familiar coding experience for developers with a native application development background; 2. The separation
and parallel implementation of Service and View can prevent JS execution from affecting or slowing down page rendering, which Helps improve rendering performance;
3. Because JS is executed in the Service layer, the DOM operated in JS will not affect the View layer, so the mini program cannot operate the DOM structure, which also makes the performance of the mini program better than traditional H5 is better.

The reason why it is introduced in the platform desktop application development framework is that in addition to FinClip's mobile cross-terminal development capabilities, it also supports running small programs on platforms other than mobile phones, such as Windows, Mac, Linux, Tongxin, Kirin, etc., which means , mobile terminals, PC terminals, IOT and other smart terminals can run small programs. At the same time, it also provides a complete backend management system to uniformly manage the listing and removal of mini programs and monitor the usage details of mini programs. In other words, with the help of this tool, you can quickly introduce business by leveraging the maturity of the WeChat mini program ecosystem. Ecosystem to strengthen and enrich your business scenarios, and achieve cost reduction and efficiency increase in both technology and business.

Flutter

Flutter is a cross-platform application development framework developed by Google. It was initially only used to develop mobile applications for Android and iOS. In May 2022, Google released Flutter 3.0 at Google I/O 2022, announcing support for Windows, macOS, and Linux desktop operating systems.

Flutter Desktop uses Dart to write interface logic. The Dart language is easy to learn and use, and the development cost is low. In addition, Flutter has a rich set of components and supports the Win 10 operating system (previous operating systems were not well supported). However, because the desktop version has just released stable version support, both ecology and stability need to be considered, and there are also relatively few APIs, which need to be written by developers themselves.
Original link

Guess you like

Origin blog.csdn.net/u010274449/article/details/131966328
Recommended