認(rèn)識(shí) Flutter 是什么?

(一)什么是 Flutter

Flutter是谷歌的移動(dòng)UI框架房铭,可以快速在iOSAndroid上構(gòu)建高質(zhì)量的原生用戶界面暮屡。 Flutter可以與現(xiàn)有的代碼一起工作撤摸。在全世界,Flutter正在被越來(lái)越多的開(kāi)發(fā)者和組織使用褒纲,并且Flutter是完全免費(fèi)准夷、開(kāi)源的。

從官方的的介紹來(lái)看可以總結(jié)成三點(diǎn):

  1. 跨平臺(tái) 現(xiàn)在Flutter至少可以跨 4 種平臺(tái)莺掠,甚至支持嵌入式開(kāi)發(fā)衫嵌。我們常用的有LinuxAndroid彻秆、IOS楔绞,甚至可以在谷歌最新的操作系統(tǒng)上Fuchsia進(jìn)行運(yùn)行,經(jīng)過(guò)第三方擴(kuò)展唇兑,甚至可以跑在MacOSWindows上酒朵,到目前為止,Flutter算是支持平臺(tái)最多的框架了扎附,良好的跨平臺(tái)性蔫耽,直接帶來(lái)的好處就是減少開(kāi)發(fā)成本。

  2. 原生用戶界面: 它是原生的留夜,讓我們的體驗(yàn)更好匙铡,性能更好。用官方的話講就是平滑而自然的滑動(dòng)效果和平臺(tái)感知碍粥,為您的用戶帶來(lái)全新的體驗(yàn)鳖眼。

  3. 開(kāi)源免費(fèi):Android系統(tǒng)一樣,這些都是免費(fèi)開(kāi)源的嚼摩。


(二)主流跨平臺(tái)框架對(duì)比

  1. ReactNative 和 Weex:執(zhí)行效率是硬傷钦讳,首頁(yè)不能用RN已是共識(shí),而且目前在同一AndroidiOS代碼方面尚存在不足低斋。

  2. PWA:用純Web的方式統(tǒng)一三端,很好的idea匪凡。但是需要借助Google play Service和瀏覽器支持膊畴,國(guó)外大部分Android手機(jī)和iOS的新版本都可以支持PWA,但遺憾的是病游,國(guó)內(nèi)的瀏覽器很難統(tǒng)一支持PWA唇跨,這還需要時(shí)間稠通。

  3. 微信小程序:屬于微信內(nèi)的生態(tài)閉環(huán),更適合工具類和小游戲买猖,一般都作為原生APP的延伸入口改橘。

  4. Flutter:在渲染技術(shù)上,Flutter選擇了自己實(shí)現(xiàn)GDI玉控,由于有更好的可控性飞主,使用了新的語(yǔ)言Dart,避免了RN的那種通過(guò)橋接器與Javascript通訊導(dǎo)致效率低下的問(wèn)題,所以在性能方面比RN更高一籌高诺;有經(jīng)驗(yàn)的開(kāi)發(fā)者可以打開(kāi)Android手機(jī)開(kāi)發(fā)者選項(xiàng)里面的顯示邊界布局碌识,發(fā)現(xiàn)Flutter的布局是一個(gè)整體。說(shuō)明Flutter的渲染沒(méi)用使用原生控件進(jìn)行渲染虱而。

技術(shù)類型 UI渲染方式 性能 開(kāi)發(fā)效率 動(dòng)態(tài)化 框架代表
H5 + 原生 WebView 渲染 一般 ?? Cordova筏餐、Ionic
JavaScript + 原生渲染 原生控件渲染 ?? RN、Weex
自繪UI + 原生 調(diào)用系統(tǒng)API渲染 默認(rèn)不支持 Flutter

(三)Flutter 的特點(diǎn)

  1. 快速開(kāi)發(fā)
    毫秒級(jí)的熱重載牡拇,修改后魁瞪,您的應(yīng)用界面會(huì)立即更新。使用豐富的惠呼、完全可定制的widget在幾分鐘內(nèi)構(gòu)建原生界面导俘。

  2. 富有表現(xiàn)力和靈活的UI
    使用Flutter內(nèi)置美麗的Material DesignCupertinowidget、豐富的motion API罢杉、平滑而自然的滑動(dòng)效果和平臺(tái)感知趟畏,為您的用戶帶來(lái)全新體驗(yàn)。

  3. 響應(yīng)式框架
    使用Flutter的響應(yīng)式框架和一系列基礎(chǔ)widget滩租,可以輕松構(gòu)建您的用戶界面赋秀。使用功能強(qiáng)大且靈活的API(針對(duì)2D、動(dòng)畫(huà)律想、手勢(shì)猎莲、效果等)可以幫助開(kāi)發(fā)者解決艱難的UI挑戰(zhàn)。

class CounterState extends State<Counter> {
  int counter = 0;

  void increment() {
    // 告訴Flutter state已經(jīng)改變, Flutter會(huì)調(diào)用build()技即,更新顯示
    setState(() {
      counter++;
    });
  }

  Widget build(BuildContext context) {
    // 當(dāng) setState 被調(diào)用時(shí)著洼,這個(gè)方法都會(huì)重新執(zhí)行.
    // Flutter 對(duì)此方法做了優(yōu)化,使重新執(zhí)行變的很快
    // 所以你可以重新構(gòu)建任何需要更新的東西而叼,而無(wú)需分別去修改各個(gè)widget
    return new Row(
      children: <Widget>[
        new RaisedButton(
          onPressed: increment,
          child: new Text('Increment'),
        ),
        new Text('Count: $counter'),
      ],
    );
  }
}

