
本文偏文字總結(jié),比較枯燥。是個(gè)人在 Flutter 實(shí)踐中的一點(diǎn)小小的概括總結(jié),并不一定代表大多數(shù)人的學(xué)習(xí)過程。學(xué)習(xí)實(shí)踐是一個(gè)讓人有點(diǎn)小興奮的過程,之后的總結(jié)記錄也是尤為重要的。歌以詠志,幸甚至哉!
下面是正文!
正式進(jìn)入 Flutter 開發(fā)的第 3 周!
第 1 周:功能試點(diǎn)開發(fā),達(dá)到了既有功能使用 flutter 開發(fā)完成的效果;
第 2 周:真實(shí)項(xiàng)目需求評(píng)審、技術(shù)調(diào)研。就是確認(rèn)下眼神,這個(gè)真實(shí)項(xiàng)目的功能使用 flutter 完成沒有問題;
第 3 周:正式進(jìn)行真實(shí)項(xiàng)目實(shí)戰(zhàn),基本完成了一個(gè)小的功能的開發(fā),慢慢進(jìn)入狀態(tài)了。
不得不說,實(shí)踐是掌握一門技能比較快的一種方式!
相比第 1 周,對(duì)于真正開始 Flutter 開發(fā)的忐忑,現(xiàn)在感覺淡定了不少。UI 繪制布局,網(wǎng)絡(luò)請(qǐng)求,繪圖,數(shù)據(jù)與模型轉(zhuǎn)換,路由跳轉(zhuǎn)等技術(shù)點(diǎn)慢慢熟絡(luò)之后,離熟練的日常開發(fā)也就不遠(yuǎn)了。相比 iOS 開發(fā)來說,一切只是換了一種形式,開發(fā)內(nèi)核流程依然沒有變。下面就簡(jiǎn)單總結(jié)一下 Flutter 開發(fā)的一點(diǎn)點(diǎn)心得!
開發(fā)就像蓋房子,腳手架肯定少不了。Dart 語言的熟悉程度,IDE 工具的選擇,網(wǎng)絡(luò)請(qǐng)求、數(shù)模轉(zhuǎn)換、crash 日志收集,路由管理,日志采集,性能監(jiān)控等這些通用的庫都是日常開發(fā)不可或缺的重要支撐,封裝的好壞直接能影響開發(fā)的效率和質(zhì)量。下面就主要圍繞這些腳手架進(jìn)行展開。
Dart 語言
Dart 語言對(duì)于 Flutter 開發(fā)是地基般的存在,這對(duì)于其它技術(shù)開發(fā)也是一樣的道理。巧婦難為無米之炊!不熟悉 Dart 你就去進(jìn)行 Flutter 開發(fā),必將是步履維艱。當(dāng)然如果你邊學(xué)邊開發(fā)的那種也是可以的。之所以強(qiáng)調(diào)是因?yàn)閷?duì)于基礎(chǔ) Dart 語言的掌握是特別重要的。工欲善其事,必先利其器。掌握 Dart 語言絕對(duì)是進(jìn)行 Flutter 開發(fā)的一把利劍!Dart 語言的學(xué)習(xí)可以穩(wěn)步 Dart 編程語言概覽。
Flutter 基礎(chǔ)知識(shí)
如果說 Dart 語言是地基般的存在,那么 Flutter 的基礎(chǔ)知識(shí)就是磚和鋼筋混凝土一樣的存在了。地基打好了,就需要使用磚和鋼筋混凝土往上蓋樓了。關(guān)于 Flutter 基礎(chǔ)知識(shí)可以穩(wěn)步 Flutter 實(shí)戰(zhàn)。這本書貼近實(shí)戰(zhàn)去講解各種 Flutter 的基礎(chǔ)知識(shí)點(diǎn),不錯(cuò)的一本書,感謝作者的私奉獻(xiàn)!還有 flutter 中國(guó) 網(wǎng)站,這個(gè)是中文翻譯版,比較權(quán)威。開發(fā)過程中如果有不懂的地方,都可以翻一翻,能幫助你解決不少開發(fā)中的問題。
IDE 的選擇
Android Studio 和 Visual Studio 都可以進(jìn)行 Flutter 的開發(fā),我選擇的是 Android Studio。之所以選擇 Android Studio 是因?yàn)樗前沧块_發(fā)標(biāo)準(zhǔn) IDE,之前也接觸過一段時(shí)間的 Android Studio,并不陌生。最重要的是對(duì)于 IDE 的熟悉也有助于我對(duì)安卓開發(fā)的一些了解,方便 flutter 后期與安卓 native 端的代碼對(duì)接。有從前端學(xué)過來的開發(fā)者可能更偏重于使用 Visual Studio,這大概率是由于之前使用 Visual Studio 寫 JS 比較多。使用哪個(gè) IDE 進(jìn)行開發(fā),完全取決于你的開發(fā)習(xí)慣或偏好,自己喜歡就好!
網(wǎng)絡(luò)請(qǐng)求
客服端、服務(wù)器模式是移動(dòng)互聯(lián)網(wǎng)的基石,而網(wǎng)絡(luò)又是這基石的基石。
關(guān)于網(wǎng)絡(luò)請(qǐng)求,你可以使用 Flutter 提供的原生 API,也可以使用第三方封裝。主流是使用第三方封裝,主要是方便快捷,還能自定義。拿來就能進(jìn)行快速的進(jìn)行業(yè)務(wù)的迭代開發(fā)。比較知名的網(wǎng)絡(luò)庫有 dio、http 。個(gè)人推薦 dio,功能封裝的比較完善。
UI 繪制
這個(gè)屬于 Flutter 基礎(chǔ)知識(shí),也是實(shí)戰(zhàn)開發(fā)入門必備,上面已經(jīng)提到過了。這個(gè)就需要多看多練,重在實(shí)踐練習(xí),光看很容易忘記。我在開發(fā)過程中就不斷的去翻 UI 相關(guān)的知識(shí),寫的多了,翻的多了,印象自然就深了。很久以前有一個(gè)賣油翁說過:實(shí)踐多了就熟練了!
路由跳轉(zhuǎn)
Flutter 采用的是路由管理界面與界面之間的跳轉(zhuǎn),這與 iOS 原生的導(dǎo)航控制器還是有一定差別的。不過做過 web 開發(fā)或 iOS、android 組件化,應(yīng)該對(duì)路由并不陌生。熟悉了概念,理解其含義,實(shí)踐起來自然不成問題。這里推薦一個(gè)路由管理三方庫 fluro 。集中式(中介者模式)的進(jìn)行路由的管理,使用起來非常方便,能有效的提升開發(fā)效率。
錯(cuò)誤日志收集
Sentry 是一個(gè)開源的監(jiān)控系統(tǒng),能支持服務(wù)端與客戶端的監(jiān)控,還有個(gè)強(qiáng)大的后臺(tái)錯(cuò)誤分析、報(bào)警平臺(tái)。目前 sentry 已經(jīng)集成到了工程里面,具體還沒有使用過,待后續(xù)補(bǔ)充使用體驗(yàn)。
調(diào)試工具
就在不久前,字節(jié)開源了 UME。UME (讀音:油米~) 是一個(gè) Flutter 調(diào)試工具包,內(nèi)部集成了豐富的調(diào)試小工具,設(shè)計(jì)UI、網(wǎng)絡(luò)、監(jiān)控、性能、logger 等,無論是研發(fā)、PM、還是 QA 均能使用。當(dāng)前已經(jīng)集成了項(xiàng)目當(dāng)中,待后續(xù)調(diào)試使用分享體驗(yàn)。
最后
有了腳手架,后面開發(fā)就是朝著一門語言技能縱向深入的過程了。遇到問題解決問題,在解決問題的過程中,你會(huì)越來越多的學(xué)習(xí)到這個(gè)領(lǐng)域的知識(shí),并使用這個(gè)領(lǐng)域的知識(shí)不斷的去解決實(shí)際的問題。
關(guān)于 Flutter 還有不少未知需要去探索,并不斷的將其運(yùn)用到實(shí)際問題解決過程中。當(dāng)下 Flutter 社區(qū)比較活躍,技術(shù)的更新也比較快,很多坑也在不斷的被發(fā)現(xiàn)并填平。相信 Flutter 做為一種新的跨平臺(tái)實(shí)踐方案,一定會(huì)給未來的跨平臺(tái)帶來更多的價(jià)值!
站在巨人的肩膀上,前行吧!