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