Eric Li

Android app developer

Android WebView 筆記

好幾年都沒有特別去用 Android 的 WebView,近期工作需要用到 WebView,所以特別去查一下並將資料放在這篇文章內方便日後翻查。 AndroidX WebKit AndroidX 其實有 WebKit 的...

February 24, 2024

Android 14 migration

最近把 MetroRide 的 API level 升到 34 (Android 14),中間發現了一些問題,在這裏記錄一下。 Foreground service MetroRide 有用到 AndroidX WorkManager 來下載離線資料並放到 SQLite database 內,而且開了 foreground service。在 Android...

February 2, 2024

Android pseudolocale

在處理 app UI 多國語言時,我們不時要留意是不是預留了足夠空間來顯示文字。一般而言,中文內容通常都比其他語言短,你的 UI 可能看起來沒有問題,但換到其...

July 14, 2023

Android 13 Per-app Language Preferences

最近抽點時間把 MetroRide 參照 Now in Android 示範項目更新一下,例如改用 TOML 版的 version catalog(之前是用 Kotlin DSL)、轉用 includeBuild 加 convention plugin 取代之前把 plugin 放在 buildSrc 內、更新 dependency 版本...

January 25, 2023

Jetpack Compose Navigation component sub-graph

這次遷移到 Compose 時特別花了時間試用 Compose 的 Navigation component,終於弄清 nested graph 的意義。其實 Compose 的 Navigation component 底層都是跟 XML 版的 Navigation component 一樣,只是底層多了以 route 形式的處理...

July 27, 2022

Jetpack Compose 遷移 (2)

上一篇提過如何將 MetroRide 由傳統 view system 遷移到 Jetpack Compose。但一篇又太長,所以分拆成兩篇。 Dependency injection 按照官方的建議,composable function 要用到的 dependency 應該由...

July 26, 2022

Jetpack Compose 遷移 (1)

近幾個月斷斷續續替 MetroRide 的界面由傳統 view system(即是 layout XML)轉為 Jetpack Compose,順帶補上去年參加 iThome 鐵人賽時用來做示範的重鐵抵站時間功能。...

July 24, 2022

AndroidX Room Relational Query Method

最近為 MetroRide 做新功能,剛好有個地方可以用到 Room 2.4 的新功能:Relational Query Method。這個功能可以把平常 table 之間的 relationship 用 Map 一次過 return 出來,不用像...

January 29, 2022

2021 iThome 鐵人賽 Day 30:Wrapping up

本篇文章是 2021 iThome 鐵人賽參賽題目「寫一個列車抵站時間 Android App」的第 30 篇,你可到 iThome 查看原文。 文章目錄 終於來到最後一篇了!不經不覺已經寫了三十篇文章...

October 15, 2021

2021 iThome 鐵人賽 Day 29:Leftover topics

本篇文章是 2021 iThome 鐵人賽參賽題目「寫一個列車抵站時間 Android App」的第 29 篇,你可到 iThome 查看原文。 文章目錄 我們終於來到第廿九篇,我們這次討論的題目都是之...

October 14, 2021