效率王者!五大工具軟件包助力高效Flutter開發(fā)
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
1. 需要更好、更干凈、更分散的日志?
開發(fā)Flutter應(yīng)用程序時,無法讀取日志是一個大問題,因為我們無法根據(jù)問題的嚴重性來快速過濾日志。拋出異常還是記錄簡單的調(diào)試信息?看起來好像都一樣。
如果要在Flutter應(yīng)用程序中做好日志記錄,由Simon Leier設(shè)計的Logger軟件包絕對是寶藏級工具。
(https://pub.dev/packages/logger)
它的靈感來自于Java的日志級別,可在日志中添加級別。目前,其級別如下:
- logger.v("Add more detailed debug messages,"
- "can contain sensitiveinformation, never enable it in production");
- logger.d("Fine grained informationto debug an application");
- logger.i("Track the flow of theapplication");
- logger.w("A potential but expectedproblem");
- logger.e("A real failure that mayimpact the application state");
出于某些原因,也會有如下意外收獲:
- logger.wtf("WTF logs??")
圖源:GitHub
不僅如此,你還可以打開設(shè)備在屏幕上看到日志。
2. 后臺API未就位或根本沒有API?應(yīng)用中裝滿了硬編碼字符串?
如果你也在為代碼中硬編碼值太滿而苦惱,后臺的API(應(yīng)用程序接口)還沒有就位,或者根本沒有任何API,卻又希望UI(用戶界面)有用,你可以用Jesper Håkansson開發(fā)的faker,它能為應(yīng)用程序生成假數(shù)據(jù)。(https://pub.dev/packages/faker)
受到Python軟件包faker和Ruby軟件包ffaker的啟發(fā),該軟件包可提供各類數(shù)據(jù),從假人名到假日期,甚至是任一假URL(統(tǒng)一資源定位器)。只需創(chuàng)建一個簡單的對象,比如:
- varfaker = new Faker();
并開始使用faker對象,如下:
- faker.date.month();
- faker.conference.name();
- faker.company.position();
- faker.lorem.sentences(8);
- faker.internet.httpsUrl();
- faker.currency.name();
- faker.sport.name()
在該軟件包中還有很多類別的數(shù)據(jù),所以當項目變得復雜,很難替換整個項目的硬編碼值時,這絕對是一個很好的備選方案。
3. API 響應(yīng)復雜時,需要快速的模型類別?
早在2018年我就分享過這篇關(guān)于解析復雜JSON的文章,如今仍然相當有用。
(https://medium.com/flutter-community/parsing-complex-json-in-flutter-747c46655f51)
有一點需要注意的是,這是對JSON和Dart中解析的一個很好的理論復習,但不建議在構(gòu)建實際復雜項目的時候進行手動解析。原因是什么呢?
- 手動肯定要花很長的時間。
- 更容易出錯。
我經(jīng)常建議人們用轉(zhuǎn)換器工具或解析器。與手動解析相比,解析器可以在幾秒鐘內(nèi)迅速完成解析。說到JSON序列化,有幾個方法推薦給大家,這些方法可以在Flutter文檔中找到。
代碼生成庫是其一,可生成編碼樣板。但這仍然需要一些初始設(shè)置,我個人不是很喜歡。所以我常用工具是由一群開源開發(fā)者所構(gòu)建的quicktype.io在線工具。只需進入網(wǎng)站,選擇Dart作為你的輸出語言。
在左邊粘貼你的JSON假響應(yīng),右邊快速創(chuàng)建Dart模型類和JSON序列化邏輯。
將這一類添加到Flutter項目中,然后就可以開始使用它們啦。
4. 從運行模擬器/設(shè)備中預覽應(yīng)用程序響應(yīng)
作為一個Android開發(fā)者,光是為不同的屏幕尺寸創(chuàng)建XML就得好幾天,因為Android設(shè)備形狀和尺寸不一,而適配各種設(shè)備是很重要的。對于iOS開發(fā)者亦是如此,蘋果公司的iPhone屏幕尺寸列表各不相同,有時我們也要為平板電腦或iPad設(shè)備提供支持。
那么這是否意味著,我需要為我的團隊下載各種模擬器或仿真器,購買不同的手機,這樣我們就可以在不同的設(shè)備上測試應(yīng)用的UI?去年,在 Flutter Interact 2019 中,Zoey Fan 和 Chris Sells 談到了 Flutter Octopus,你可以在多個平臺和設(shè)備中同時調(diào)試應(yīng)用。
Flutter Interact 2019
但這主要是為了觀察應(yīng)用程序在不同設(shè)備上的性能。你真的會安裝那么多設(shè)備只為檢查UI的響應(yīng)速度嗎?我覺得不會。
由Alois Daniel設(shè)計的 Flutter Device Preview (Flutter設(shè)備預覽)可以幫助我們。這個寶藏工具,可從單一運行模擬器/設(shè)備中預覽大小不同的設(shè)備上的應(yīng)用程序運行情況。
(https://pub.dev/packages/device_preview)
從普通手機的尺寸到平板電腦的尺寸,甚至是表盤的尺寸,你可在不同屏幕與平臺上輕松預覽應(yīng)用程序。對于檢查應(yīng)用程序有無缺口時的情況,這是一個了不起的方法。它還有其他很棒的功能,比如:
- 更改應(yīng)用程序的方向,并預覽應(yīng)用程序在不同方向上的響應(yīng)速度。
- 更新配置,如文字比例系數(shù)、應(yīng)用程序主題、區(qū)域設(shè)置。
- 截圖與團隊分享功能。
這些都不會影響應(yīng)用程序的狀態(tài)!
5. 試用BetaFlutter版本,在穩(wěn)定版中建立項目
在Flutter中構(gòu)建生產(chǎn)應(yīng)用程序,你很有可能會使用穩(wěn)定的Flutter版本來開發(fā)和部署應(yīng)用程序。誰會冒著風險在試驗的Flutter版本上開發(fā)客戶項目呢?
但是作為熱情的開發(fā)者,很難不會產(chǎn)生嘗試測試版體驗新功能的沖動但這就意味著要卸載當前的穩(wěn)定版,再安裝測試版,花費大量時間下載新版本的資源。再回到客戶端項目工作時,你又要卸載該版本再安裝穩(wěn)定版?
我不會這樣做。所以,另一個好工具就是fvm——Leo Farias設(shè)計的flutter版本管理器。你可以用這個工具來管理多個flutter版本,而不必每次切換時都要下載。這個設(shè)置裝一次就夠了,可以下載所有版本,如下:
- fvm install beta
或
- fvm install <version>
只需要一個指令就可以在不同的版本之間進行切換,就像這樣:
- fvm use stable
其實可以根據(jù)項目使用不同的Flutter版本。當你自己在試驗一些項目時,這個工具是很好用的。
- cdDocuments/FlutterProjects/ExperimentalProjectfvmuse beta
或
- cdDocuments/FlutterProjects/ClientProjectfvmuse stable
安裝了fvm后,唯一的變化就是所有的命令會有些改動。就像flutter doctor變成了fvmflutter doctor;或是flutterrun變成fvm flutter run。這些我覺得還是比較容易記住的。
本文的內(nèi)容足夠你好好消化一陣兒啦。