其實(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ā)者,那你不需要會。