W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們先來(lái)創(chuàng)建一個(gè)全新的 Flutter 工程,命名為"github_client_app";創(chuàng)建新工程的步驟視讀者使用的編輯器而定,都比較簡(jiǎn)單,在此不再贅述。創(chuàng)建完成后,工程結(jié)構(gòu)如下:
github_client_app
├── android
├── ios
├── lib
└── test
由于我們需要使用外部圖片和 Icon 資源,所以我們?cè)陧?xiàng)目根目錄下分別創(chuàng)建“imgs”和“fonts”文件夾,前者用于保存圖片,后者用于保存 Icon 文件。關(guān)于圖片和 Icon,讀者可以參考第三章中相應(yīng)的內(nèi)容。
由于在網(wǎng)絡(luò)數(shù)據(jù)傳輸和持久化時(shí),我們需要通過(guò) Json 來(lái)傳輸、保存數(shù)據(jù);但是在應(yīng)用開(kāi)發(fā)時(shí)我們又需要將 Json 轉(zhuǎn)成 Dart Model 類(lèi),現(xiàn)在我們使用在第十一章中“Json 轉(zhuǎn) Model”小節(jié)中介紹的方案,所以,我們需要在根目錄下再創(chuàng)建一個(gè)用于保存 Json 文件的“jsons”文件夾。
多語(yǔ)言支持我們使用第十三章“國(guó)際化”中介紹的方案,所以還需要在根目錄下創(chuàng)建一個(gè)“l(fā)10n”文件夾,用于保存各國(guó)語(yǔ)言對(duì)應(yīng)的 arb 文件。
現(xiàn)在工程目錄變?yōu)椋?/p>
github_client_app
├── android
├── fonts
├── l10n-arb
├── imgs
├── ios
├── jsons
├── lib
└── test
由于我們的 Dart 代碼都在“l(fā)ib”文件夾下,筆者根據(jù)技術(shù)選型和經(jīng)驗(yàn)在lib文件下創(chuàng)建了如下目錄:
lib
├── common
├── l10n
├── models
├── states
├── routes
└── widgets
文件夾 | 作用 |
---|---|
common | 一些工具類(lèi),如通用方法類(lèi)、網(wǎng)絡(luò)接口類(lèi)、保存全局變量的靜態(tài)類(lèi)等 |
l10n | 國(guó)際化相關(guān)的類(lèi)都在此目錄下 |
models | Json 文件對(duì)應(yīng)的 Dart Model 類(lèi)會(huì)在此目錄下 |
states | 保存 APP 中需要跨組件共享的狀態(tài)類(lèi) |
routes | 存放所有路由頁(yè)面類(lèi) |
widgets | APP 內(nèi)封裝的一些 Widget 組件都在該目錄下 |
注意,使用不同的框架或技術(shù)選型會(huì)對(duì)代碼有不同的組織方式,因此,本節(jié)介紹的代碼組織結(jié)構(gòu)并不是固定或者“最佳”的,在實(shí)戰(zhàn)中,讀者可以自己根據(jù)情況調(diào)整源碼結(jié)構(gòu)。但是無(wú)論采取何種源碼組織結(jié)構(gòu),清晰和解耦都是一個(gè)通用原則,我們應(yīng)該讓自己的代碼結(jié)構(gòu)清晰,以便交流和維護(hù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: