練習:建構 Amphibians 應用程式

1. 事前準備

簡介

在本單元中,您已學到如何從網際網路擷取資料,讓應用程式更臻完善。您的應用程式現在可以顯示伺服器提供的最新資料,而且不限於開啟應用程式時顯示的靜態資料。在大多數的實際應用程式中,這是非常重要的功能。

在本練習中,您將運用所學概念建構 Amphibians 應用程式。這個應用程式可從網際網路擷取兩棲動物資料,並顯示在捲動式清單中。

您可以在練習結尾處找到解決方案程式碼,但為了讓本練習發揮最大效益,建議您先盡可能嘗試實作和疑難排解,再查看我們提供的解決方案程式碼。您可以藉由實際操作學到最多的知識。

必要條件

軟硬體需求

  • 已安裝 Android Studio 且具備網路連線能力的電腦。

建構項目

在此練習中,您將建構一個能列出兩棲動物詳細資料和圖片的應用程式。這個應用程式會發出網路要求,以便從網際網路擷取資料,且資料會包含兩棲動物的名稱、種類、說明和圖片網址。

這些兩棲動物 JSON 資料託管於 https://android-kotlin-fun-mars-server.appspot.com/amphibians

我們提供的解決方案程式碼會顯示以下 UI 設計:

b0e225571b16ffb.png

以下各節提供建立應用程式的一般步驟。這些步驟可逐步引導您建立應用程式,但您不一定要遵循這些步驟。

2. 規劃應用程式

開始寫程式前,請花一些時間擬定應用程式的各種元素,並計劃如何連結每個元素。

這項前置作業可讓您判斷要採取哪些行動,或許也能先釐清發生問題的部分,並協助您找出問題的解決方法。

3. 建立新專案

從 Android Studio 中的新專案開始:

  1. 開啟 Android Studio,然後選取「New Project」
  2. 選取「Templates」下方的「Phone and Tablet」
  3. 選取「Empty Activity」,然後點選「Next」
  4. 將名稱變更為「Amphibians」
  5. 按一下「Finish」

您現在可以開始寫程式了!

4. 設定依附元件

這個應用程式會使用 Retrofit 處理網路要求、使用 Coil 載入圖片,以及使用 kotlinx.Serialization 程式庫剖析 Amphibians API 傳回的 JSON。

將其依附元件新增至 app/build.gradle.kts

5. 建立 UI 層

建議您遵循這篇文章中的 Android 應用程式架構最佳做法,並為這個應用程式建立 UI 層。

此層包含 ViewModel,以及會在螢幕上顯示 UiState (來自 ViewModel) 的可組合函式。ViewModel 會負責顯示畫面 UI 狀態、處理 UI 層中的商業邏輯,以及從階層中的其他層呼叫商業邏輯。

UI 層還包含使用者查看並進行互動的視覺元素。在這層中,您可以選擇各項元素搭配運作的方式,進而建立所需 UI。顏色、字型和圖片顯示方式都由您決定。

6. 建立資料層

資料層會負責從 API 擷取兩棲動物資料。

您可能會想要加入兩棲動物資料的資料類別、用於管理資料的存放區,以及從網路擷取資料的資料來源類別。

如需網路呼叫方面的協助,請參閱「從網際網路取得資料」程式碼研究室的「網路服務和 Retrofit」部分。

如需有關剖析網路回應的協助,請參閱「使用 kotlinx.Serialization 剖析 JSON 回應」部分。

如需使用 Coil 載入圖片方面的協助,請參閱官方說明文件,或參考之前「載入並顯示網際網路上的圖片」程式碼研究室的「顯示下載的圖片」部分。

7. 實作依附元件插入功能

建議您利用依附元件插入 (DI) 功能,讓應用程式保持穩定、具有彈性且易於擴充。

DI 能讓應用程式元件保持鬆耦合,且更容易進行測試。

實作 DI 時,您必須建立應用程式容器,用來取得應用程式所需的依附元件。

應用程式容器必須可供整個應用程式存取。您可以在自訂 Application 類別中保留依附元件容器,藉此達到此目的。該類別隨後會繼承自 Application 類別

如需實作這項功能的相關協助:

8. 解決方案程式碼