Daily Digest

每日新聞摘要

2026年03月29日

今日總結

內容會跟隨語言切換。

📝 今日焦點:Kotlin Weekly 第504 期整合生態與實用資源,宣告 Dokka 2.2.0、KotlinConf'26,並聚焦 Mutflow、Process Over Magic、Process Watcher、Koog 與多項函式庫、影片與課程,並邀稿感謝 JetBrains 支持。 🏗 架構設計:示範 ARCore 與 Sceneform 的沉浸式實作,說明 Supabase 到推播的事件串接、動態 SSL pinning 的整合重點,並介紹以 OkHttp Authenticator 與 Mutex 統一管理 token 的攔截器方案以降低競爭與冗餘。 ✅ 測試與品質:提出以使用者為中心的崩潰處理以保留或還原重要狀態並提升信任,並強調將協程實作設計為可測試與可觀察的生產級模式。 🚀 語言演進:說明 KMP 逐步遷移策略,釐清 Kotlin 物件初始化(主、次建構子與 init)與繼承使用時的設計與測試要點。

01

Kotlin Weekly #504

Kotlin Weekly 作者: 發布:03-29 09:14

Kotlin Weekly 第504期

Dokka 2.2.0 發行;KotlinConf’26(5 月 20–22 日,慕尼黑)包含 KMP、AI、後端等工作坊,並刊出與 Josh Long 訪談。

重點摘要

Dokka 2.2.0 正式釋出,完整更新說明已公布。
KotlinConf’26(5/20–22,慕尼黑)提供多場實作工作坊與議程。
重點文章與工具:Mutflow(單次編譯突變測試)、Process Watcher(CI OOM 偵測)、Koog 深度研究代理。

Kotlin Weekly 第504期(2026-03-29)彙整 Kotlin 生態的重要消息:Dokka 2.2.0 發行;KotlinConf’26 將於 5 月 20–22 日在慕尼黑舉行,含 KMP、AI、後端等實作工作坊,並刊登與 Josh Long 的對談。本文節選了數篇技術文章與工具,包括 Mutflow(基於 K2 的單次編譯突變測試外掛)、以 AI 協助的「Process Over Magic」開發流程、Process Watcher(透過監控 RSS、堆積與 GC 協助診斷 CI OOM),以及用 Koog 建構的多階段研究代理。另有影片、贊助報告、Compose 課程與實用函式庫(acli、kstats、SVG to Compose、WebAuthn MPP)介紹,並邀稿且感謝 JetBrains 支持。

02

Integrating AR Features into Android Apps

Medium Kotlin 作者:Gulshan Yadav 發布:03-29 08:46

在 Android 應用中整合 AR 功能

使用 ARCore、Sceneform 與 Kotlin 在 Android 上建構沉浸式 AR,實作導引涵蓋平面偵測與核心概念。

重點摘要

以 ARCore 與 Sceneform 結合 Kotlin 開發
實作平面偵測、hit test 與錨點綁定
呈現 3D 模型並處理基本互動

本文介紹如何使用 ARCore、Sceneform 與 Kotlin 在 Android 上建構沉浸式擴增實境體驗。作為實作導引,說明基礎 AR 概念(如平面偵測、hit test、錨點設定)、Gradle 相依、裝置權限與 AR session 設定等必備步驟。作者示範偵測水平與垂直面、以 hit test 放置虛擬物件並綁定錨點以維持世界座標位置,並用 Sceneform 的渲染工具呈現模型。文章同時提及在支援裝置上的測試與效能、使用者體驗最佳實務,適合熟悉 Kotlin 的 Android 開發者作為整合 AR 功能的實務指南。

03

Dynamic SSL Pinning on Android: Integrating the SDK and Walking Through the Implementation

Medium Kotlin 作者:Denis 發布:03-29 13:25

Dynamic SSL Pinning on Android:整合 SDK 與實作導覽

本系列探討在 Android 上實作動態 SSL pinning,著重於整合 SDK 與實作流程的示範。

重點摘要

主題:Android 的動態 SSL pinning
重點在於整合 pinning SDK
摘錄被截斷,完整內容請至 Medium 閱讀

