Daily Digest

每日新聞摘要

2026年10月03日

今日總結

內容會跟隨語言切換。

📝 今日焦點:Google Play 將自 2026/8/31 起擋下未達 Android 16(API 36)的新 App 與更新,延展僅是緩衝,升級與相容性驗證仍須提早完成。 🏗 架構設計:Android Modularization 第 12 篇聚焦 release 工程,提醒 R8 full mode、consumer keep rules 與僅在 release 出現的 configuration-cache 問題。 🔧 效能最佳化:Java 27 的 compact object headers 與預設 G1 可能降低記憶體用量,但實際效益仍應在自家環境驗證。 ✅ 測試與品質:升到 targetSdk 36 後,需特別檢查 edge-to-edge、predictive back、大螢幕、16 KB page size 與 Billing v8,並在真機或模擬器上驗證成品。 🚀 語言演進:Compose Multiplatform 以實作導向方式打造 Shopify App,從第一個畫面逐步走向可擴充架構;另一篇則展示 Kotlin/JVM JSON 函式庫以 reflection 分層設計,兼顧零反射解析與自動映射。

01

Google Play's API 36 deadline passed — here's the extension and the upgrade checklist

Dev.to Kotlin 作者:Tim 發布:10-03 11:12

Google Play 的 API 36 截止日已過——延展申請與升級檢查清單

如果你已被阻擋,今天就先提出延展申請——但延展不是計畫,只是爭取時間。

重點摘要

2026 年 8 月 31 日起,Google Play 不再接受未以 Android 16(API 36)為目標的新增 App 與更新。
可透過 Play Console 表單申請一次性的延展到 2026 年 11 月 1 日,但不會自動生效。
升到 targetSdk 36 後,可能會碰到 edge-to-edge、predictive back、16 KB page size、工具鏈與 Billing 變更。
展開詳細摘要

Google Play 自 2026 年 8 月 31 日起停止接受未以 Android 16(API 36)為目標的新 App 與更新;若尚未升級,提交時就會被擋下。開發者可透過 Play Console 申請一次性延展至 2026 年 11 月 1 日,但這只是額外緩衝,並非自動延長,也不能取代升級工作。文章整理了各裝置類別的目標 API 規則,提醒 Play Billing 與原生程式碼的相關門檻,並列出升到 targetSdk 36 後常見的相容性變更,包括 edge-to-edge、predictive back、平板等大螢幕行為、16 KB page size、工具鏈版本配套,以及 Billing Library v8 轉換。最後也建議從打包後成品驗證,並在真機或對應模擬器上測試。

02

Android Modularization Part 12: Release Engineering

Medium Kotlin 作者:Ramadan Sayed 發布:10-03 08:31

Android 模組化第 12 部分:發佈工程

R8 full mode、consumer keep rules,以及只在 release 出現的 configuration-cache 失敗。

重點摘要

聚焦 Android 模組化中的發佈工程議題。
提到 R8 full mode 與 consumer keep rules。
描述只在 release build 才會出現的 configuration-cache 失敗。
展開詳細摘要

這篇文章是 Android Modularization 系列的第 12 部分,主題聚焦在發佈工程。文中摘要指出三個與發佈相關的重點:R8 full mode、consumer keep rules,以及只會在 release build 中出現的 configuration-cache 失敗。就目前可見內容來看,文章主要圍繞應用程式從開發走向發佈時會遇到的建置與封裝問題,沒有提供額外未經證實的解法或結果。

03

Should You Upgrade to Java 27? A Practical Guide to the Changes That Matter

Medium Kotlin 作者:SOVANNARO 發布:10-03 08:45

是否該升級到 Java 27?實用指南:掌握真正重要的變更

緊湊物件標頭與預設啟用的 G1 可以節省記憶體,也能在自己的系統上自行確認效果。

重點摘要

聚焦 Java 27 中真正重要的變更
指出緊湊物件標頭可幫助節省記憶體
說明如何在自己的系統上檢查實際影響
展開詳細摘要

本文探討是否該升級到 Java 27,並聚焦於實務上最值得注意的變更。文中提到緊湊物件標頭與預設使用 G1,是最主要的兩項例子,這些調整可能有助於降低記憶體用量。作者也強調,不應只憑假設判斷,而是要在自己的系統上實際驗證效果,作為評估升級與否的實用參考。

04

Android Development in October 2026: 7 Shifts That Actually Change Your Work

Medium Kotlin 作者:Aslam Hossin 發布:10-03 10:39

2026 年 10 月的 Android 開發:7 個真正改變你工作的變化

前言

重點摘要

頁面僅顯示前言與「Continue reading on Medium」提示。
可見內容未提供任何技術細節、產品更新或平台變動。
可用資料不足,無法推知標題所說的 7 項變化。
展開詳細摘要

目前提供的內容非常有限,只能看到前言與前往 Medium 繼續閱讀的提示,沒有實際的 Android 開發更新、變化或技術論述可供摘要。由於可見正文缺失,無法根據這段文字推導出標題所稱的 7 項轉變,只能如實說明本文可用資訊不足。

