到底是Flutter還是Compose?

其實(shí)自從 Jetpack Compose 面世以來,關(guān)于 Flutter 與 Compose 之間的選擇問題就開始在 Android 開發(fā)中出現(xiàn),就如同之前有 iOSer 糾結(jié)在 Flutter 和 SwiftUI 之間選誰一樣,對于 Android 開發(fā)來說似乎“更頭痛”的是 Flutter 與 Compose “同出一爹”。

Flutter誕生于Chrome團(tuán)隊(duì),是一幫做Web的開發(fā)做的跨平臺框架,從最開始的設(shè)計(jì)初衷,就是指向了跨平臺這條路,而Compose,則是誕生于Android團(tuán)隊(duì),是為了解決當(dāng)前View的架構(gòu)體系不能再繼續(xù)適應(yīng)申明式編程的范式而做出的重構(gòu)。

Flutter 和 Compose 初衷

Flutter 和 Compose 的未來目標(biāo)會比較一致,但是至少它們出現(xiàn)的初衷是不一樣。

首先 Compose 是 Jetpack 系列的全新 UI 庫,理解下這點(diǎn)!Compose 是 Jetpack 系列的成員之一,所以可以被應(yīng)用到 Android 界面開發(fā)中,所以你也可以選擇不用,用不用都能開發(fā) Android 的 UI 。

然后再說 Compose 出生的目的:就是為了重新定義 Android 上 UI 的編寫方式,為了提高 Android 原生的 UI 開發(fā)效率,讓 Android 的 UI 開發(fā)方式能跟上時代的步伐。

不管你喜不喜歡,聲明式的界面開發(fā)就是如今的潮流,不管是 React 、SwiftUI 、Flutter 等都在表明這一點(diǎn)。

而對于 Flutter 而言就是跨平臺,因?yàn)?Flutter 沒有自己的平臺 ,有人說 Fuchsia 會是 Flutter 的家,但那已經(jīng)屬于后話,畢竟 Fuchsia 要先能養(yǎng)活自己。

因?yàn)?Flutter 出生就是為了跨平臺存在的全新 UI 框架,從底層到上層都是“創(chuàng)新”和“大膽”的設(shè)計(jì),就選擇 Dart 本身就是一項(xiàng)很“大膽”的決定,甚至在 Web 平臺都敢支持選用 Canvaskit 的 WebAssembly 模式。

所以 Flutter 的“任性”從一出來就不被看好,當(dāng)然至今也有不看好它的人,因?yàn)樗撤N程度很“偏激”和不友好。


那么問題來了,我該用哪個?

打工仔的世界里,哪里有單選題。

首先,F(xiàn)lutter和Compose并不沖突,我是原生開發(fā),但并不妨礙我學(xué)習(xí)Flutter,學(xué)了Flutter,再看Compose,很快就能上手,這叫什么,殊途同歸。我們對待這些新技術(shù)一定要抱著謙卑的學(xué)習(xí)心態(tài),了解它的使用,了解它的設(shè)計(jì)思路,正所謂海納百川,有容乃大。
其次,技術(shù)不是單選題,但是卻有優(yōu)先級。

  • 如果你是全新的項(xiàng)目,希望快速開發(fā),并且支持多端跨平臺,那么Flutter絕對是你目前最好的選擇。
  • 如果你是原生開發(fā),需要提高開發(fā)效率,那么Compose和kotlin,絕對是你逃不掉的技術(shù)壁壘。

正好這些部分我都有所涉獵,整理出了自己的學(xué)習(xí)思路分享給大家(點(diǎn)擊藍(lán)字查看詳情):

[《Flutter技術(shù)進(jìn)階學(xué)習(xí)筆記》]

整理大綱

  • 為什么Flutter是跨平臺開發(fā)的終極之選
  • 在Windows上搭建Flutter開發(fā)環(huán)境
  • 編寫您的第一個 Flutter App
  • Flutter開發(fā)環(huán)境搭建和調(diào)試
  • Dart語法篇之基礎(chǔ)語法(一)
  • Dart語法篇之集合的使用與源碼解析(二)
  • Dart語法篇之集合操作符函數(shù)與源碼分析(三)
  • Dart語法篇之函數(shù)的使用(四)
  • Dart語法篇之面向?qū)ο蠡A(chǔ)(五)
  • Dart語法篇之面向?qū)ο罄^承和Mixins(六)
  • Dart語法篇之類型系統(tǒng)與泛型(七)
  • Flutter中的widget

整理大綱

  • 初識 Jetpack Compose

  • Jetpack Compose構(gòu)建Android UI
    Android Jetpack Compose 最全上手指南
    深入詳解 Jetpack Compose | 優(yōu)化 UI 構(gòu)建
    深入詳解 Jetpack Compose | 優(yōu)化 UI 構(gòu)建

  • Jetpack Compose 項(xiàng)目實(shí)戰(zhàn)演練(附Demo)
    Jetpack Compose應(yīng)用1
    Jetpack Compose應(yīng)用2
    Jetpack Compose應(yīng)用做一個倒計(jì)時器
    用Jetpack Compose寫一個玩安卓App
    用Compose Android 寫一個天氣應(yīng)用
    用Compose快速打造一個“電影App”

  • Kotlin入門教程
  • Kotlin 實(shí)戰(zhàn)避坑指南
  • 項(xiàng)目實(shí)戰(zhàn)《Kotlin Jetpack 實(shí)戰(zhàn)》
    從一個膜拜大神的 Demo 開始
    Kotlin 寫 Gradle 腳本是一種什么體驗(yàn)?
    Kotlin 編程的三重境界
    Kotlin 高階函數(shù)
    Kotlin 泛型
    Kotlin 擴(kuò)展
    Kotlin 委托
    協(xié)程“不為人知”的調(diào)試技巧
    圖解協(xié)程:suspend

Compose 是 Android UI 的未來,現(xiàn)階段你可以不會,但是如果未來你會繼續(xù)在 Android 平臺的話,你就必須會。Flutter 的未來在于多平臺,更穩(wěn)定可靠的多平臺 UI 框架。如果你的路線方向不是大前端或者多端開發(fā)者,那你不需要會。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容