Flutter為何對(duì)程序員來說很重要?
大部分小企業(yè)或者初創(chuàng)公司需要在選擇使用哪種移動(dòng)端開發(fā)技術(shù)時(shí)都要做出關(guān)鍵選擇。他們不斷測(cè)試和評(píng)估技術(shù),以形成快捷的開發(fā)效率以及強(qiáng)大的用戶體驗(yàn),無論客戶端的移動(dòng)設(shè)備或操作系統(tǒng)如何。無論推廣渠道或設(shè)備如何,都有可能落后競(jìng)爭(zhēng)對(duì)手。
更大挑戰(zhàn)在于跨平臺(tái)開發(fā)可能存在各種問題(坑)。在某些情況下,盡管開發(fā)人員盡了最大的努力,但用戶體驗(yàn)卻落后于實(shí)際的原生應(yīng)用程序。近幾年來,我們已經(jīng)看到各種移動(dòng)框架如React Native,Xamarin和Ionic的出現(xiàn),這些框架能幫助程序員更容易高效地開發(fā)出最大化接近原生(Native)的體驗(yàn),以及良好的性能。而2018年12月初的 Flutter Live 2018 上我們看到一個(gè)新玩家進(jìn)入游戲 - 谷歌發(fā)布的Flutter1.0 穩(wěn)定版。
從本質(zhì)上講,F(xiàn)lutter可能看起來像是各種Google技術(shù)和概念的大雜燴,但這會(huì)產(chǎn)生一個(gè)不可思議的強(qiáng)大移動(dòng)端解決方案或框架。它基于谷歌的內(nèi)部編程語(yǔ)言Dart,可以讓Flutter訪問Skia圖形庫(kù) - 也是Chrome瀏覽器使用的。此外,F(xiàn)lutter與Google的Material Design規(guī)范無縫結(jié)合。
以下我列舉13個(gè)理由來說明為什么選擇Flutter比較“重要”,甚至是開始您的Flutter職業(yè)生涯。1. Flutter克服了跨平臺(tái)方案的傳統(tǒng)局限一個(gè)真正的跨平臺(tái)方案長(zhǎng)期以來一直是個(gè)技術(shù)瓶頸,我們不得不開發(fā)同一產(chǎn)品的多個(gè)版本(ios/android/pc/web)等。但是,實(shí)際上,用戶體驗(yàn)以及性能通常落后于本機(jī)原生的應(yīng)用程序,因?yàn)槲覀兺ǔW罱K會(huì)使用間接通過在JavaScript中構(gòu)建并使用JIT(Just In Time)編譯的UI用戶體驗(yàn)。
但使用Flutter,我們不僅可以獲得“一次編寫”方法的優(yōu)勢(shì),還可以創(chuàng)建高性能的“本機(jī)”體驗(yàn),因?yàn)镕lutter App是一個(gè)提前編譯的機(jī)器二進(jìn)制可執(zhí)行文件。它克服了其他跨平臺(tái)解決方案帶來的一些常見挑戰(zhàn)。
2.開發(fā)人員將開發(fā)率提高n倍開發(fā)率的提高之一來自Flutter的“熱重載”(AKA“有狀態(tài)熱重載”和“熱重啟”)。這些允許開發(fā)人員在不到一秒的時(shí)間內(nèi)看到他們對(duì)應(yīng)用程序狀態(tài)所做的更改。
無需再運(yùn)行另一個(gè)Gradle構(gòu)建 - 只要保存就可以實(shí)時(shí)看到修改。對(duì)于開發(fā)人員來說,這往往很容易掌握 - 使用“熱重載”時(shí)很少或根本沒有學(xué)習(xí)曲線,因?yàn)槟J(rèn)情況下每次保存都會(huì)觸發(fā)。但是,優(yōu)勢(shì)至關(guān)重要。開發(fā)時(shí)間通常會(huì)減少30-40%,因?yàn)镚radle的重建時(shí)間會(huì)減慢Android開發(fā)人員的開發(fā)速度一般需要很長(zhǎng)時(shí)間才能應(yīng)用每個(gè)修改。
3.前端和后端只用一種語(yǔ)言、代碼與Android編碼不同的是,后端(Java)引用前端(視圖)的單獨(dú)文件,而flutter使用單一語(yǔ)言(Dart)來完成工作。
Dart建立在其他語(yǔ)言的許多最流行的特性以及功能之上,而且不會(huì)失去Java或類似其他語(yǔ)言的熟悉程度
.Dart
是在開發(fā)人員的易用性的基礎(chǔ)上構(gòu)建的,從而使得許多常見任務(wù)變得更加容易。4.一個(gè)開箱即用的強(qiáng)大開發(fā)、設(shè)計(jì)體驗(yàn)。由于Flutter團(tuán)隊(duì)精心實(shí)施了Material設(shè)計(jì)規(guī)范,因此可以輕松創(chuàng)建開箱即用的強(qiáng)大UI組件。它有助于產(chǎn)生通常只能在本機(jī)應(yīng)用程序中看到的流暢,清晰的體驗(yàn),因?yàn)镕lutter的發(fā)布版本是本機(jī)應(yīng)用程序。
Flutter有一些小組件可以實(shí)現(xiàn)iOS的界面設(shè)計(jì)規(guī)范,讓您在iPhone和iPad上也能獲得原生的“感覺”。
5.有大量的開源軟件包(輪子)大量的開源軟件包可以幫助您更快,更輕松地開發(fā)APP,并且當(dāng)前有許多軟件包可以使許多復(fù)雜的功能變得更加容易實(shí)現(xiàn)。盡管仍然相對(duì)年輕,但由于越來越多的開發(fā)人員積極地為Flutter做出貢獻(xiàn),軟件包庫(kù)每天都在飛速發(fā)展。
6.與Firebase直接集成Firebase為云服務(wù),云功能,數(shù)據(jù)庫(kù),托管,身份驗(yàn)證等一系列服務(wù)提供天然的支持。我們開發(fā)的基礎(chǔ)架構(gòu)可立即無服務(wù)器,冗余和可擴(kuò)展。這意味著我們不必花費(fèi)大量時(shí)間和資源來構(gòu)建服務(wù)端。將它與用于敏捷開發(fā)或自動(dòng)化開發(fā)和發(fā)布過程的工具(比如Fastlane)結(jié)合起來也很簡(jiǎn)單; 促進(jìn)項(xiàng)目可持續(xù)交付。因此,我們不必在團(tuán)隊(duì)中擁有專門的DevOps支持。
7.Flutter支持各種IDE。使用Flutter敲代碼時(shí),我們可以從眾多集成開發(fā)環(huán)境(IDE)中進(jìn)行選擇。起初我開始使用Android Studio,但后來我看到Flutter Live 發(fā)布會(huì)直播使用的是VS Code。這讓我感到疑惑,我發(fā)現(xiàn)許多Flutter開發(fā)人員使用Visual Code。當(dāng)我也更風(fēng)使用VS Code時(shí),我才體會(huì)到為什么這么多人更喜歡它。VS Code重量輕,速度更快,并且具有Android Studio和IntelliJ中提供的大多數(shù)功能。就個(gè)人而言,我已經(jīng)轉(zhuǎn)移到VSCode陣營(yíng)了?,但你也可以繼續(xù)使用其他一些IDE甚至vim,沒必要切換自己所熟悉的IDE才開始在Flutter中工作。
8.UI統(tǒng)一性,一切都是小部件(widgets)一切都是一個(gè)小部件,Appbar,抽屜,Snackbar,List,Card等。我們很容易將一個(gè)Widget嵌入在另一個(gè)Widget中,以便通過將它包裝在Center Widget中來做一些事情。這也有助于確保您的用戶無論在哪個(gè)平臺(tái)上運(yùn)行都能獲得體驗(yàn)。
9.適用于Android / iOS的不同主題為移動(dòng)端分配不同的主題就像使用三元運(yùn)算符(platform==IOS?IosStyle:androidStyle)一樣簡(jiǎn)單檢查用戶正在運(yùn)行的平臺(tái); 允許我們APP的UI讓運(yùn)行時(shí)決定使用哪些UI組件。
這是一個(gè)相同的示例代碼,它檢查當(dāng)前平臺(tái),如果它的iOS,它返回紫色主色的主題。
return new MaterialApp(
// 默認(rèn)主題
theme: new ThemeData(), builder: (context, child) {
final defaultTheme = Theme.of(context);
if (defaultTheme.platform == TargetPlatform.iOS) {
return new Theme( data: defaultTheme.copyWith( primaryColor: Colors.purple ), child: child, );
}
return child;
});
10.使用Code Magic進(jìn)行持續(xù)集成。Code magic是2018年12月4日Flutter Live中的一個(gè)開源工具。
Code Magic很容易學(xué)習(xí),完全免費(fèi)!它是一種高度復(fù)雜的CI工具,專門針對(duì)Flutter進(jìn)行了優(yōu)化。Code magic使構(gòu)建過程無縫。
11.使用2Dimensions Flare 可以更輕松地制作動(dòng)畫。我第一次嘗試使用Flutter + Flare - Bouncy在Flutter live 2018期間也推出了這個(gè)牛X的在線工具,可以輕松創(chuàng)建非凡的UI或動(dòng)畫。它填補(bǔ)了UI設(shè)計(jì)人員和開發(fā)人員之間的空白,減少了應(yīng)用UI或動(dòng)畫相關(guān)更改所需的時(shí)間。
我曾經(jīng)使用過Flare,制作動(dòng)畫soeasy; 很好入門!可以非常細(xì)粒度的定制動(dòng)畫以及各種特效
12.PC端桌和WEB端每個(gè)開發(fā)者都被Flutter團(tuán)隊(duì)現(xiàn)在擁有在Web瀏覽器中運(yùn)行的Flutter應(yīng)用程序原型所震驚。之前的Top Secret項(xiàng)目“Hummingbird”在Flutter Live期間向全世界揭幕。現(xiàn)在就可以使用相同的代碼輕松地為移動(dòng)端,PC桌面設(shè)備和WEB網(wǎng)頁(yè)端創(chuàng)建跨平臺(tái)的應(yīng)用程序。
13.來自Flutter團(tuán)隊(duì)和強(qiáng)大社區(qū)的支持Flutter社區(qū)是一個(gè)很好的地方,即使你沒有的任何問題,你也可以通過傾聽其他開發(fā)者回答別人的問題來學(xué)到很多東西。任何一個(gè)健壯的技術(shù)或語(yǔ)言都離不開強(qiáng)大的開發(fā)社區(qū)以及生態(tài)。
每種開發(fā)語(yǔ)言或開發(fā)解決方案都有它的一席之地,也許Flutter就是你的“雷神之錘”!
歡迎入坑Flutter!!!
以上,望采納。