05

The Ghost Work Left Behind by Cancelled Coroutines

Medium Kotlin 作者:Rohan Maity | RotBolt 發布:10-03 11:26

被取消的 coroutine 遺留下來的幽靈工作

來自生產環境 Android 程式碼庫的經驗教訓

重點摘要

目前只提供了標題與簡短導語,沒有全文內容。
文章看起來聚焦於生產環境 Android 程式碼庫的實務教訓。
從現有文字無法確認更多技術細節或結論。
展開詳細摘要

目前提供的內容只有文章標題與一行導語,因此無法取得完整論述。就標題來看,文章應是在談 coroutine 被取消後,生產環境 Android 程式碼庫中可能遺留下來的隱性工作或後續處理問題。不過,內文沒有提供具體案例、實作細節或結論,所以若進一步延伸摘要,將會超出原文可證實的範圍。

06

IPTV vs OTT vs Cable vs Satellite: Understanding Modern TV Technology

Medium Kotlin 作者:Hadiuzzaman 發布:10-03 11:49

IPTV、OTT、有線電視與衛星電視:理解現代電視技術

電視已經改變了很多。

重點摘要

文章比較 IPTV、OTT、有線電視與衛星電視。
主題聚焦於現代電視技術的概覽。
目前可見內文只有非常短的導言。
展開詳細摘要

本文以 IPTV、OTT、有線電視與衛星電視為主題,點出現代電視傳輸方式的變化。不過,所提供的內文只有一句簡短開場,表示電視已經改變了很多,並引導讀者前往 Medium 繼續閱讀。因此,現有文字並未包含各技術的詳細說明、比較內容或結論。

07

Architecting a Foreground Service That Persists Across Android’s Aggressive Process Killing

Dev.to Kotlin 作者:Haseeb 發布:10-03 00:48

設計一個能在 Android 激進殺程序下持續運作的前景服務

這個架構可行,但學習曲線非常陡峭。

重點摘要

Android 的背景執行在電池最佳化下並不可靠。
前景服務、持續通知、WorkManager 與開機廣播都不可少。
狀態寫入 Room,讓服務被殺後也能重啟恢復。
展開詳細摘要

本文分享作者打造 Muffle 的經驗:這是一款可依 GPS、時間與祈禱時程自動切換手機音量狀態的 Android 應用。由於一般 Service 很容易被系統與各家廠商的電池管理機制終止,作者改用前景服務,搭配持續通知、WorkManager、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 與 ACTION_BOOT_COMPLETED,才能維持可靠運作。他也調整 GPS 取樣頻率以降低耗電,並評估 Geofencing API、Do Not Disturb 權限與各 API 等級差異。核心觀念是:把 Android 當成會破壞流程的環境,預設服務可能會死,並用 Room 保存狀態以便重建。

08

Do We Really Need Reflection or Code Generation for JSON in Kotlin? Building a Lightweight JSON Library

Dev.to Kotlin 作者:Alexey Kozyakov 發布:10-03 06:21

在 Kotlin 中處理 JSON,真的需要 Reflection 或程式碼生成嗎?打造輕量級 JSON 函式庫

這次實驗的主要成果,不只是另一個 JSON parser。

重點摘要

將函式庫拆成低階的 json 模組與可選的 json-reflect 模組。
以 sealed Json 階層、accessor 與 DSL,在不使用 reflection 的情況下解析、建構與寫出 JSON。
透過 reflection 映射、custom mapper、註解與 Android ProGuard 規則支援 Kotlin 類別。
展開詳細摘要

本文介紹作者打造的輕量級 Kotlin/JVM JSON 函式庫,將直接操作 JSON 與 Kotlin 類別映射分離成兩個模組。核心 json 模組提供 sealed Json 表示法、accessor、建構 DSL、解析與輸出功能,完全不依賴 reflection 或程式碼生成;獨立的 json-reflect 模組則加入以 reflection 為基礎的 JSON 與 Kotlin 類別映射,並支援註解、客製 JsonMapper,以及 Android 上需要的 ProGuard 規則。作者也說明了發布到 Maven Central、產生 Dokka 文件與用 GitHub Actions 自動化發佈流程。重點是:JSON 解析可以不靠 reflection,但做自動映射時它仍很有用。

09

Build a Shopify Mobile App with Compose Multiplatform — From Scratch

Medium Kotlin 作者:Frank Vu 發布:10-03 02:14

使用 Compose Multiplatform 從零開始打造 Shopify 行動應用程式

從第一個 Compose 畫面到可擴充的行動架構,一步一步完成

重點摘要

從第一個 Compose 畫面開始
逐步推進應用程式開發
朝可擴充的行動架構前進
展開詳細摘要

本文描述如何使用 Compose Multiplatform 從零開始打造 Shopify 行動應用程式,流程從第一個 Compose 畫面出發,逐步推進到可擴充的行動架構。文章強調這是一段實作導向的分步旅程,而不是只停留在概念層面的介紹,核心重點在於從初始畫面逐漸建立出更有結構的應用設計。