當你在開發Flutter應用程序時,難以理解的日誌是一個大問題,由於沒有快速的方法來根據問題的嚴重程度過濾你的日誌。拋出異常或記錄一條簡單的調試消息?他們看起來都同樣。git
若是你的Flutter app須要更好的日誌系統,Logger 軟件包絕對是個好東西。github
Logger包地址:https://pub.dev/packages/loggerjson
它受到Java分級日誌的啓發,容許您向日志添加級別。後端
日誌級別,目前有:數據結構
logger.v("Add more detailed debug messages, " "can contain sensitive information, never enable it in production"); logger.d("Fine grained information to debug an application"); logger.i("Track the flow of the application"); logger.w("A potential but expected problem"); logger.e("A real failure that may impact the application state");
因爲某些緣由,另一個特別的是app
logger.wtf("WTF logs??")
不只如此,你還能夠晃動你的設備來查看屏幕上的日誌。(PS:須要導入logger_flutter包)ide
若是你還在艱難的coding,全是本身硬編數據由於後臺沒有準備好他們的API或者根本沒有任何API,若是你仍然但願UI有意義,您可使用faker包——Jesper Hakansson爲應用程序生成有意義的數據。工具
受Python包faker和Ruby包ffaker的啓發,這個包能夠提供各類類型的數據,從虛假的人名到虛假的日期,甚至是隨機的虛假url。post
只需建立一個簡單的對象,像這樣-性能
var faker = 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()
在這個包下還有更多種類的數據可用,這是本身硬編數據的一個很好的替代品,當項目變得更復雜時,本身硬編數據是很難替換的。
faker包地址:https://pub.dev/packages/faker/example
雖然我在2018年已經分享過這篇解析複雜JSON的文章,在今天它仍然很是流行。
https://medium.com/flutter-community/parsing-complex-json-in-flutter-747c46655f51
值得一提的是,這篇文章是對Dart解析json的一個很好的理論回顧,但我不建議在構建實際複雜項目時進行手動解析。
爲何不建議?
.手動操做確定要花很長時間。
.並且你更容易犯錯誤。
我更建議使用轉換器工具或解析器,與手動解析相比,它只需幾秒鐘就能完成。
當涉及到JSON序列化時,你能夠在Flutter文檔中找到一些推薦的方法。
固然,推薦之一是代碼生成庫,它將爲您生成編碼樣板。但這仍然須要一些初始設置,而我並不喜歡。
因此,個人首選工具一直是quicktype.io。一羣開源開發者維護的在線工具。
只需進入網站,選擇Dart做爲輸出語言。
將JSON粘貼到左側,Dart model類和JSON序列化邏輯將很快在右側建立。
添加這個類到你的flutter項目,你就可使用了。
做爲一名Android開發人員,僅僅爲不一樣的屏幕大小建立xml就須要花費好幾天的時間,由於Android設備有不一樣的形狀和大小,並且重要的是你須要讓你的應用程序在不一樣的設備上表現一致。iOS開發人員的狀況也沒有什麼不一樣,蘋果公司的iPhone屏幕大小不一。有時,咱們還必須支持平板電腦或iPad設備。
這是否意味着,我須要下載大量的模擬器或爲個人團隊購買不一樣的手機,以便在不一樣的設備上測試咱們的應用的UI ?
去年,在Flutter interactive 2019, Zoey Fan和Chris Sells談到了Flutter Octopus,在那裏你能夠同時在多個平臺和設備調試你的應用程序。
這對於觀察你的應用在不一樣設備上的性能是頗有用的。可是你真的會設置這麼多設備僅僅用來來檢查UI的響應性嗎?
我不這麼想
來挽救咱們的的是Alois Daniel的Flutter Device Preview。 超好用的工具,可以讓您從單個運行的模擬器/設備上預覽不一樣大小的設備中的應用程序。
輕鬆預覽在不一樣的屏幕大小和平臺的應用程序,從普通的手機大小到平板電腦,甚至手錶屏幕大小。這是檢查你的應用程序有沒有溢出的好方法。不只如此,還有其餘很酷的功能
★改變你的應用程序的方向,並預覽你的應用程序在不一樣方向上的響應能力。
★更新配置,如文本縮放因子,應用的主題,地區
★可以進行截圖,便於你分享給你的團隊。
全部這些,不影響應用程序的狀態!
device_preview 包地址:https://pub.dev/packages/device_preview
若是你使用Flutter中構建應用程序,你頗有可能使用穩定的Flutter版原本開發和部署你的應用程序。誰會冒險在一個實驗性的flutter版本上開發一個客戶項目,對嗎?
可是,你是一個愛嘗試的的開發人員,你在你的客戶或公司項目以外建立項目,你很想嘗試新的beta版本,並嘗試使用新特性。
但這就意味着,卸載當前的穩定版,再安裝測試版,又要花費大量的時間去下載新版本的資源。
而當你從新在客戶項目上工做時,你將不得不卸載測試版,並從新安裝穩定版。
無奈
因此,另外一個來拯救你的工具 — Flutter Version Manager by Leo Farias.
您可使用這個工具來管理多個flutter版本,而沒必要每次在你切換的時候下載這些版本。這只是一個一次性的設置,你一次下載全部的版本像這樣-
fvm install beta
或者指定的版本
fvm install <version>
只需一條命令就能夠在不一樣版本之間切換,就像這樣
fvm use stable
你能夠爲你的每一個項目指定一個flutter版本。
cd Documents/FlutterProjects/ExperimentalProject fvm use beta
or
cd Documents/FlutterProjects/ClientProject fvm use stable
在你安裝fvm以後惟一改變的是你全部的命令都會稍微修改一下。
就像 flutter doctor
, 變成fvm flutter doctor
這是很容易記住的。
FVM包地址:https://pub.dev/packages/fvm
PS:
此篇文章爲medium翻譯,原文地址
上文全部的代碼示例都在做者的GiuHub上,https://github.com/jack0-0wu/flutter_demo,裏面還包含了一些經常使用flutter功能的展現。