由于物聯(lián)網(wǎng)的快速發(fā)展,新的APP開(kāi)發(fā)
熱潮正在到來(lái),谷歌、華為這些公司正在重新定義移動(dòng)開(kāi)發(fā)框架,而Flutter
就是可選擇之一。不敢說(shuō)Flutter
一定是移動(dòng)技術(shù)的未來(lái),但一定代表了移動(dòng)技術(shù)的發(fā)展方向。
一、Flutter是什么
Flutter
是 Google
于 2015 年 5 月 3 日推出的免費(fèi)開(kāi)源跨平臺(tái)開(kāi)發(fā)框架,可以快速在iOS
和Android
上構(gòu)建高質(zhì)量的原生用戶界面。Flutter
旨在幫助開(kāi)發(fā)者使用一套代碼開(kāi)發(fā)高性能、高穩(wěn)定性、高幀率、低延遲的Android
和iOS
應(yīng)用。Flutter
使用的是 Google
自己開(kāi)發(fā)的網(wǎng)絡(luò)編程語(yǔ)言——Dart語(yǔ)言
。
二、Flutter 的發(fā)展
2015年 05 月Flutter
的第一個(gè)版本“Sky
”在Dart
開(kāi)發(fā)者峰會(huì)上亮相;
2018年02月27日在世界移動(dòng)大會(huì) (MWC)上宣布了第一個(gè) Beta
版發(fā)布;
2018年03月06日Beta 2
版本發(fā)布;
2018年12月05日谷歌發(fā)布 Flutter 1.0
正式版;
2019年9月谷歌發(fā)布Flutter 1.9
。
目前很多大公司、開(kāi)發(fā)者紛紛轉(zhuǎn)型使用和學(xué)習(xí) Flutter
進(jìn)行跨平臺(tái)應(yīng)用的開(kāi)發(fā)。全世界已經(jīng)有多個(gè)公司開(kāi)始使用 Flutter
來(lái)開(kāi)發(fā)應(yīng)用,包括 Abbey Road Studios
、阿里巴巴
、Capital One
、Groupon
、Hamilton
、京東
、Philips Hue
、Reflectly
以及騰訊
等。Flutter 1.9
于 2019 年 9月發(fā)布,這樣的更新頻率給開(kāi)發(fā)者和公司增加了動(dòng)力,Flutter
勢(shì)必將成為未來(lái)跨平臺(tái)開(kāi)發(fā)主流趨勢(shì)。
三、Flutter框架特性
快速開(kāi)發(fā)
Flutter
的熱重載能力幫助開(kāi)發(fā)者快捷方便的試驗(yàn)、重構(gòu)UI、添加特性和修復(fù)bug。在仿真器、模擬器、ios、android硬件上體驗(yàn)亞秒級(jí)的重載,而不會(huì)丟失狀態(tài)。
跨平臺(tái)
Flutter
基于圖像繪制引擎進(jìn)行渲染,在不同平臺(tái)下繪制效果絕對(duì)一致,能做到真正的跨平臺(tái)。
絢麗UI
通過(guò)Flutter
內(nèi)建的、漂亮的、有質(zhì)感設(shè)計(jì)的Cupertino
(ios-flavor)小工具、豐富的動(dòng)畫API,平滑的自然滾動(dòng)和平臺(tái)感知,讓用戶感受UI設(shè)計(jì)的快樂(lè)。
響應(yīng)式
通過(guò)Flutter的現(xiàn)代響應(yīng)式(Reactive)框架、豐富的平臺(tái)布局、基礎(chǔ)組件,能夠輕松的構(gòu)建用戶界面。使用強(qiáng)大而靈活的API解決2D、動(dòng)畫、手勢(shì)、效果等難題。
訪問(wèn)原生功能
通過(guò)平臺(tái)api
、第三方sdk
和原生代碼
,使應(yīng)用變得生動(dòng)。Flutter
可以重用現(xiàn)有的java
、swift
和Objc
代碼,并在iOS
和Android
上訪問(wèn)原生特性和SDK
。
四、目前各種跨平臺(tái)方案的對(duì)比
開(kāi)發(fā)APP
應(yīng)用,如需要同時(shí)兼容iOS
和Android
兩種平臺(tái),有兩種技術(shù)選擇:
1、走原生開(kāi)發(fā)路線,把界面和邏輯在不同平臺(tái)分別實(shí)現(xiàn);
2、用同一套代碼兼容多個(gè)平臺(tái),但這往往意味著運(yùn)行速度和產(chǎn)品體驗(yàn)的損失。
除了原生外,目前跨平臺(tái)技術(shù)一般是混合開(kāi)發(fā),如采用 H5
、React Native
、Weex
、小程序等技術(shù)實(shí)現(xiàn)跨平臺(tái)應(yīng)用。不過(guò)這些混合開(kāi)發(fā),或多或少都能感覺(jué)到UI卡頓和體驗(yàn)不流暢,并且開(kāi)發(fā)和學(xué)習(xí)成本非常高,有各自的局限性。
Flutter
的出現(xiàn),為開(kāi)發(fā)者提供了一套兩全其美的解決方案:既能用原生代碼直接調(diào)用的方式來(lái)加速圖形渲染和 UI 繪制,又能同時(shí)運(yùn)行在兩大主流移動(dòng)操作系統(tǒng)上,并且體驗(yàn)和流暢度和原生基本一致、開(kāi)發(fā)效率非常高、學(xué)習(xí)難度和成本低。
從上面的對(duì)比可以看出,Flutter
優(yōu)勢(shì)明顯:高體驗(yàn)度、高開(kāi)發(fā)效率、低學(xué)習(xí)成本、高可擴(kuò)展性。未來(lái) Google Flutter
團(tuán)隊(duì)還將會(huì)使 Flutter
支持 PC
和 Web
的跨平臺(tái)開(kāi)發(fā),實(shí)現(xiàn)真正全平臺(tái)。 針對(duì)Flutter
的跨平臺(tái)特性,與react native
、weex
做對(duì)比可以發(fā)現(xiàn),其性能碾壓后兩者,采用自帶Skia
繪制引擎,性能堪比原生。
以上就是關(guān)于Flutter
的一些介紹了,對(duì)Flutter
感興趣的同學(xué)可以看一下教程:
- Flutter中文文檔:http://hgci.cn/evilg/
- Flutter視頻課程:http://hgci.cn/minicourse/play/flutter_ksj