此框架旨在將常規(guī)的Flutter項目中使用到的通用(與業(yè)務(wù)無關(guān))的功能從剝離出來,構(gòu)成Flutter開發(fā)項目的框架,在開發(fā)新的Flutter項目時,可以直接引用本項目 import 'package:framework/framework.dart' 來使用框架中相關(guān)的功能,提升開發(fā)效率。 github項目地址
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的澠池網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
此框架目前包含以下功能模塊:接口請求API模塊、消息提示模塊、路由模塊、統(tǒng)一錯誤處理、日志模塊、屏幕適配測試、自定義UI組件庫、本地存儲模塊構(gòu)成
GetX 是 Flutter 上的一個輕量且強(qiáng)大的解決方案:高性能的狀態(tài)管理、智能的依賴注入和便捷的路由管理。
GetX的優(yōu)勢
對比provider,GetX可能更受歡迎
下面是GetX在pub上面的likes數(shù)據(jù)
下面是GetX在github上面的star數(shù)據(jù)
GetX 因為不需要上下文,突破了InheritedWidget的限制,我們可以在全局和模塊間共享狀態(tài),這正是 BLoc 、Provider 等框架的短板
1、?在MaterialApp前添加 "Get",將其變成GetMaterialApp。
2、創(chuàng)建業(yè)務(wù)邏輯類,并將所有的變量,方法和控制器放在里面。 你可以使用一個簡單的".obs "使任何變量成為可觀察的。
3、引用邏輯類,在界面顯示
幾個注意點(diǎn)
1、
與
效果一樣
2、
與
效果一樣
3、
與
效果一樣
1、Obx
2、GetX
3、GetBuilder
4、ValueBuilder
;target=VSCodecategory=Programming%20LanguagessortBy=Relevance
準(zhǔn)備寫這一系列的文章自己是下了很大的決心的,自知會遇到很大的困難。因能力有限,如有疏漏之處,還請大家斧正。
相信大家都看過很多遍下面那張圖,這個系列的文章就是要分析紅框內(nèi)的源碼:
我們看源碼的結(jié)構(gòu)其實(shí)是這樣的:
總共十二個模塊,對應(yīng)的模塊我一旦寫完就會在下面更新鏈接:
最近在做的一個項目,項目的前期采用Weex開發(fā)。但是隨著交互復(fù)雜度的增加,Weex一處開發(fā)多處多處運(yùn)行的特征并沒有很好的體現(xiàn),相反很多時候我們還是需要做IOS和Android的適配。如今火熱的Flutter相比Weex和Rn來說,給出了更好的跨平臺解決方案。所以我們設(shè)計了一套基于Weex實(shí)現(xiàn),底層跑在Flutter Engine上的框架。
底層的Runtime采用isolate engine,框架業(yè)務(wù)邏輯,Dom的解析邏輯和Render邏輯都跑在這里。
渲染引擎采用Flutter的Skia,徹底剝離了Android和IOS的差異性.
將Weex VirsualDom的解析都替換成Flutter Widget.
設(shè)計基于Weex2Dart的Brider,使JS和Dart可以相互調(diào)用
weex-demo的性能展示
release環(huán)境下采用AOT模式,性能會有質(zhì)的飛躍。
Android-Release版本只有10m大小
相比Weex和Rn具有更好的性能,同時具有更好的跨平臺性
相比Flutter,具有動態(tài)部署的能力(Flutter Release采用AoT模式并沒有動態(tài)部署的能力,即使Debug版本也只是開發(fā)環(huán)境下才有動態(tài)化能力并沒有可以實(shí)施項目的能力)
只需要會Weex開發(fā)或則Rn開發(fā)就可以,不需要額外學(xué)習(xí)Dart,已有的Weex項目可以無縫切換。
Flutter是一個移動應(yīng)用程序的軟件開發(fā)工具包(SDK),具有以下特征:
跨平臺應(yīng)用的框架,沒有使用WebView或者系統(tǒng)平臺自帶的控件,使用自身的高性能渲染引擎自繪
簡化版的瀏覽器,最大限度在android和ios上統(tǒng)一UI,包括業(yè)務(wù)邏輯和用戶體驗
開發(fā)語言使用dart,結(jié)合C, C++, 和Skia(2D渲染引擎)構(gòu)建
支持hot reload,包含著完整的控件和工具鏈
一切皆控件,控件是每個Flutter應(yīng)用程序的基本構(gòu)建塊,與分離視圖、控制器、布局和其他屬性的框架不同,F(xiàn)lutter具有一致的統(tǒng)一對象模型:控件。一個控件可以定義:結(jié)構(gòu)元素(比如按鈕或菜單)、風(fēng)格元素(比如字體或顏色方案)、布局的方面(比如填充)、一些業(yè)務(wù)邏輯等
組合大于繼承,控件本身通常由許多小型、單用途的控件組成,結(jié)合起來產(chǎn)生強(qiáng)大的效果,類的層次結(jié)構(gòu)是扁平的,以最大化可能的組合數(shù)量
強(qiáng)化版的WebView,框架僅提供一個View層,大部分功能要依賴原生
目前只能夠運(yùn)行大部分Dart代碼(不能引入dart:mirrors或dart:html庫)