iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
自我挑戰組

一天學一篇 Google Codelabs系列 第 30

112/30 - 架構與狀態 - 狀態容器與狀態產生方式

  • 分享至 

  • xImage
  •  

今天學什麼?

今天閱讀「適用於 Android 開發人員的 Jetpack Compose」第三章「架構與狀態」的「狀態容器與狀態產生方式

學習筆記

  1. Android 開發關係團隊推薦的應用程式架構
    1. UI elements
      • UI 層
      • 在螢幕上顯示資訊
    2. State holders
      • UI 層
      • 狀態持有者
      • 保存狀態並且向 UI 公開狀態
    3. Domain layer (optional)
      • 領域層
      • 簡化 UI 層中可能存在的業務邏輯
    4. Data layer
      • 資料層
      • 包含大部份的業務邏輯
  2. 邏輯分為兩種,但都應該由螢幕層級狀態持有者來管理
    1. UI 邏輯
      • 手機方向變動時更新畫面
    2. 業務邏輯
      • 手機方向變動時不更新資料
  3. 推薦使用 ViewModel
    1. 壽命比畫面還要久,可以用來保存畫面狀態
    2. 和 Jetpack 完美相容
  4. 如何妥善的使用 ViewModel
    1. 在螢幕層級使用
    2. 不應該瞭解 UI 的實作細節,要通用
    3. 不要保存生命週期相關的 API 引用
    4. 不要傳遞,使用框架來管理
  5. 建立不同的狀態持有者來管理各個 UI

上一篇
112/29 - 架構與狀態 - Navigation 最佳做法、Navigation
系列文
一天學一篇 Google Codelabs30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言