今天開始挑戰網路功能,學習用Retrofit讀取假資料API,讓App不只是顯示固定的假資料,而能從網路抓資料動態更新清單。這對我來說很新鮮,因為之前的RecyclerView都是直接寫死在程式裡的。
我先建立一個簡單的API(用JSONPlaceholder提供的假資料),然後在App裡加上Retrofit的依賴。接著建立一個 API介面,定義要抓的資料格式,再用Retrofit建立實例去呼叫API。拿到資料後,我把資料放進RecyclerView的Adapter,讓清單可以動態顯示網路上的內容。
剛開始我遇到一個問題:抓回來的資料沒有顯示,後來才發現忘記在主線程更新UI,改成用runOnUiThread或 LiveData才能正確刷新畫面。當我第一次看到RecyclerView自動顯示從API拿到的資料時,感覺App活起來。
今天的練習讓我了解,網路資料和本地資料完全不同,需要考慮非同步處理、UI更新等問題。雖然目前只是讀假資料,但App已經開始有跟外部世界互動的感覺,整個作品也更有實用性了。