2020年,是迷茫的一年
沒有很清楚的目標,自學了k8s,但是工作中並不會用得到
所以后知后覺,已經沒有別的路可以走了,唯一的選擇就是在客戶端開發上繼續前行
作為一個wpf開發,注定只能在windows上玩耍
想將客戶端開發進行到底,可惜
幾乎可以肯定wpf已經不會考慮跨平台了,因為和windows硬件(顯卡)綁定太嚴重
雖然有個xamarin(maui),但是不溫不火的,並且也沒有解決wpf的性能問題
uwp性能是的挺高的,但也和win10綁定在一起了,仍然是個半死不活的框架
再者有winui3 ,unio跨平台, 這些看起來有潛力,但是現階段都是學了找不到工作的
感覺有點孤立無援
所以只能把目光放到其他ui框架上了
這個時候我看到了 flutter和Qt
flutter是谷歌的跨平台方案,使用托管語言dart
社區強大,文檔強大 ,入門相對來說比較簡單,可以用於安卓 ios 跨平台,也能做h5,但是還不是很成熟,
qt是GPL開源 和LGPL商業授權的跨平台方案 如果你的軟件是開源的,那么它就是免費的,如果你的軟件不是開源的,那么你需要買
授權 ,否則你需要包一層開源的包裝,這樣就可以繞過LGPL的限制 當然對於一個盈利的公司來說,授權並不昂貴
qt社區強大,文檔強大, 入門相對來說比較難一些,可以用於幾乎全平台 andriod ios linux mac window的開發
qt又分 widget和qml (qt quick)
widget 是4.x時就成型了的,特別適合信息密度大的gui開發(桌面),也能開信息密度較發低的gui(移動 ),繪圖用cpu,所以ui效果中規中矩
qml 是從5.0開始的, ui用qml(類似json+js的語言)編寫 可以把qml對象關聯到cPP, 布局用qml,業務邏輯用cpp
qml具有硬件加速,所以可以簡單的做出比較炫的ui ,但是如果布局很復雜,可能會降低性能。
5. x版本主要就是做移動端的 qml
6. x版本主要做桌面端的qml
如果你要用qt開發桌面程序,目前你應該選擇的是widget, 但如果是移動開發,你的應該選擇qml
6.x已經發布了,但是效果如何尚不清楚,但是學了qml,可能將來可以在6.x中用qml快樂的開發桌面程序
我個人有強烈的學習qt的意願:
1.因為wpf mvvm習慣了,所以個人比較傾向於qt qml的開發方式, flutter在我眼里就是很牛逼的反派份子
2.flutter目前的崗位沒有qt多,
3.qt的天花板也比較高,可以有很多學習的樂趣,
4.無論是做什么客戶端,開發技能高到某一程序,你總是會碰到cpp,所以cpp會的話,比再多會一種托管語言重要很多
5.我的cpp理論基礎好(語法,std),但一直沒有實踐,可以快速的上手
6. qt 6.x成熟后, qt qml應該也可以用於開發高性能的跨平台桌面程序
以上是我看了部分qt qml的官方教程 和flutter官方的所有視頻教程得出的結論