目前,最優(yōu)的選擇有四個:

創(chuàng)新新互聯(lián),憑借十載的網(wǎng)站設(shè)計、成都網(wǎng)站制作經(jīng)驗,本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計網(wǎng)站有數(shù)千家案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)。
1.如果只在win下使用,.net form是不二選擇,可謂是又快又好,企業(yè)應(yīng)用或定制開發(fā)都是相當(dāng)好的,初學(xué)者也可以入手。
2.electron,跨平臺。需要會前端,必須熟悉js、css和html。屬于前端人員大殺器,如果是初學(xué)者,需要一下子學(xué)三樣?xùn)|西,再加上electron的進程間通信,可能會被搞懵。
3. qt5,可以使用qml(js語法)進行UI編程,但是需要懂c艸,但是寫軟件相當(dāng)快,還可以寫安卓、ios、Linux、嵌入式中的應(yīng)用。
4.flutter,剛剛正式支持win平臺的軟件開發(fā)。谷歌出的這個東西,適合沒有基礎(chǔ)的初學(xué)者,因為是一個全新的體系,全新的語言,寫ios、安卓非常高效,之后還會兼容h5。如果是初學(xué)者可以跟著走,值得嘗試。但是新東西總有一些坑。
正式項目跨平臺建議electron或qt,只用win平臺強烈建議微軟自己的net。個人技術(shù)嘗試建議flutter。
桌面端開發(fā)跨平臺的,如果你是輕量級的項目,那么我推薦你用electron, 目前使用Electron來開發(fā)的桌面應(yīng)用非常多,我們最熟悉的比如Atom,VScode等等。
而且在github上也能找到許多應(yīng)用使用了electron。
electron是Node,Chromium,html,css,js的結(jié)合框架,這就需要你有一定的前端基礎(chǔ)。其實只需要了解一下electron的API就行了,其他的就像你在做web是一樣的。
這種方式最大的缺點就是性能,還有透明窗口也有問題。所以在做需要性能方面占有很大成分的項目時,并不推薦使用這個方式。
那么其他的,就是最近幾年使用比較多的windows directui框架,但它不是跨平臺的。
那么就引出了qt,作為c++跨平臺的界面框架,這個上手的話,我覺得對一般人是有難度的,因為首先需要扎實的c++功底,其次你要熟悉控件的制作原理,因為有時候你需要定制自己的UI控件。它現(xiàn)在在嵌入式,軍工領(lǐng)域非常受歡迎。但是整個庫非常臃腫龐大,而且開發(fā)界面的效率也非常低。如果來做互聯(lián)網(wǎng)項目,迭代更新的速度根本就跟不上。
目前都只有大公司會采用,像maya這種生產(chǎn)力型的應(yīng)用很多是qt做的。
還有一種是直接使用Cef加js,比如網(wǎng)易云音樂,就是這么搞的,但是很多和系統(tǒng)平臺的交互接口你需要重寫,等于是需要自己造輪子。工作量大,目前沒有適合的框架給你套用,也需要扎實的c++功底。
其實pc端的應(yīng)用基本也就windows會火一些,再加一個macos,那么選擇qt應(yīng)該會很好一點,畢竟你自己造一個跨平臺的框架,太費時。總之,做跨平臺就意味著,不可能做到既有效率又完美的實現(xiàn)各種功能,許多都要自己摸索。
win桌面端直接上visual studio啊!然后你熟悉什么語言?vb.net,c#,c++都有相應(yīng)的win桌面工具。直接用就好了,非常好用
編程語言這種東西無所謂,只要能用啥都可以。 主要看你老板需要和你會用什么語言。
比如 我用AS編安卓程序,當(dāng)然用JAVA。不過我后臺最開始用ASP和ASP.NET來做,現(xiàn)在換PHP了。桌面端用QT或者VB做。 涉及單片機部分控制也用C。
現(xiàn)在做跨平臺的了 開始以QT為主了。
只要能達到目的啥都可以。
學(xué)會1-2種 換其他的也不是很難。
對初學(xué)者來建議學(xué)C起步吧。
精通一門,重新學(xué)個語言入門也就1個月的事。
PC桌面程序,如果簡單一點的,用pyqt5+python的開發(fā)難度和周期都比較現(xiàn)實一點
會C++ 用Qt5 非常不錯 寫代碼效率很高
會js 用atom使用的那個框架
會Python用PyQt 寫代碼很快
會java用JavaFX
看語言咯
還可以用delphi,其firemonkey框架發(fā)布8年時間,支持跨平臺:win,安卓,ios,macos,linux,后續(xù)支持webassembly,界面是控件拖拽布局所見即所得,開發(fā)效率較高。編譯生成的是機器碼,編譯速度快,調(diào)試方便,其生成機器碼運行效率較高,支持x86,arm的32位64位處理器。支持跨平臺3D界面,藍牙通訊,定位,重力,攝像等,支持多種SQL,NoSQL數(shù)據(jù)庫。單個開發(fā)工具實現(xiàn)前后端開發(fā),跨平臺開發(fā)。適合個人和小公司用一套工具實現(xiàn)大部分開發(fā)需求。
主要有以下幾種技術(shù)
### Duilib
#### 簡述
Duilib是在Windows平臺上使用最廣泛的類庫,使用C++和XML混合編程,國內(nèi)很多計算機企業(yè)都喜歡使用這個類庫,可能是由于他的技術(shù)許可比較寬泛的原因。
適合于界面比較簡單的軟件,視覺特效豐富,局限于Windows的平臺。例子:360電腦管家。
#### 優(yōu)勢
#### 劣勢
### Gtk、Qt或WxWidget:
#### 簡述
三種基本可以做到跨平臺的技術(shù),使用C/C++開發(fā),使用者廣泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各種綁定技術(shù))使用自繪技術(shù)。
結(jié)構(gòu)嚴謹,軟件可以做的很大很復(fù)雜。例子:WPS和Maya。
#### 優(yōu)勢
#### 劣勢
### Electron:
#### 簡介
使用Web技術(shù)開發(fā)桌面軟件,基于Chromium(Chrome)引擎,使用JS編程語言,絕大多數(shù)使用者都是原來的網(wǎng)頁開發(fā)者。
絕大多數(shù)都是愛好者使用,處于“勉強可用”的地步。
適合大面積靜態(tài)展示型軟件使用。例子:網(wǎng)易云音樂。
#### 優(yōu)勢
#### 劣勢
### QtQuick(QML)
#### 簡述
Qt公司開發(fā)的一款基于OpenGL的圖形類庫,有顯卡加速,類似于Duilib。采用了C++與QML混合編程。QML類似于JavaScript語言。
QtQuick下一個版本在Qt 6上更加強大,業(yè)界期待已久。
#### 優(yōu)勢
#### 劣勢
### Atk、Swing或JavaFX
使用Java語言開發(fā)軟件,有JDK加持業(yè)界積累的眾多Java類庫支持。有不輸于VS的IDEA加持,本應(yīng)該更棒,只是現(xiàn)在已經(jīng)式微了。
絕大多數(shù)使用者都是企業(yè)開發(fā)(不追求界面美觀)、愛好者(開發(fā)順手)。
### WinForm、WPF或Xamarin:
使用C#開發(fā),WinForm和WPF局限于Windows平臺。有VisualStudio加持使用很爽。
### Flutter:
使用Dart語言,新類庫,bug可能會很多。
### SwiftUI或Cocoa:
蘋果平臺原生界面技術(shù),macOS平臺內(nèi)建支持,不是macOS專用軟件不推薦。
### Win32:
經(jīng)典Windows 平臺API,絕大多數(shù)只有一些老軟件還在使用,不是維護老軟件不推薦。
winform,不二選擇
webview2,作為一個瀏覽器控件嵌入在桌面應(yīng)用中,支持.net core和.net framework
Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。 Flutter可以與現(xiàn)有的代碼一起工作。在全世界,F(xiàn)lutter正在被越來越多的開發(fā)者和組織使用,并且Flutter是完全免費、開源的。(-中文網(wǎng);-英文網(wǎng))
Flutter是一種趨勢,勢必會取代RN,成為最主流的跨平臺開發(fā)框架,基于Dart語言。ios開發(fā)必須Mac電腦。android開發(fā)window、linux、Mac均可。
Flutter是谷歌公司推出的跨終端的開發(fā)框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發(fā)布,目前的最新版本是1.5,它采用的開發(fā)語言是Dart,Dart也是谷歌開發(fā)的計算機編程語言,語法類似C,是編譯型語言:
hello world例子,打印字符串“Hello World!”:
1、沒有橋接層
React Native、Weex等技術(shù)都是跨終端的框架,然而性能跟原生App存在很大差距。這是由于它們的工作原理決定的:
React Native、Weex等技術(shù)多了一個橋接層,所以界面渲染會慢一些,由于UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗跟原生代碼有差距。而這恰恰是Flutter的優(yōu)勢所在:
Dart可以被編譯成不同平臺的本地代碼,讓Flutter不通過橋接層直接跟平臺通信,自然性能會快一些。
2、編譯執(zhí)行
JavaScript是解釋執(zhí)行的,Dart是編譯執(zhí)行的,性能誰好一目了然。
3、Flutter Engine虛擬機
Flutter是依靠Flutter Engine虛擬機在iOS和Android上運行的,F(xiàn)lutter Engine使用C/C++編寫,開發(fā)人員通過Flutter框架直接和API在內(nèi)部進行交互,所以具有輸入低延遲和UI渲染高幀速率的特點。除了這特點之外,F(xiàn)lutter還提供了自己的小部件,F(xiàn)lutter小部件是使用從React獲取靈感的現(xiàn)代框架構(gòu)建的。 中心思想是您使用小部件構(gòu)建UI。
窗口小部件根據(jù)其當(dāng)前配置和狀態(tài)描述了它們的視圖。 當(dāng)窗口小部件的狀態(tài)發(fā)生更改時,窗口小部件會重建其描述,框架將根據(jù)前面的描述進行區(qū)分,以確定底層呈現(xiàn)樹從一個狀態(tài)轉(zhuǎn)換到下一個狀態(tài)所需的最小更改。可以直接在OS平臺提供的畫布上進行描繪,也就是一些核心類庫直接放到虛擬機里面,調(diào)用起來更快。
從它的系統(tǒng)結(jié)構(gòu)可以看出,類似安卓的ART(Android Run Time)虛擬機,同樣采用AOT(Ahead of TIme)技術(shù),會在APP安裝時就編譯成機器語言,不再解釋執(zhí)行,從而優(yōu)化了APP運行的性能。
4、自帶渲染引擎
Flutter使用谷歌自己的Skia渲染引擎,而Android系統(tǒng)自帶Skia引擎,iOS平臺上Flutter也會把Skia引擎打包到APP中,從而實現(xiàn)了高效渲染。而React Native通過橋接層訪問原生UI,操作頻繁就容易出性能問題。
綜合所述,F(xiàn)lutter 是性能最接近原生代碼 的一種開發(fā)框架,未來也會是構(gòu)建谷歌Fuchsia應(yīng)用的主要方式,前途不可限量,唯一的問題就是需要學(xué)習(xí)一門新的語言:Dart,而有Java或者C#語言基礎(chǔ)的程序員會比較容易學(xué)習(xí)。
上一篇講到如果解決ios長按輸入框報錯的問題,但是最終沒有達到我們的要求,因為我們想實現(xiàn)中文的提示,那么本篇文章講講如何來實現(xiàn)多語言配置;
1.首先在pubspec.yaml的dependencies下加入這個
flutter_localizations:
sdk: flutter
如圖:
2.然后在MaterialApp設(shè)置一下localizationsDelegates如圖:
3.寫一個類繼承一下CupertinoLocalizations,在項目中 我這個類名叫ChineseCupertinoLocalizations(沒錯,就是localizationsDelegates中的第三個),如圖:
上次提到報錯的原因就是因為cutButtonLabel,copyButtonLabel,pasteButtonLabel,selectAllButtonLabel 這幾個按鈕沒有實現(xiàn),所以繼承CupertinoLocalizations一定要為這幾個按鈕賦值,這里是那種語言,那么,賦值就對應(yīng)那種語言,同時要注意locale.languageCode也要填寫,如果你是中文,那么locale.languageCode =='zh';
4.在ios工程中,在項目的info設(shè)置語言環(huán)境
添加?Localization native development region---china
添加一個Localizations 為array類型的,并且設(shè)置值為?Chinese (simplified)
效果圖:( 注意:請把手機環(huán)境調(diào)試成中文的語言環(huán)境 )
Android?
ios 效果圖
我公司用flutter做了一個《柚品生活》的app,感興趣的朋友可以去看看,Android和ios都已經(jīng)上架了
最后附上GitHub項目地址 GitHub - hxxsocket/flutter_lg_demo: flutter多語言配置之中文
在說flutter國際化前,不得不提到,在uni-app中支持的Vue-i18n,兩者有相似之處,也有差異的地方。
本篇借鑒了三篇熱門帖子
Flutter中的國際化:如何寫一個多語言的App
Flutter國際化完整例子
Internationalization - Make an Flutter application multi-lingual
只記錄根據(jù)手機系統(tǒng)語言自動轉(zhuǎn)換app語言
引入后,保存會自動加入安裝此依賴
我們新建一個和"/lib"同級別的文件夾"/locale",然后在這個文件夾中新建兩個文件,分別為"i18n_en.json" 和" i18n_zh.json"。再在"/lib"文件夾下創(chuàng)建和"main.dart"同級的"translation.dart"和"application.dart"。
??文件夾樹現(xiàn)在是這個樣子的:
MyApplication
? |
? +- android
? +- build
? +- images
? +- ios
? +- lib
?? |
?? +-main.dart
?? +-translation.dart
?? +-application.dart
? +- locale
?? |
?? +- i18n_en.json
?? +- i18n_zh.json
? +- test
在pubspec.yaml繼續(xù)加入json,引入靜態(tài)資源
補充:如果需要強制轉(zhuǎn)換的話(我自己沒有用到)
Flutter是一個移動應(yīng)用程序的軟件開發(fā)工具包(SDK),具有以下特征:
跨平臺應(yīng)用的框架,沒有使用WebView或者系統(tǒng)平臺自帶的控件,使用自身的高性能渲染引擎自繪
簡化版的瀏覽器,最大限度在android和ios上統(tǒng)一UI,包括業(yè)務(wù)邏輯和用戶體驗
開發(fā)語言使用dart,結(jié)合C, C++, 和Skia(2D渲染引擎)構(gòu)建
支持hot reload,包含著完整的控件和工具鏈
一切皆控件,控件是每個Flutter應(yīng)用程序的基本構(gòu)建塊,與分離視圖、控制器、布局和其他屬性的框架不同,F(xiàn)lutter具有一致的統(tǒng)一對象模型:控件。一個控件可以定義:結(jié)構(gòu)元素(比如按鈕或菜單)、風(fēng)格元素(比如字體或顏色方案)、布局的方面(比如填充)、一些業(yè)務(wù)邏輯等
組合大于繼承,控件本身通常由許多小型、單用途的控件組成,結(jié)合起來產(chǎn)生強大的效果,類的層次結(jié)構(gòu)是扁平的,以最大化可能的組合數(shù)量
強化版的WebView,框架僅提供一個View層,大部分功能要依賴原生
目前只能夠運行大部分Dart代碼(不能引入dart:mirrors或dart:html庫)
分享題目:flutter支持語言,flutter支持什么語言
標(biāo)題網(wǎng)址:http://chinadenli.net/article25/dsspici.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、企業(yè)網(wǎng)站制作、網(wǎng)站內(nèi)鏈、網(wǎng)站維護、網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)