前言
flutter作為新一代移動UI框架,有很多native不具備的優(yōu)勢,比如開發(fā)時熱加載,可以立刻看到UI修改效果,提升開發(fā)效率,而且同一套代碼還可以在多端同時運(yùn)行,確實節(jié)約開發(fā)成本,之前公司開始了TT語音的flutter遷移,所以學(xué)習(xí)了flutter,然后開發(fā)了BaseFlutter開源項目,該項目使用了很多實際項目開發(fā)中需要用到了技術(shù)和第三方框架,而且做了很多基礎(chǔ)封裝,可以直接拿到實際項目中使用,而且學(xué)習(xí)這個項目還可以幫助新手減降低學(xué)習(xí)難度,提供學(xué)習(xí)方向,實現(xiàn)flutter快速入門,github鏈接
使用的第三方框架
-
1. injectable
配合get_it框架,在編譯時生成代碼,實現(xiàn)依賴注入 -
2.dio
實現(xiàn)網(wǎng)絡(luò)請求 -
3.get_it
實現(xiàn)依賴注入 -
4.retrofit
結(jié)合dio實現(xiàn)網(wǎng)絡(luò)請求,編譯時生成網(wǎng)絡(luò)請求的代碼 -
5.logger
日志打印 -
6.toast
吐司 -
7.event_bus
實現(xiàn)不同頁面和組件的通信 -
8.json_serializable
結(jié)合json_annotation實現(xiàn)json數(shù)據(jù)序列化 -
9.extended_image
實現(xiàn)網(wǎng)絡(luò)圖片的加載,強(qiáng)大的官方 Image 擴(kuò)展組件, 支持加載以及失敗顯示,緩存網(wǎng)絡(luò)圖片,縮放拖拽圖片,繪制自定義效果等功能 -
10.webview_flutter
實現(xiàn)網(wǎng)頁的加載 -
11.shared_preferences
簡單的數(shù)據(jù)持久存儲 -
12.pull_to_refresh
實現(xiàn)下拉刷新和分頁加載 -
13.floor
數(shù)據(jù)庫,使用類似于retrofit -
14.flutter_swiper
圖片輪播
使用的架構(gòu)和基礎(chǔ)封裝
- 結(jié)合Provider實現(xiàn)MVVM架構(gòu),封裝了BaseState,BaseStatefulWidget,BaseViewModel
- 結(jié)合模板方法模式,泛型,Mixin,依賴注入等方式,封裝了大量重復(fù)的邏輯,簡化了開發(fā)難度
- Mixin類的封裝:目前包含NavigatorMixin,ToastMixin,SharePreferenceMixin,EventBusMixin,DataBaseMixin
- 基礎(chǔ)Widget的封裝:例如BottomDialog,CenterDialog,EnsureAndCancelDialog,LoadingDialog,PopupWindow,CommonWrap,LazyIndexedStack等等
- BaseViewModel統(tǒng)一網(wǎng)絡(luò)請求,統(tǒng)一發(fā)起網(wǎng)絡(luò)請求,同時處理異常,loading
后期規(guī)劃
1.路由,實現(xiàn)各模塊,各業(yè)務(wù)的解耦
2.組件化
3.內(nèi)存泄漏檢測
4.埋點(diǎn)框架
5.各種炫酷動畫
6.性能優(yōu)化
QQ交流群
群號碼:770892444