iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Mobile Development

寫一個列車抵站時間 Android App 系列

用現在流行的東西(Kotlin Coroutines、Flow、Architecture Components、Navigation Components、Dagger Hilt、Ktor、Kotlin serialization)寫一個港鐵列車抵站時間 Android app。如果時間允許的話,會再加上 Compose 的內容。

鐵人鍊成 | 共 30 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Intro

屯馬開通真的很興奮 早陣子(2021 年 6 月 27 日)港鐵屯馬綫全綫通車,當日有電視台訪問了一名鐵路迷,他受訪時調寄家傳戶曉的英國民謠《綠䄂子》即興唱了一...

2021-09-16 ‧ 由 Eric Li 分享
DAY 2

Architecture

Architecture Components 以前 Android Developers 網站沒有特別提及過寫 Android app 應該用甚麼 archi...

2021-09-17 ‧ 由 Eric Li 分享
DAY 3

Endpoint

我們用到的 API endpoint 只有一個,就是用來取得港鐵機場快綫、東涌綫、屯馬綫及將軍澳綫最多四班即將到站列車的抵達時間。車站清單我們會直接寫死在 ap...

2021-09-18 ‧ 由 Eric Li 分享
DAY 4

Deserialization

JSON serialization/deserialization 應該是不少 Android app 都會做的事,基本上近乎每個 Android proje...

2021-09-19 ‧ 由 Eric Li 分享
DAY 5

Dependency injection

談到 Android 的 dependency injection (DI),大家一定會想到 Dagger 這個 DI library。因為 Dagger 2...

2021-09-20 ‧ 由 Eric Li 分享
DAY 6

HTTP Client

在 Android 開發如果要用到 HTTP client 的話基本上大家都預設用 OkHttp + Retrofit 這個組合。這次我們試試一些新東西:Kto...

2021-09-21 ‧ 由 Eric Li 分享
DAY 7

Data layer implementation (1)

在上一篇,我們把 Ktor client 加到 Dagger 的 object graph 內。現在我們就繼續寫 data layer 部分。 跨 layer...

2021-09-22 ‧ 由 Eric Li 分享
DAY 8

Data layer implementation (2)

上一篇的 repository 還欠一個 mapper 把 EtaResponse 轉成 EtaResult。我們首先準備一個通用的 interface: in...

2021-09-23 ‧ 由 Eric Li 分享
DAY 9

Date & time

上一篇在實作 EtaResponseMapper 的時候我們用了 Java 8 開始有的 Instant、LocalDateTime 和 ZonedDateTi...

2021-09-24 ‧ 由 Eric Li 分享
DAY 10

Data layer testing (1)

在切回去寫 domain layer 之前,我們先把之前寫好的 data layer class 補回 unit test。在開始寫之前,我們要先加入一些 te...

2021-09-25 ‧ 由 Eric Li 分享