Flutter實戰(zhàn) Flutter APP代碼結(jié)構(gòu)

2021-03-09 14:56 更新

我們先來創(chuàng)建一個全新的 Flutter 工程,命名為"github_client_app";創(chuàng)建新工程的步驟視讀者使用的編輯器而定,都比較簡單,在此不再贅述。創(chuàng)建完成后,工程結(jié)構(gòu)如下:

  1. github_client_app
  2. ├── android
  3. ├── ios
  4. ├── lib
  5. └── test

由于我們需要使用外部圖片和 Icon 資源,所以我們在項目根目錄下分別創(chuàng)建“imgs”和“fonts”文件夾,前者用于保存圖片,后者用于保存 Icon 文件。關于圖片和 Icon,讀者可以參考第三章中相應的內(nèi)容。

由于在網(wǎng)絡數(shù)據(jù)傳輸和持久化時,我們需要通過 Json 來傳輸、保存數(shù)據(jù);但是在應用開發(fā)時我們又需要將 Json 轉(zhuǎn)成 Dart Model 類,現(xiàn)在我們使用在第十一章中“Json 轉(zhuǎn) Model”小節(jié)中介紹的方案,所以,我們需要在根目錄下再創(chuàng)建一個用于保存 Json 文件的“jsons”文件夾。

多語言支持我們使用第十三章“國際化”中介紹的方案,所以還需要在根目錄下創(chuàng)建一個“l(fā)10n”文件夾,用于保存各國語言對應的 arb 文件。

現(xiàn)在工程目錄變?yōu)椋?/p>

  1. github_client_app
  2. ├── android
  3. ├── fonts
  4. ├── l10n-arb
  5. ├── imgs
  6. ├── ios
  7. ├── jsons
  8. ├── lib
  9. └── test

由于我們的 Dart 代碼都在“l(fā)ib”文件夾下,筆者根據(jù)技術選型和經(jīng)驗在lib文件下創(chuàng)建了如下目錄:

  1. lib
  2. ├── common
  3. ├── l10n
  4. ├── models
  5. ├── states
  6. ├── routes
  7. └── widgets
文件夾 作用
common 一些工具類,如通用方法類、網(wǎng)絡接口類、保存全局變量的靜態(tài)類等
l10n 國際化相關的類都在此目錄下
models Json 文件對應的 Dart Model 類會在此目錄下
states 保存 APP 中需要跨組件共享的狀態(tài)類
routes 存放所有路由頁面類
widgets APP 內(nèi)封裝的一些 Widget 組件都在該目錄下

注意,使用不同的框架或技術選型會對代碼有不同的組織方式,因此,本節(jié)介紹的代碼組織結(jié)構(gòu)并不是固定或者“最佳”的,在實戰(zhàn)中,讀者可以自己根據(jù)情況調(diào)整源碼結(jié)構(gòu)。但是無論采取何種源碼組織結(jié)構(gòu),清晰和解耦都是一個通用原則,我們應該讓自己的代碼結(jié)構(gòu)清晰,以便交流和維護。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號