1.跨平臺方法
1.H5+原生(Cordova诱渤、Ionic、微信小程序)
2.JavaScript開發(fā)+原生渲染 (React Native、Weex如贷、快應用)
3.自繪UI+原生(QT for mobile、Flutter)
以上三種方法的利弊在這里就不在贅述了到踏,感興趣的可以自行搜索
2.下面我們看一下flutter的框架結(jié)構(gòu)
這是一個純Dart
實現(xiàn)的SDK杠袱,自下而上我們做一個簡單地介紹:
底下兩層(Foundation和Animation、Painting窝稿、Gestures)在Google的一些視頻中被合并為一個dart UI層楣富,對應的是Flutter中的dart:ui包,它是Flutter引擎暴露的底層UI庫伴榔,提供動畫纹蝴、手勢及繪制能力。
Rendering層踪少,這一層是一個抽象的布局層塘安,它依賴于dart UI層,Rendering層會構(gòu)建一個UI樹援奢,當UI樹有變化時兼犯,會計算出有變化的部分,然后更新UI樹,最終將UI樹繪制到屏幕上切黔,這個過程類似于React中的虛擬DOM砸脊。Rendering層可以說是Flutter UI框架最核心的部分,它除了確定每個UI元素的位置绕娘、大小之外還要進行坐標變換脓规、繪制(調(diào)用底層dart:ui)。
Widgets層是Flutter提供的的一套基礎(chǔ)組件庫险领,在基礎(chǔ)組件庫之上侨舆,F(xiàn)lutter還提供了 Material 和Cupertino兩種視覺風格的組件庫。而我們Flutter開發(fā)的大多數(shù)場景绢陌,只是和這兩層打交道挨下。
3.學習flutter的渠道
1.Flutter官網(wǎng),Flutter中文網(wǎng),以及Github和StackOverFlow
2.Flutter社區(qū)
3.Flutter官方demo和對應的源碼
4.網(wǎng)站博客