一、為什么決定入坑Flutter
Flutter是Fuchsia的開(kāi)發(fā)框架,是一套移動(dòng)UI框架,可以快速在iOS、Android以及Fuchsia上構(gòu)建高質(zhì)量的原生用戶界面。 其使用的編程語(yǔ)言為Dart,是一門全新的語(yǔ)言。所以說(shuō),上手成本是比較高的,對(duì)于移動(dòng)端開(kāi)發(fā)人員,語(yǔ)言以及框架都是全新的,整個(gè)技術(shù)棧的積累也都得從頭開(kāi)始。
對(duì)于這種高成本的學(xué)習(xí),我為什么決定入坑Flutter呢?其原因主要有兩個(gè):
一是之前一直對(duì)跨平臺(tái)技術(shù)很感興趣,但當(dāng)時(shí)由于時(shí)間原因和已有的跨平臺(tái)方案有很大的不足之處。所以一直猶豫不決也就遲遲沒(méi)有入手。
二是按照目前的趨勢(shì)來(lái)看,大前端是一種趨勢(shì)。畢竟對(duì)于一個(gè)企業(yè)來(lái)說(shuō),用一份人力來(lái)開(kāi)發(fā)適用多個(gè)平臺(tái)的APP是很有價(jià)值的。作為一個(gè)Android開(kāi)發(fā)者,為了讓自己更有競(jìng)爭(zhēng)力,不被淘汰,需要擁抱這種變化。
對(duì)于大前端的趨勢(shì),建議看一下剛哥的觀點(diǎn)與建議
今年 GMTC 大會(huì),F(xiàn)lutter 發(fā)布了第一個(gè)預(yù)覽版,阿里巴巴閑魚團(tuán)隊(duì)已經(jīng)在閑魚 APP 中使用了 Flutter 技術(shù)。Flutter 三年前開(kāi)始開(kāi)發(fā),直到今年才有第一個(gè) beta 版本。通過(guò) Dart 編寫 APP,然后編譯成機(jī)器碼同時(shí)運(yùn)行在 Android 和 iOS 上,做到了原生跨平臺(tái),Hot Reload,性能很不錯(cuò),可定制性也非常強(qiáng),連封裝的系統(tǒng)層 Dart 代碼都能改。提供了 Web、iOS、Android、React-Native 開(kāi)發(fā)者學(xué)習(xí) Flutter 的入門文檔,也是今年移動(dòng)端少數(shù)的幾個(gè)比較火的熱點(diǎn)之一。它的思路不同于 React-Native,是一種全新的思路。
總的來(lái)說(shuō),就是個(gè)人感覺(jué)Flutter的未來(lái)前景很好,雖然現(xiàn)在還不夠成熟。但我相信它的未來(lái)不是夢(mèng)。蜜汁自信?可能是男人的直覺(jué)吧,求后期打臉[啪啪啪]。
二、詳細(xì)介紹Flutter
看一下它的特性:
- 快速開(kāi)發(fā):Flutter的熱重載可以快速地進(jìn)行測(cè)試、構(gòu)建UI、添加功能并更快地修復(fù)錯(cuò)誤。
- 富有表現(xiàn)力,漂亮的用戶界面:自帶的Material Design和Cupertino(iOS風(fēng)格)widget、豐富的motion API、平滑而自然的滑動(dòng)效果。
- 響應(yīng)式框架:使用Flutter的現(xiàn)代、響應(yīng)式框架,和一系列基礎(chǔ)widget,輕松構(gòu)建您的用戶界面。
- 訪問(wèn)本地功能和SDK:Flutter可以復(fù)用現(xiàn)有的Java、Swift或ObjC代碼,訪問(wèn)iOS和Android上的原生系統(tǒng)功能和系統(tǒng)SDK。
- 統(tǒng)一的應(yīng)用開(kāi)發(fā)體驗(yàn):Flutter擁有豐富的工具和庫(kù),可以幫助開(kāi)發(fā)者輕松地同時(shí)在iOS和Android系統(tǒng)中實(shí)現(xiàn)想法和創(chuàng)意。
- 原生性能:Flutter包含了許多核心的widget,如滾動(dòng)、導(dǎo)航、圖標(biāo)和字體等,這些都可以在iOS和Android上達(dá)到原生應(yīng)用一樣的性能。
最具有吸引力的就是統(tǒng)一的應(yīng)用開(kāi)發(fā)體驗(yàn),一套代碼運(yùn)行在多個(gè)平臺(tái)。以及它的熱重載。
其實(shí)讓我決定入手學(xué)Flutter的最后一根稻草就是看到了它的熱重載功能。就是在下面的視頻看到的。如果你對(duì)Flutter有點(diǎn)感冒,強(qiáng)烈建議你也看一下這個(gè)視頻,看完后你會(huì)對(duì)Flutter有不一樣的認(rèn)知。
使用 Flutter 快速構(gòu)建美觀又高性能的移動(dòng)應(yīng)用
如果你實(shí)在不想看,那我就說(shuō)一下熱重載是什么吧?
什么是熱重載?
您可以在Flutter應(yīng)用程序運(yùn)行時(shí)對(duì)其進(jìn)行更改,重新加載應(yīng)用程序的代碼,將其從之前的操作位置繼續(xù)下去。一次熱重載通常用不到一秒鐘。 如果您的應(yīng)用遇到錯(cuò)誤,您通常可以修復(fù)錯(cuò)誤,然后繼續(xù),就像錯(cuò)誤從未發(fā)生過(guò)。 即使你必須完全重新加載,它也是很快速的。
三、關(guān)于它的語(yǔ)言-Dart
Dart是谷歌開(kāi)發(fā)的計(jì)算機(jī)編程語(yǔ)言,于2011年10月份發(fā)布,可以被用于web、服務(wù)器、移動(dòng)端和物聯(lián)網(wǎng)等領(lǐng)域的開(kāi)發(fā)。
- Dart是AOT(Ahead Of Time)編譯的,編譯成快速、可預(yù)測(cè)的本地代碼,使Flutter幾乎都可以使用Dart編寫;
- Dart也可以JIT(Just In Time)編譯,開(kāi)發(fā)周期快;
- Dart可以更輕松地創(chuàng)建以60fps運(yùn)行的流暢動(dòng)畫和轉(zhuǎn)場(chǎng);
- Dart使Flutter不需要單獨(dú)的聲明式布局語(yǔ)言;
- Dart容易學(xué)習(xí),具有靜態(tài)和動(dòng)態(tài)語(yǔ)言用戶都熟悉的特性。
Dart最初設(shè)計(jì)是為了取代JavaScript成為web開(kāi)發(fā)的首選語(yǔ)言,最后的結(jié)果可想而知,到Dart 2的發(fā)布,專注于改善構(gòu)建客戶端應(yīng)用程序的體驗(yàn),可以看出定位的轉(zhuǎn)變。對(duì)應(yīng)使用過(guò)Java、Kotlin的人,都可以很快的上手Dart。
最后放上一些有關(guān)Flutter的.....
Flutter社區(qū)
Flutter官方文檔
Flutter原理
Flutter - Google 開(kāi)源的移動(dòng) UI 框架
Flutter - 不一樣的跨平臺(tái)解決方案