1. 程式人生 > >談談我對 Flutter 未來發展 和 “巢狀地獄” 的淺顯看法

談談我對 Flutter 未來發展 和 “巢狀地獄” 的淺顯看法

![](https://img2020.cnblogs.com/other/467322/202006/467322-20200623203052347-868831344.png) ## Flutter 未來發展 提到 Flutter 就不得不提到 **Fuchsia** 系統,這是一個尚未正式釋出的操作的系統,引用 Android 和 Chrome 的高階副總裁 *Hiroshi Lockheimer* 在一檔播客節目中對 Fuchsia 的介紹是: > 不僅僅是手機和個人電腦,在物聯網的世界裡,越來越多的裝置需要作業系統、新的軟體執行環境等支援。我認為,在具有不同優勢和專業化的諸多作業系統中還存在很大的發展空間。Fuchsia 就是其中之一,所以,請繼續保持關注。 是的,Fuchsia 系統是為物聯網研發的作業系統,物聯網簡稱 **IoT**,現在全世界都在押注 IoT,包括華為、小米等國內公司。 那 Flutter 和 Fuchsia 又有什麼關係呢? **Flutter 是 Fuchsia 官方指定的唯一UI開發框架。** 現在有很多物聯網作業系統 ,Fuchsia 就一定可以脫穎而出嗎? 不一定,未來的事情誰說的準呢,但在我看來 Fuchsia 是最有可能發展起來的物聯網作業系統,因為一個作業系統的發展除了本身優秀以外,最大的阻礙其實是**生態**,而 Fuchsia 在生態方面具有天然的優勢, 國外的一篇報道曾說: > Google 希望將 Android App 無縫移植到 Fuchsia 上,而且一直在做相關工作。 試想一下,一旦 Google 將 Android App 無縫移植到 Fuchsia 上,其他物聯網作業系統如何與之抗衡。 這裡引用 Google 公眾號底部的一句話送給大家: **預測未來不如創造未來** 在跨平臺技術上 Flutter 還有很多競爭對手,比如 HTML5、React Native、Weex、快應用、小程式等,我曾在[跨平臺技術發展簡介]() 中詳細說明了各個跨平臺技術的發展歷史及優缺點。 Flutter 的出現會終結其他跨平臺技術?我想不會的, React Native 發展了這麼多年也沒有完全乾掉 HTML5,應為 HTML5 有其獨特的應用場景,比如 營銷活動場景、新聞或者部落格詳情頁面等,這些場景非常適合 HTML5。因此 Flutter 也不可能終結其他跨平臺技術,總結一句話就是: **未來很長一段時間,將會是跨平臺技術共存的時代,但 Flutter 適用場景更為廣闊。** ## Flutter 巢狀地獄 現在網路上對 Flutter 吐槽最多大概就是 Flutter “巢狀地獄”寫法了,為什麼會出現這種現象?個人認為最大的原因就是目前大部分開源的 Flutter 專案都是這種巢狀寫法(包括我自己以前也是如此),導致後來的初學者認為這麼寫沒有問題,當專案越來越複雜時,這種巢狀寫法給專案的維護帶來了巨大的挑戰。下面說說如何避免這種巢狀寫法? 比如實現如下效果: ![](https://img2020.cnblogs.com/other/467322/202006/467322-20200623203053871-120376358.webp) 巢狀地獄 的寫法: ```dart @override Widget build(BuildContext context) { return Column( ch