Flutter項目結(jié)構(gòu)


介紹

下面是本人自己寫Flutter項目用的目錄結(jié)構(gòu)。因為公司還沒有使用Flutter。純屬個人項目的目錄結(jié)構(gòu)。所以目的是希望有大型Flutter項目經(jīng)驗的前輩幫忙指出各個地方的不足之處。


界面

  • 箭頭4:所有界面都在此目錄下創(chuàng)建一個對應(yīng)的文件夾。以首頁home的第一個tab欄為例(home_tab1)
  • 箭頭5:為一個頁面。箭頭5指向文件夾根據(jù)名字可知是首頁tab欄1的頁面。內(nèi)部必有一個dart文件(箭頭7)繼承自統(tǒng)一操作生命周期的父Widget(箭頭2)。和只有在該頁面中才使用的組件組成的一個文件夾widget(箭頭6)
  • 箭頭6:是當(dāng)前頁面拆分出來的一個個小組件,只在當(dāng)前界面使用。不是公共的,當(dāng)需要公共的組件則需要放入箭頭3文件夾中。
  • 箭頭3:存放公共組件,每個組件以Comm開頭和頁面內(nèi)組件(箭頭6)區(qū)分開。
  • 箭頭1:存放不是單獨(dú)頁面僅有的Widget
  • 箭頭2:定義頁面的公共BaseStatefulWidget、公共的BaseState<BaseStatefulWidget>和公共的生命周期事件處理器。
    所有頁面都必須繼承自該BaseStatefulWidget,且內(nèi)部的State必須繼承自BaseState<BaseStatefulWidget>。
    父類BaseState中自動使用繼承自WidgetsBindingObserver的LifecycleEventHandler。
  • 箭頭7:表示一個頁面的入口文件(路由指向的都是這個位置的Widget)。

網(wǎng)絡(luò)請求

網(wǎng)絡(luò)請求這部分,用的是在空閑的時候封裝的一套接口請求框架。為了統(tǒng)一各種服務(wù)器報文的json數(shù)據(jù)格式。

  • 將網(wǎng)絡(luò)請求初始化代碼寫在config/http_init中,并在main.dart的啟動方法中調(diào)用初始化。
  • 請求接口:
  • 響應(yīng)實體類

路由

  • 通過一個路由工具類通過Navigator在各個路由之間跳轉(zhuǎn)
  • 在mian.dart配置路由
  • 路由跳轉(zhuǎn)
    UtilRouter.pushName(context, UtilRouter.login); //添加后,跳轉(zhuǎn)登錄界面
    ... 等等

常量

  • 公共顏色、尺度、字符串、webveiw打開網(wǎng)頁的一系列常量的定義。

插件

  • 插件初始化:在config/*下編寫各類插件需要的初始化操作,并且在main.dart中調(diào)用。

其他的大多數(shù)個人封裝的一些平臺插件了,比如:

  • 網(wǎng)頁離線包:由于開發(fā)原生時寫了支持離線包的webview,所以寫成了flutter插件。
  • 權(quán)限請求:好像有出來權(quán)限請求框架,還沒來得及測試。就直接用來自己的。
  • 拍照讀取相冊:功能比較簡單。看了下社區(qū)的這個后,后面每次就先看看社區(qū)有沒有比較好的,而不是自己寫了(個人項目)。
  • ...

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

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

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