瀏覽 widget 目錄 身笤,了解更多關(guān)于 響應(yīng)式框架.

  1. 訪問(wèn)本地功能和SDK并支持插件
    Flutter可以復(fù)用JavaSwiftObjC代碼葵陵,訪問(wèn)AndroidiOS上的原生系統(tǒng)功能液荸。另外通過(guò)Flutter插件也可以訪問(wèn)原生系統(tǒng)功能,比如藍(lán)牙脱篙、相機(jī)娇钱、WiFi等等伤柄。

  2. 跨平臺(tái)自繪引擎
    FlutterHybrid AppReact Native這些跨平臺(tái)技術(shù)不同文搂,Flutter既沒(méi)用使用WebView适刀,也沒(méi)有使用各個(gè)平臺(tái)的原生控件,而是本身實(shí)現(xiàn)一個(gè)統(tǒng)一接口的渲染引擎來(lái)繪制UI煤蹭,這樣做可以保證不同平臺(tái)UI的一致性笔喉。另外采用自繪引擎后,Flutter在布局過(guò)程中不需要像RN那樣要在JavaScriptNative之間通信疯兼,可以節(jié)省性能開(kāi)銷然遏。Flutter使用Skia作為其2D渲染引擎,SkiaGoogle的一個(gè)2D圖形處理函數(shù)庫(kù)吧彪,包含字型待侵、坐標(biāo)轉(zhuǎn)換,以及點(diǎn)陣圖都有高效能且簡(jiǎn)潔的表現(xiàn)姨裸,Skia是跨平臺(tái)的秧倾,并提供了非常友好的API

  3. 采用Dart開(kāi)發(fā)
    Flutter App采用Dart語(yǔ)言來(lái)開(kāi)發(fā)傀缩。與JavaScript相比那先,DartJIT(即時(shí)編譯)模式下,速度與JavaScript基本持平赡艰。但是當(dāng)DartAOT(運(yùn)行前編譯)模式運(yùn)行時(shí)售淡,Dart性能要高于JavaScript


學(xué)習(xí)資料

Flutter 中文網(wǎng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慷垮,一起剝皮案震驚了整個(gè)濱河市揖闸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌料身,老刑警劉巖汤纸,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異芹血,居然都是意外死亡贮泞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)幔烛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啃擦,“玉大人,你說(shuō)我怎么就攤上這事饿悬×铗龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵乡恕,是天一觀的道長(zhǎng)言询。 經(jīng)常有香客問(wèn)我,道長(zhǎng)傲宜,這世上最難降的妖魔是什么运杭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮函卒,結(jié)果婚禮上辆憔,老公的妹妹穿的比我還像新娘。我一直安慰自己报嵌,他們只是感情好虱咧,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锚国,像睡著了一般腕巡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上血筑,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天绘沉,我揣著相機(jī)與錄音,去河邊找鬼豺总。 笑死车伞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喻喳。 我是一名探鬼主播另玖,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼表伦!你這毒婦竟也來(lái)了谦去?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绑榴,失蹤者是張志新(化名)和其女友劉穎哪轿,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體翔怎,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窃诉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赤套。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飘痛。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖容握,靈堂內(nèi)的尸體忽然破棺而出宣脉,到底是詐尸還是另有隱情,我是刑警寧澤剔氏,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布塑猖,位于F島的核電站竹祷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏羊苟。R本人自食惡果不足惜塑陵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜡励。 院中可真熱鬧令花,春花似錦、人聲如沸凉倚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)稽寒。三九已至扮碧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杏糙,已是汗流浹背芬萍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搔啊,地道東北人柬祠。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像负芋,于是被迫代替她去往敵國(guó)和親漫蛔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 篇外話 “Flutter是什么旧蛾?”莽龟、“它出現(xiàn)的動(dòng)機(jī)是什么?解決了哪些痛點(diǎn)锨天?”毯盈、“相比React Native、We...
    KavinZhou閱讀 9,339評(píng)論 8 35
  • flutter是什么 最近同事分享了一篇flutter操作系統(tǒng)病袄,感覺(jué)不錯(cuò)搂赋,自己總結(jié)了一下,發(fā)上來(lái)給大家一個(gè)參考益缠,F(xiàn)...
    android老男孩閱讀 6,676評(píng)論 3 17
  • 國(guó)慶后面兩天在家學(xué)習(xí)整理了一波flutter脑奠,基本把能擼過(guò)能看到的代碼都過(guò)了一遍,此文篇幅較長(zhǎng)幅慌,建議保存(star...
    Nealyang閱讀 4,340評(píng)論 1 17
  • 標(biāo)簽(空格分隔): Flutter Dart Flutter簡(jiǎn)介 Flutter 是 Google推出并開(kāi)源的移動(dòng)...
    黃昭鴻閱讀 479評(píng)論 0 1
  • Flutter是什么宋欺? Flutter是 Google推出并開(kāi)源的移動(dòng)應(yīng)用開(kāi)發(fā)框架,主打跨平臺(tái)、高保真齿诞、高性能酸休。開(kāi)...
    木水Code閱讀 683評(píng)論 0 1