作者 Denis 在 Medium 發表的文章標題為「Dynamic SSL Pinning on Android:整合 SDK 與實作導覽」,說明這是一個系列文章,聚焦於在 Android 應用中實作動態 SSL pinning、整合對應的 SDK 並逐步示範實作流程。原始提供的內容僅為截斷摘錄,頁面顯示「Continue reading on Medium」的導向連結,因而本文片段未包含具體程式範例、設定細節或逐步教學。從標題可見其意圖涵蓋實務整合步驟、執行時行為與憑證維護等考量,但欲取得完整的程式碼示例與設定說明,仍需前往 Medium 閱讀完整文章。

04

Didn’t Rewrite Your Native App For KMP. Evolved It

Medium Kotlin 作者:Ayman Alkurdi 發布:03-29 14:37

沒有為 KMP 重寫原生 App,而是讓它演進

不需要全面重寫即可跨平台:在現有 Android 應用中逐一模組採用 Kotlin Multiplatform。

重點摘要

不用整個重寫就能引入 Kotlin Multiplatform
以模組為單位逐步遷移與整合共用 Kotlin
逐步演進可降低風險並保留原生平台能力

作者說明無需全面重寫即可採用 Kotlin Multiplatform (KMP)。在既有 Android 應用上,透過逐步遷移每個模組來引入共用 Kotlin:挑選範圍有限的功能、為共用層與平台特定層劃清界線、逐步整合與測試。此策略保留既有原生 UI 與平台能力,降低導入風險、保護既有投資,並允許工程團隊在不影響使用者或開發速度的情況下累積可共用邏輯。以模組為單位的逐步演進可以逐漸換取跨平台代碼重用的好處,而非一次性的大規模重寫。

05

Supadroid: Sending Push Notifications on Supabase Database Events

Medium Kotlin 作者:Hieu Vu 發布:03-29 14:56

Supadroid:在 Supabase 資料庫事件上發送推播通知

我將帶你逐步了解我如何在 Supabase 資料庫更新時向 Android 應用發送推播通知的解法。

重點摘要

以 Supabase 資料庫事件觸發推播
將 Supabase 事件與 Android 通知流程整合
實務導向的設計、設定與部署說明

本文作者示範一種解法,說明如何在 Supabase 資料庫更新時向 Android 應用發送推播通知。文章從需求與動機出發,介紹如何偵測 Supabase 的資料變更事件,以及如何將這些事件轉接到推播傳遞機制以送達行動裝置。作者以實務整合為主軸,說明事件觸發、通知發送與 Android 客戶端接收處理的要點,並討論設定與部署上需要注意的面向。本文適合尋求將 Supabase 資料事件與即時行動推播串接的開發者,提供具體的設計與整合方向。

06

Advanced Kotlin Part 4: Primary and Secondary Constructors in Kotlin

Medium Kotlin 作者:Kishor Ramani 發布:03-29 02:31

進階 Kotlin(第四部):Kotlin 的主建構子與次建構子

Kotlin 提供多種彈性的物件初始化方式──本文探討主建構子、次建構子與 init 區塊的用途。

重點摘要

Kotlin 支援彈性的物件初始化策略
主建構子與次建構子分別處理不同的建立情境
init 區塊可執行額外的初始化或驗證邏輯

本文介紹 Kotlin 中物件初始化的多種做法,重點在於說明 primary constructor(主建構子)、secondary constructor(次建構子)與 init 區塊的角色與差異。文章說明主建構子如何以簡潔語法在建構時宣告並初始化屬性,次建構子則用於支援不同參數組合或需要額外建立流程的情況,而 init 區塊則可放置無法在參數列表中表達的初始化邏輯。這些機制合起來讓 Kotlin 在物件建立與設定上具有彈性,適合想釐清何時選用主建構子或次建構子、以及如何利用 init 區塊執行額外設定或驗證的開發者。

07

Handling App Crashes Gracefully: A Simple User-Aware Approach

Medium Kotlin 作者:Rohitraj Khorwal 發布:03-29 04:31

優雅處理應用程式崩潰:一種簡單的以使用者為中心的方法

