Kotlin 開發第 12 天 GithubStars ( OkHttp + RecyclerView)


GithubStars 是一個通過 Github API 請求數據,並通過 RecycleView 顯示的小應用。

  • 提供一個輸入框,用來輸入 Gtihub 用戶的名稱。
  • 通過 Gtihub API 取得該用戶 Starred 項目(https://api.github.com/users/使用者名稱/starred)
  • 以列表的方式呈現(Custom layout)

Permissions

因為會用到網路所以要在 AndroidManifest 裡面加入許可。


ProjectModel

我們在 「Kotlin 開發第 6 天 ImageList (RecyclerView)」已經有嘗試使用 data class 來建立 model了。

但因為 Android 開發過程會通過 intent 來進行 Activity 之間的傳值,
而其中一個將 Object 作為參數傳值的方法是讓 Object 實現 Parcelable 協定所定義的方法。

可以直接在 class name 上面點 option + enter,IDE 會幫我們直接將方法加入到 code 當中。


OkHttp

這是 Android 世界裡很有名的網路框架,來一個簡單的例子:

JSONObject/JSONArray

通過 http request 之後也一樣需要做 JSON 解析,這裡我們用 JSONObject / JSONArray

Intent & Parcelable

把 JSON 解析成 ArrayList<ProjectModel> 之後,我們要通過 Intent 將參數傳給 ProjectListActivity

在 ProjectListActivity 端接受的方法:


筆記

  • 問題:MutableList 和 ArrayList 的區別在哪裏?
  • 問題:var/val MutableList ,前綴是 var 或 val 和後面是 MutableList 或 List 的影響?
  • 問題:有沒有類似 SwiftyJSON 的 JSON 解析工具?可以方便的設定初始值,如 empty String
  • 問題:本來想要通過 searchButton.isEnable 來防止重複發送,但發現如果不在 UI 線程操作,會引起 crash。
    不像是 iOS 開發,即使改變 UI 不是在主線程中,系統也會在主線程有空的時候來更新 UI,而不是直接 crash。

參考

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *