Tina Tang's Blog

在哪裡跌倒了,就在哪裡躺下來

0%

版面配置(layout)配合不同的螢幕大小和方向而彈性調整,而不是以特定顯示比例和螢幕大小的硬性尺寸來指定版面配置(layout)。因此,建議將 app 設計成在可順利在各種類型的裝置 (小螢幕或大螢幕裝置) 上執行。

學習目標

  • 如何在 app 中加入 SlidingPaneLayout

建構項目

  • 更新 Sports app,配合大螢幕進行調整。
Read more »

在先前的程式碼研究室中,您已學會如何使用 ViewModel 處理商業邏輯,以及使用 LiveData 處理 reactive UI。在本程式碼研究室中,您將學習如何編寫單元測試(unit tests),以檢查 ViewModel 程式碼是否正常運作。

學習目標

  • 學會如何設定 LiveData 測試。
  • 學會如何測試 LiveData 本身。
  • 學會如何測試已完成轉換(transformed)的 LiveData
  • 學會如何在單元測試中觀察(observe) LiveData

建構項目

  • 編寫 ViewModelLiveData 單元測試(unit tests)。
Read more »

瞭解 Android 如何處理應用程式的 tasks 和 back stack。這可讓您操控各種情況下的 back stack (例如取消訂單),讓使用者返回應用程式的第一個畫面,而非訂購流程的前一個畫面。

在先前的程式碼研究室中,您已開始實作 Cupcake app,現將在本程式碼研究室中完成其餘步驟。Cupcake app 有多個畫面,且會顯示杯子蛋糕的訂購流程。完成的 app 必須讓使用者能夠瀏覽 app,以執行下列操作:

  • 建立杯子蛋糕訂單
  • 使用 UpBack button 前往訂購流程的上一個步驟
  • 取消訂單
  • 將訂單傳送至其他 app (例如 email app)

學習目標

  • navigation 對於 app back stack 的影響
  • 如何實作自訂(custom) back stack 行為
Read more »

瞭解如何使用共用 ViewModel 在相同 activity 的 fragment 之間共用資料,還有 LiveData 轉換等新概念。

學習目標

  • 如何在更進階用途中導入建議的應用程式架構做法
  • 如何在 activity 的各個 fragment 中使用共用的 ViewModel
  • 如何套用 LiveData 轉換

建構項目
此杯子蛋糕應用程式會顯示杯子蛋糕的訂單流程,讓使用者選擇杯子蛋糕口味、數量和取貨日期。

Read more »

ViewModel 中的應用程式資料轉換為 LiveData,並觀察自動更新 UI 所出現的變化。

在先前的程式碼研究室中,您已瞭解如何使用 ViewModel 儲存應用程式資料。ViewModel 可在設定變更時保留應用程式資料。在本程式碼研究室中,您將瞭解如何整合 LiveDataViewModel 中的資料。

LiveData 類別也屬於 Android 架構元件的一部分,為可觀察的資料容器類別。

學習目標

  • 如何在應用程式中使用 LiveDataMutableLiveData
  • 如何使用 LiveData 來封裝儲存在 ViewModel 中的資料。
  • 如何新增觀察器(observer)方法以觀察 LiveData 中的變化。
  • 如何在版面配置檔案中編寫 binding 表達式。

建構項目

  • 針對 Unscramble 應用程式中的應用程式資料 (字詞、字詞計數和分數) 使用 LiveData
  • 新增觀察器(observer)方法,在資料變更時接收通知,並自動更新打散字詞的 text view。
  • 在 layout 檔案中編寫 binding 表達式,在基礎 LiveData 變更時觸發。分數、字詞計數和打散字詞 text view 會自動更新。
Read more »