1.Flutter是什么鸟顺?
官方給的解釋是Flutter is Google'sUI toolkit for building beautiful,
natively compiled applications for mobile, web,and
desktop from a single codebase.
翻譯:Flutter 是谷歌的 UI 工具包探入,用于構(gòu)建美觀侵状、
本機編譯的移動、網(wǎng)絡(luò)和應(yīng)用程序來自單個代碼庫的桌面。
2.Flutter的特點
美觀、快速靖避、高效、開放比默。
2.1 美觀:使用Flutter內(nèi)置美麗的Material Design和Cupertino widget幻捏、豐富的motion API、平滑而自然的滑動效果和平臺感知命咐,為您的用戶帶來全新體驗篡九。
2.2 快速: Flutter 的 UI 渲染性能很好。在生產(chǎn)環(huán)境下醋奠,F(xiàn)lutter 將代碼編譯成機器碼執(zhí)行瓮下,并充分利用 GPU 的圖形加速能力,因此使用Flutter 開發(fā)的移動應(yīng)用即使在低配手機上也能實現(xiàn)每秒 60 幀的 UI 渲染速度钝域。 Flutter 引擎使用 C++ 編寫,包括高效的 Skia 2D 渲染引擎锭魔,Dart 運行時和文本渲染庫例证。
2.3 高效: Hot Reload (熱重載) ,在前端已經(jīng)不是什么新鮮的東西迷捧,但在移動端之前一直是沒有的织咧。
2.4開放:Flutter 是開放的胀葱,它是一個完全開源的項目。
3.跨平臺方案笙蒙,可以優(yōu)先選Flutter方案
方案一:H5開發(fā)
基于 JavaScript 和 WebView的跨平臺抵屿。主要是通過HTML來構(gòu)建自己的界面,再將其顯示在各個平臺的WebView中捅位。
方案二:React Native開發(fā)
是一個移動框架轧葛,也可以說是JS框架,它里面提供了很多JS函數(shù)艇搀,這些JS函數(shù)直接映射到系統(tǒng)函數(shù)上的尿扯,針對不同的平臺提供了不同的API,所以ReactNative開發(fā)跟原生開發(fā)沒有太大區(qū)別,
但是ReactNative的本質(zhì)是通過JavaScript VM調(diào)用原生接口焰雕,通信相對比較低效衷笋,而且框架本身不負責(zé)渲染,而是間接通過原生進行渲染的矩屁,所以性能上還不如原生開發(fā)辟宗。
但它性能比web開發(fā)要好,因為它不依賴于webview了吝秕,開發(fā)的時候用js代碼泊脐,編譯的時候就生成原生代碼。它被用來移動開發(fā)(iOS和Android)郭膛、智能設(shè)備(如手表晨抡、電視)、增強現(xiàn)實等则剃。由于RN沒有DOM可交互耘柱,所以它沒有使用React中使用的相同類型的HTML標(biāo)記,而是使用自己的標(biāo)記棍现,這些標(biāo)記隨后被編譯成其他語言调煎。例如,RN開發(fā)者使用RN內(nèi)置的標(biāo)簽己肮,而不是HTML標(biāo)簽士袄,它可以在后臺編譯成其他本地代碼(例如Android上的View;iOS上的UIView)。
React Native支持熱更新功能谎僻!
方案三: Futter開發(fā)
Flutter 與React Native的本質(zhì)區(qū)別:Flutter 有自己的組件渲染閉環(huán)娄柳,不再是調(diào)用android或iOS平臺下的組件進行渲染。
總之艘绍,F(xiàn)utter包含框架赤拒、widget和工具,為開發(fā)人員提供了一種在Android和iOS上構(gòu)建和部署精美移動應(yīng)用程序的簡單高效的方式。
Flutter既不使用Webview,也不使用操作系統(tǒng)的原生控件挎挖。
相反这敬,F(xiàn)lutter使用自己的高性能渲染引擎來繪制widget。
Flutter代碼都是先AOT(運行前)編譯為Android/Ios下的本地代碼,再運行的蕉朵。Flutter不支持熱更新功能
今天的分享結(jié)束了崔涂,再見~