當我的應用程式崩潰時,它會直接關閉;從使用者角度看,因為沒有任何回應,會覺得應用不穩定或已損壞。

重點摘要

崩潰直接關閉讓使用者覺得應用不穩定。
以使用者為中心的處理應優先回饋並保留重要狀態。
務實且輕量的介入可提升感知穩定性與使用者信任。

作者指出,當應用程式崩潰時通常會直接關閉,使用者因此感覺程式不穩定或已損壞,因為沒有任何回應或說明。文章主張採用以使用者為中心的簡單崩潰處理方法,強調在錯誤發生時應向使用者清楚溝通、保留或嘗試還原重要狀態,並提供易於理解的回復或回報途徑,以降低挫折並維持信任。這類做法務實且輕量,不需大量基礎設施即可改善感知穩定性,全文以同理心與清晰資訊為核心,說明如何在不複雜化系統下優雅處理崩潰。

08

Advanced Kotlin Part 5: Inheritance in Kotlin — Reusing Code Effectively

Medium Kotlin 作者:Kishor Ramani 發布:03-29 04:31

進階 Kotlin 第五篇:繼承 — 有效重用程式碼

繼承讓你透過重用既有類別的屬性與函式來建立新類別。

重點摘要

透過繼承重用屬性與函式
以既有行為為基礎建立新類別
掌握繼承以提升程式碼維護性

本篇為 Advanced Kotlin 系列的第 5 篇,介紹繼承(inheritance)這個機制:透過重用既有類別的屬性與函式來建立新類別。文章強調繼承可用來減少重複程式碼、延續既有行為,並建議開發者應熟悉如何設計類別階層與善用繼承成員,以便撰寫更有組織且易於維護的 Kotlin 程式。本文同時鼓勵讀者繼續閱讀原文以取得範例、實作指引與最佳實務,進一步了解在實際專案中如何有效且負責任地運用繼承。

09

Kotlin Coroutines — Part 2: Writing Real-World, Production-Ready Code

Medium Kotlin 作者:Pratik Banodkar 發布:03-29 04:38

Kotlin 協程 — 第二部分:撰寫適用於真實世界、可投入生產的程式碼

在第一部分深入探討 continuation 與 suspension point 等協程內部運作後,本篇說明如何將這些知識應用於撰寫可投入生產的 Kotlin 協程程式碼。

重點摘要

延續第一部分對協程內部運作的探討
著重將底層概念應用到生產環境的程式設計
強調可靠性、測試與可維護性的實務模式

第二部分在第一部分深入探討協程內部運作(如 continuation 與 suspension point)的基礎上,聚焦於如何將這些底層概念應用到可投入生產的 Kotlin 協程程式設計。文章說明如何在實際專案中以結構化併發、取消與錯誤處理、資源管理與測試為導向,設計可維護、可靠且易於除錯的非同步流程,並強調在選擇 scope、dispatcher 與異步資料流時應注意的實務考量,幫助開發者將理論轉化為穩健的生產力程式碼。

10

Part 6: The Interceptor Pattern — Mastering the Token Lifecycle

Medium Kotlin 作者:Sivavishnu 發布:03-29 06:19

第六部:攔截器模式 — 精通 Token 生命週期

一篇資深工程師級別的指引,說明如何結合 OkHttp Authenticator 與 Kotlin Mutex 以在高流量應用中避免刷新風暴與 race condition。

重點摘要

以 OkHttp Authenticator 集中管理 token 刷新
使用 Kotlin Mutex 序列化刷新以避免同時刷新
在高流量系統中防止刷新風暴與競爭條件

本文為資深工程師級別的實作指引,說明如何以攔截器(Interceptor)模式掌握 token 生命週期:結合 OkHttp 的 Authenticator 與 Kotlin 的 Mutex 協調 token 刷新,避免在高流量環境中發生多重請求同時觸發重複刷新(refresh storm)及因同步競爭造成的 race condition。文中說明將刷新邏輯集中於 HTTP 客戶端層,並以互斥鎖序列化刷新流程,使得同時到達的請求能排隊或重試,確保僅有一個刷新執行,減少冗餘網路呼叫並提升系統可靠性與擴展性。