Flutter Engage China 開發者常見問題解答 | 上篇

再次感謝大家對 Flutter Engage China 活動 的關注和積極參與!我們在活動前后收到了很多來自開發者的反饋和問題,Flutter 團隊和演講嘉賓在直播 Q&A 環節中也針對部分問題在第一時間給出回復。現在我們將一些開發者關心的問題和回復整理出來分享給大家,希望對您有所幫助。由于問題數量較多,我們會分為上下兩期發布。您也可以觀看 Flutter Engage China 視頻回顧精彩內容:
??點擊這里觀看直播回顧視頻??
如何更好地解決跟平臺硬件交互的問題?
回答者: 于瀟,Google Flutter 移動端團隊負責人
和硬件 API 交互最好的方法是通過 平臺通道 (Platform Channel) 和平臺的 SDK 進行交互。在這之上也有 Pigeon 之類的插件可供大家使用,它可以生成針對所有語言的終點 (endpoint),從而簡化平臺通道代碼的編寫過程。
如果硬件有 C++ 的驅動的話,也可以使用 外部函數接口 (FFI),通過 FFI 調用 C++ 的 SDK 來使用硬件層的能力。
Flutter 在開發效率方面有哪些優勢?
回答者: 劉森森,阿里巴巴 UC 客戶端團隊
Flutter 的開發效率很高,從阿里巴巴和 UC 多個團隊的實際應用情況來看,主要體現在以下幾點:
- Flutter 具備非常良好的研發體驗 ,可以說是非常接近 web 了: 包括提供了設備的熱重載功能,在 IDE 里也能提供可視化布局,這些都非常便于開發和迭代。
- Flutter 內置了很多符合現代化 UI 設計的 widget ,使得開發團隊能很容易地開發出 UI 表現力很好的 Flutter 頁面。
- Flutter 跨平臺的一致性非常強大 。
從開發者們實際落地使用的效果來看,單客戶端的開發者使用 Flutter 就可以覆蓋多端的研發任務。在 UC 團隊里,前端的開發者也能深度參與 Flutter 的業務開發。另外 Flutter 在互操作上也很靈活,比如提供了 FFI、平臺通道、外接紋理等做法,讓開發團隊可以更容易地為 Flutter 提供現有的原生組件,為組件研發的速度帶來了非常大的提升。
在團隊正式使用 Flutter 之前,建議大家把 Flutter 融入到現有的研發工作流程里,包括開發、測試、集成等各個階段,并為開發者們進行一些常規的 Flutter 技能培訓,這些做法可以大幅提升 Flutter 落地的效率。
總的來說,Flutter 對比傳統的 Android 和 iOS 研發效率有質的飛躍。
Flutter 適合做游戲開發嗎?
回答者: 樊舟穎 (Zoey),Google Flutter 產品經理
Flutter 的初衷并不是為游戲而創作的,也就是說,游戲的應用場景并不是 Flutter 一開始所考慮的。但是我們在過去的一年到一年半里,發現確實有越來越多的游戲開發者開始使用 Flutter,而且在 Play Store 里獲得了非常大的下載量。
就我們觀察到的情況而言,強調性能和圖像表現,或者需要用到很多重力感應等特殊組件的游戲大部分還是會用 Unity 這樣的引擎來開發。但是一些休閑游戲,比如字謎、猜圖、連連看,我們有看到越來越多的人在使用 Flutter 開發。
后續我們會通過用戶問卷調查,了解游戲開發者使用 Flutter 的話主要有哪些需求。
Flutter 1 升級到 2 后有很多 API 都過時了,有好的方法快速從 1 轉 2 么?
回答者: 董韜,Google Flutter 用戶體驗研究負責人
Flutter 2.0 版本的發布是一個比較主要的升級,從 release note 來看有大概 12 個重大變更 (breaking changes)。我們團隊對 API 的更改一直抱持非常謹慎的態度。畢竟我們也了解開發者需要去更新到新的版本,這個過程中會碰到一些障礙。但我們也會不斷改進 API,來讓 Flutter 本身更加好用、易用。
如果在升級 Flutter 的過程中碰到 API 變更的問題,這里有兩個建議:
- 請考慮使用我們在 2.0 版本中同時發布的 Flutter Fix 工具。這個工具有命令行,也有和 IDE 進行集成,可以幫助大家更方便地自動進行 API 升級。
- 建議大家放心及時地升級 Flutter 版本。如果您從一個相鄰的版本升級到一個新的版本,那么需要更改的代碼一般是比較少的。
Flutter 的渲染默認不是平臺的主線程,那在渲染的時候會不會由于線程優先級問題而影響流暢度?如果出現流暢度問題,該如何解決?
回答者: 于瀟,Google Flutter 移動端團隊負責人
線程優先級確實有可能導致問題。在 Android 上我們是有改變 "背景" 線程的優先級的,但在 iOS 上目前還沒有。請繼續關注我們在這方面的探討: https://github.com/flutter/flutter/issues/65752
除了 Ubuntu,其他 Linux 版本 (如 Red Hat) 要定制開發底層解析 Flutter 引擎嗎?
回答者: 董韜,Google Flutter 用戶體驗研究負責人
Flutter 對 Linux 的支持其實是不僅限于 Ubuntu 的。只要您使用的 Linux 是 64 位的,就可以安裝和使用 Flutter 去開發 App。具體可以參考 Flutter 官方的 Linux 安裝說明。
Ubuntu 則更方便了一些,提供了一個官方的 Flutter 安裝工具。另外 Ubuntu 也開始用 Flutter 開發一些內置的 App。
希望官方插件盡快解決現有的 issue,期待 Flutter 生態越來越好!
回答者: 楊天航 (Chris),Google Flutter 團隊工程師
謝謝提出這個問題的同學。我們在去年的時候,由于各種原因,把主要的工作重點放在了基礎設施的建設上,包括穩定性這些方面。今年我們的工作重點之一就是解決 issue,包括對 pull request 的審核等。大概在一個月前,我們大大增加了每周整理 issue 和 PR 的時間,增加為去年的 4 倍以上。
另外,我們目前還在跟一些公司和團隊進行合作,比如 Baseflow,Invertase,以及和社區進一步加大合作,從而進一步提高 Flutter 插件的質量。
???
以上就是 Flutter Engage China 開發者常見問題解答 (上篇) 的內容,也請大家繼續關注即將到來的下篇內容。如果您有任何疑問或者建議,也歡迎在評論區和我們分享。
浙公網安備 33010602011771號