BaseFlutter,Provider MVVM的最佳實踐,最適合新手學(xué)習(xí)的flutter開源項目

前言

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容