談談我對 Flutter 未來發展 和 “巢狀地獄” 的淺顯看法
阿新 • • 發佈:2020-06-23
![](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