桌面應用開發有哪些主流框架?
受益於開源技術的發展,以及響應快速開發的實際業務需求,跨平臺開發不僅限於移動端跨平臺,桌面端雖然在市場應用方面場景不像移動端那麼豐富,但也有市場的需求。
相對於個人開發者而言,跨平臺框架的使用,主要為了滿足以下三個主要能力:
生產力提升:框架能夠幫助開發者實現快速開發,這是降本增效的根本。如果不能實現「快速」,那也就比自己從零開始寫程式碼快不了太多了。
框架打包後的 體積輕量:開發者大部分是普通使用者,不會安裝基礎環境(不會運維,不會運維,不會運維)。
跨平臺:許多開發者日常開發還是以Mac做為主力開發機,所以強烈需要跨平臺(跨移動平臺,跨移動及桌面平臺)。
今天,我們就在本篇文章中盤點下,跨平臺桌面應用開發的5大主流框架:Electron、wxPython、FinClip、Tauri、Flutter。
Electron
相信這個框架大家都不陌生。
首先,Electron 本身是基於 Node.js 的,這樣就可以利用 Node.js 的現成資源。
其次,Electron 是跨平臺的,換句話說,它可以同時開發 Web 應用和桌面應用,一些常規的資源,如:UI,程式碼(JS)等資源都可以共享,為開發者大大減少了工作量,甚至企業也無需重複投入人力來開發系統。
再有,Electron 不僅支援 Web API,完成與 Web 應用相同的工作,還允許呼叫很多作業系統底層 API 來與硬體裝置互動,甚至可以用 C++、Go 來編寫本地模組,這樣一來就可以完成很多 Web 應用無法做到的事情。
小結:使用語言html,js,css等,功能強大,介面絢麗,跨平臺,開發成本低,可以說是集優點於一身。除了,效能不敢恭維~~
wxPython
wxPython和pyqt 兩者類似,都是用python語言開發。前者是對wxWidgets的封裝,後者是對大名鼎鼎的qt的封裝。wxWidgets 是基於作業系統的 API 來做桌面應用的,也就是說,在 Windows 下開發一個桌面應用時,看起來就像是傳統的 Windows 桌面軟體的風格,在 Mac 下則是 Mac 的風格,而前面三個都有自己的自繪引擎。
也就是說,使用wxWidgets 在三個平臺上都是按照三個平臺自己的 API 來繪製這個按鈕的。wxWidgets 提供了非常多的作業系統的 API,並且可以做到靜態連結,但小問題比較多。
Tauri
“Build an optimized, secure, and frontend-independent application for multi-platform deployment.”
從Tauri官網的宣傳語可以看出Tauri主打的幾個賣點:
optimized:效能高、體積小
secure:安全性強
frontend-independent:前端獨立
multiplatform:跨平臺
Tauri框架是由Rust語言實現的,同時Tauri應用的後端也是由Rust來編寫的。Rust是由Mozilla主導開發的通用、編譯型的系統程式語言。Rust語言自身有如下的一些特性:
效能高(optimized):Rust的效能和C/C++的效能不相上下,由於Rust的「所有權」機制,Rust不需要GC,同時也能避免如C/C++之類需要手動管理記憶體的語言忘記釋放記憶體導致的記憶體洩露的問題;
安全性強(secure):Rust設計了一個所有權系統,其中所有值都有一個唯一的所有者,並且值的作用域與所有者的作用域相同。值可以透過不可變引用(&T)、可變引用(&mut T)或者透過值本身(T)傳遞。任何時候,一個變數都可以有多個不可變引用或一個可變引用,這實際上是一個顯式的讀寫鎖。Rust編譯器在編譯時強制執行這些規則,並檢查所有引用是否有效。能夠有效避免C/C++等語言中的懸垂指標等問題;
FFI編譯友好(multiplatform):FFI是可以用一種程式語言寫的程式能呼叫另一種程式語言寫的程式碼的機制,使用Rust可以方便地提供介面給其他語言呼叫;
Rust語言的一些特性,也增強了Tauri框架的可靠性和框架價值。此外,hello word打包後果然只有10m,而且開發還是能用html+css技術,效率非常高。
FinClip
FinClip一套
,也可以說是小程式沙箱 Runtime/Engine,提供 Runtime 基於瀏覽器核心,採用動態語言(JS)和宣告式 View 構建(XML),相容網際網路主流小程式技術,可採用 Vue、react 基礎上的 DSL 框架。
與Electron、Flutter、Tauri等跨端平臺不同的是,FinClip嚴格意義上講是一項容器技術。與跨端平臺不僅不衝突,還可以完美融合。移動端跨平臺開發框架中,不管是透過Flutter、Taro、 kbone等開發出來的小程式均可在FinClip當中執行。
這種小程式容器技術,將檢視層與邏輯層分離也帶來了許多好處:
1、方便多個小程式頁面之間的資料共享和互動。在小程式的生命週期中具有相同的上下文可以為具備原生應用程式開發背景的開發人員提供熟悉的編碼體驗;
2、Service 和 View 的分離和並行實現可以防止 JS 執行影響或減慢頁面渲染,這有助於提高渲染效能;
3、因為 JS 在 Service 層執行,所以 JS 裡面操作的 DOM 將不會對 View 層產生影響,所以小程式不能操作 DOM 結構的,這也使得小程式的效能比傳統的 H5 更好。
之所以在平臺桌面應用開發框架中介紹,就是除了FinClip移動端跨端開發的能力,它還支援在手機以外,如Windows、Mac、Linux、統信、麒麟等平臺下執行小程式,這意味著,移動端、PC 端、IOT等智慧終端都能執行小程式了。同時,它還提供一個完善的後臺管理系統,統一管理小程式的上架和下架、監測小程式的使用詳情,換句話說,藉助該工具,可以藉助微信小程式生態的成熟度,快速引入業務生態來壯大、豐富自己的業務場景,實現技術和業務雙降本增效。
Flutter
Flutter是一個由Google開發的跨平臺應用開發框架,最初只用於移動端為Android、iOS開發應用。2022年5月,Google 在 Google I/O 2022 釋出了 Flutter 3.0版本,宣佈對 Windows、macOS、Linux 桌面作業系統提供支援。
Flutter Desktop 是使用 Dart 編寫介面邏輯的,Dart語言容易學習和上手、開發成本低。此外,Flutter的元件比較豐富,並且支援 Win 10 作業系統(之前的作業系統就不太支援了)。但因為桌面端才剛剛釋出穩定版支援,生態和穩定性都有待考量,還有API 也是比較少的,需要開發人員自己來寫。
如果大家還有實用的、價效比高的跨平臺桌面應用開發框架,歡迎在評論區留言、交流。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017183/viewspace-2925070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 主流的低程式碼開發平臺有哪些?
- vue + electron 開發桌面應用Vue
- web開發框架技術有哪些?Web框架
- Electron+Svelte 開發桌面應用
- 區塊鏈應用場景有哪些?區塊鏈應用開發區塊鏈
- Electron框架使用vue開發跨平臺桌面工具應用-專案搭建框架Vue
- 淺談桌面應用程式的開發
- Flutter 開發桌面應用——遷移已有App應用到桌面版FlutterAPP
- Python有哪些好用的網站開發框架?Python網站框架
- JavaFX桌面應用-構建程式框架Java框架
- TODO 最適合練習主流框架的應用框架
- 實用 | 利用 aardio 配合 Python 快速開發桌面應用Python
- 用jMolecules框架實現DDD應用開發框架
- 【入門必看】Python有有哪些好用的網站開發框架?Python網站框架
- 香港主流的機房有哪些
- 在優麒麟上使用 Electron 開發桌面應用
- 學起來:Flutter將支援桌面應用開發Flutter
- css背景有哪些應用CSS
- 金融級應用開發|SOFABoot 框架剖析boot框架
- 桌面軟體開發框架大賞框架
- 直播APP系統開發應該有哪些功能,如何開發?APP
- OpenHarmony 官網文件有哪些上新?上篇:應用開發文件上新
- 淺談企業開發APP應用常見的型別有哪些APP型別
- 前端開發CSS實用的技巧有哪些前端CSS
- 前端web:主流跨域方式有哪些?前端Web跨域
- Android之五大應用開發框架Android框架
- FMEA到底有哪些應用?
- 入門Web前端要學哪些主流框架呢?Web前端框架
- Electron+Vite+Vue跨平臺電腦桌面應用快速開發框架開箱即用Go快速開發後臺框架api結合開發也可以單獨使用ViteVue框架GoAPI
- Linux桌面系統有哪些?Linux
- Web前端開發框架有哪些?Web前端框架
- 用JS開發跨平臺桌面應用,從原理到實踐JS
- 訊息佇列MQ應用場景及主流框架對比佇列MQ框架
- aardio 開發桌面應用,這幾點必須要掌握!
- 國內主流的CRM軟體有哪些?
- Python有哪些好用且實用的Web框架?PythonWeb框架
- 盤點:2022年國內比較主流的低程式碼開發平臺有哪些?
- 低程式碼適用於哪些應用開發場景