前言:
在1982年的原版電影《銀翼殺手》中,人類已經發展出了一種人造的生命形式,很難将它們與人類區分開來。這些“複制品”被用于危險的工作,當它們開始反抗人類主人時,一種被稱為“刀鋒殺手”的警官出現了。
當谷歌第一次宣布Jetpack Compose時,不少人認為這将是flutter的結束。畢竟,既然可以使用Google提供的本地工具,為什麼還要使用跨平台架構呢?
那我們來整體比較一下flutter和jetpack compose,看看他們各自有什麼特點。

1、語言方面:
flutter使用的是一種由Google建立的面向對象語言Dart,Jetpack Compose使用的是一種由JetBrains建立的靜态類型程式設計語言kotlin。這兩種語言都有各自的優缺點,對于初學者來說,Dart更容易學習,而且在運作速度和記憶體使用方面,也并不輸Kotlin。
2、易用性方面
這兩個架構都相對容易使用, jetpack compose具有聲明式UI方法,這意味着我們可以使用Kotlin代碼來建構UI,而不必擔心底層的複雜性。但是,Flutter在沒有橋接邏輯的情況下直接通路作業系統級元件并不簡單,需要較強的專業操作。
作為一個使用過這兩種架構的我來說,使用JetpackCompose來建立優美的使用者界面要比使用Flutter容易些。不過flutter在跨平台開發方面确實有着無可比拟的優勢,此外,當你想要快速建立一個應用程式的原型時,Flutter中的熱加載功能是必不可少的。
其實沒有所謂的“最佳架構”,因為jetpack compose和flutter的定位并不相同,不是絕對的沖突體,這取決于你想要去的公司采用的什麼架構,以及你自己的需求和偏好。學有餘力的朋友可以兩者都嘗試一下,這對以後個人的發展也都有幫助。
目前全網關于這兩個架構的資料較為碎片化,對想要系統學習的人來說不太友好,是以我給大家分享jetpack compose和flutter的系統學習筆記,内容通俗易懂,知識點覆寫面廣,内容嚴格按照深度和廣度統一的原則來編排,有需要的朋友可以點選下方卡片免費擷取。
《compose入門到精通》
目錄:
第一章 初識 Jetpack Compose
- 為什麼我們需要一個新的UI 工具?
- Jetpack Compose的着重點
- API 設計
- Compose API 的原則
- 深入了解Compose
- 插槽API
談論flutter和jetpack compose學習優先級的背後,Android開發有着怎樣的一套進階邏輯?前言:《compose入門到精通》後話: 談論flutter和jetpack compose學習優先級的背後,Android開發有着怎樣的一套進階邏輯?前言:《compose入門到精通》後話:
第二章 Jetpack Compose建構Android UI
- Android Jetpack Compose 最全上手指南
- 深入詳解 Jetpack Compose | 優化 UI 建構
- 深入詳解 Jetpack Compose | 實作原理
談論flutter和jetpack compose學習優先級的背後,Android開發有着怎樣的一套進階邏輯?前言:《compose入門到精通》後話: 談論flutter和jetpack compose學習優先級的背後,Android開發有着怎樣的一套進階邏輯?前言:《compose入門到精通》後話:
第三章 Jetpack Compose 項目實戰演練(附Demo)
- Jetpack Compose應用1
- Jetpack Compose應用2
- Jetpack Compose應用做一個倒計時器
- 用Jetpack Compose寫一個玩安卓App
- 用Compose Android 寫一個天氣應用
- 用Compose快速打造一個“電影App”
談論flutter和jetpack compose學習優先級的背後,Android開發有着怎樣的一套進階邏輯?前言:《compose入門到精通》後話: 談論flutter和jetpack compose學習優先級的背後,Android開發有着怎樣的一套進階邏輯?前言:《compose入門到精通》後話:
《Flutter進階學習筆記》
目錄
第一章 為什麼 Flutter 是跨平台開發的終極之選
- 這是為什麼?
- 跨平台開發
- 什麼是Flutter
- Flutter特性
- Flutter 建構應用的工具
- 使用 Flutter 建構的熱門應用
- 建構 Flutter 應用的成本
第二章 在Windows上搭建Flutter開發環境
- 使用鏡像
- 系統要求
- 擷取Flutter SDK
- 編輯器設定
- Android設定
- 起步: 配置編輯器
- 起步: 體驗
- 體驗熱重載
第三章 編寫您的第一個 Flutter App
- 建立 Flutter app
- 使用外部包(package)
- 添加一個 有狀态的部件(Stateful widget)
- 建立一個無限滾動ListView
- 添加互動
- 導航到新頁面
- 使用主題更改UI
第四章 Flutter開發環境搭建和調試
- 開發環境的搭建
- 模拟器的安裝與調試
- 開發環境的搭建
- 模拟器的安裝與調試
第五章 Dart文法篇之基礎文法(一)
- 簡述
- Hello Dart
- 資料類型
- 變量和常量
- 集合(List、Set、Map)
- 流程控制
- 運算符
- 異常
- 函數
- 總結
第六章 Dart文法篇之集合的使用與源碼解析(二)
- List
- Set
- Map
- Queue
- LinkedList
- HashMap
- Map、HashMap、LinkedHashMap、SplayTreeMap差別
- 命名構造函數from和of的差別以及使用建議
第七章 Dart文法篇之集合操作符函數與源碼分析(三)
- 簡述
- Iterable
- forEach
- map
- any
- every
- where
- firstWhere和singleWhere和lastWhere
- join
- take
- takeWhile
- skip
- skipWhile
- follwedBy
- expand
- reduce
- elementAt
第八章 Dart文法篇之函數的使用(四)
- 簡述
- 函數參數
- 匿名函數(閉包,lambda)
- 箭頭函數
- 局部函數
- 頂層函數和靜态函數
- main函數
- Function函數對象
第九章 Dart文法篇之面向對象基礎(五)
- 簡述
- 屬性通路器(accessor)函數setter和getter
- 面向對象中的變量
- 構造函數
- 抽象方法、抽象類和接口
- 類函數
- 總結
第十章 Dart文法篇之面向對象繼承和Mixins(六)
- 簡述
- 類的單繼承
- 基于Mixins的多繼承
- 總結
第十一章 Dart文法篇之類型系統與泛型(七)
- 簡述
- 可選類型
- 接口類型
- 泛型
- 類型具體化
- 總結
第十二章 Flutter中的widget
- Flutter頁面-基礎Widget
- Widget
- StatelessWidget
- State生命周期
- 基礎widget
- DefaultTextStyle
- FlutterLogo
- Icon
- Iamge.asset
- CircleAvatar
- FadeInImage
- 按鈕
- FlatButton
- OutlineButton
- TextFormField
後話:
flutter和jetpack compose的特性遠遠不止這些,它們本身還有着非常多值得學習的地方,這個隻有大家自己去學習才能體會得到。另外,我們還要透過這兩個架構去看更深層次的實作原理,世界千變萬化,各種架構也不例外,雖然flutter和compose正處在快速發展階段,但我們也要明白:學會舉一反三才是最重要的學習能力。