Flutter是一個UI SDK(Software Development Kit)
可以進行移動端(iOS, Android), Web端(Beta) ,桌面(technical preview),跨平臺解決方案.
移動端目前已經(jīng)很多公司在使用flutter開發(fā),Google ,阿里 (手淘, 閑魚),騰訊(手Q)等,,特別是阿里的閑魚團隊,為Flutter做出了非常多的貢獻.
Flutter它是有一統(tǒng)大前端的野心,并且它正在侵蝕iOS和Android這些原生開發(fā).
Flutter有哪些特點?
美觀, 快速, 高效 ,開放
— 美觀: 使用Flutter內(nèi)置的美麗的Material Design和Cuperino widget ,豐富的motion API,平滑而自然的滑動效果和平臺感知,為用戶帶來全新的體驗.
— 快速: Flutter的UI渲染性能很好,在生產(chǎn)環(huán)境下.Flutter將代碼編譯成機器碼執(zhí)行,并充分利用GPU的圖形加速能力,因此使用Flutter開發(fā)的移動應用即使在低配手機上也能實現(xiàn)每秒60幀的UI渲染速度,。Flutter引擎使用C++編寫的,包括高效的Skia 2D渲染引擎,Dart運行是和文本渲染庫.
— 高效: Hot Reload(熱重載),在前端已經(jīng)不是什么新鮮的東西,但是移動端之前一直都是沒有的.
— 開放: Flutter是開放的,它是一個開源的項目.
Flutter渲染引擎Skia
Skia就是Flutter向GPU提供數(shù)據(jù)的途徑,。
Skia(全稱Skia Graphics Library(SGL))是一個C++編寫的圖形庫,能在低端設(shè)備上呈現(xiàn)高質(zhì)量的2D圖形,最初由Skia公司開發(fā),后被Google收購.目前,Skia已然是Android官方的圖像渲染引擎了,因此Flutter Android SDK無需內(nèi)嵌Skia引擎就可以獲得天然的Skia支持.該引擎應用于Android,Google Chrome, Chrome OS等等當中.
而對于iOS平臺來說,有Skia是跨平臺的,因此它作為Flutter iOS渲染引擎被嵌入到Flutter的iOS SDK中,替代iOS閉源的Core Graphics/Core Animation /Core Text,這也正是Flutter iOS SDK打包的App包體積比Android要大的原因.
下面是Flutter的渲染過程(以Double Buffer為例)