iOSDC 翻譯組上線囉
https://www.youtube.com/@iOSDCtranslate
Hi 大家好,我是 Hokila。 iPlayground 的活動介紹裡面有一段:
大概是從 2010 年開始 app 開發蓬勃發展,我們陸續在各個研討會中有聽到 app 開發的題目,但是都偏淺。隨著年資漸長,有一群人覺得入門的題目無法滿足他們,開始往海外尋找,當時被海外研討會的深度廣度衝擊到,覺得台灣也該有這樣的舞台!所以 2018 年舉辦第一屆 iPlayground。
這邊指的海外研討會就是 iOSDC,9月初去參加今年的 iOSDC,回來以後能量滿滿寫了 3 篇 blog,iOSDC 可以說是全世界除了 WWDC 以外最大的 iOS 研討會:每年約有 80~100 個議程、今年共有 1,900 名參與者,深度與廣度都非常足夠。唯一的挑戰,就是純日文議程實在太硬了。
今年在協助 iPlayground 製作字幕的過程中,我突然意識到——現在其實是個很好的時機點。多虧了 AI,不論是 audio to text、日翻中、排版、語氣校正……我們手上突然多了很多「幫得上忙」的工具。與 AI 協作,至少 90% 的繁瑣工作都可以被外包出去,把駕駛員的能力放到最大。
剛好那陣子在 review iPlayground 的字幕檔,想到 13 的個人軟體時代。
軟體工程師生涯大部分的時間都在滿足使用者,我們什麼時候才去照顧自己的需求?
於是找了幾位朋友與朋友的朋友,一起開了兩週的 side project,挑著自己喜歡的議程,把 iOSDC 的影片翻譯成中文。心路歷程寫在這邊,Hokila、Vincent、Mori。我們從約 80 個議程中挑出了 14 個,一半是主辦單位推薦的熱門議程,一半是翻譯組夥伴自己挑的。
議程介紹
有很多題目我都覺得很棒,是 keynote 等級。其中 Daiki Matsudate 和岸川克己在 2019 年有來過 iPlayground。
從工程師視角拆解 日本 MyNumber 卡如何正式加入 iPhone Wallet 的完整技術流程:Wallet API、NFC/APDU 通訊、mDoc 標準、Face ID+Secure Enclave 安全架構與憑證運作。透過實際政府級案例,你會理解「為什麼身份證能放進 iPhone」、iOS 端在其中扮演的角色,以及哪些 API / 架構可以直接應用在你的產品裡。
從底層出發,瞭解一套高吞吐、高穩定的 logging 系統,是如何以 Swift 6、Clean Architecture、SQLite、zlib、並行處理與 Digest Loop 打造完成的。
內容涵蓋 日誌資料管線設計、併發模型、壓縮策略、資料持久化、Retry/Backoff、Dispatcher 架構、Actor 隔離、Sendable 與測試策略,並分享從舊系統移轉、Dual Send 以及階段性 rollout 的完整經驗。
你將看到一個 真正在大規模服務落地的 logging framework 如何被設計、實作、測試、移轉、發布,並在沒有強制更新的情況下安全切換。
看完之後會更理解「如何在大型 App 裡設計一個穩健的基礎架構」。
探索 LINE iOS app 如何在超過 250 萬行程式碼、600+ 專案、800+ target 的大型架構中,讓 Xcode Previews 真正可用。
將帶你理解在 multi-module、static framework 為主的巨大 codebase 下,Preview 為何難以運作,以及團隊如何透過 Previewable UI 模組化策略、Scheme 管理、Development Assets、Bundle 替換等方法,逐步解除技術阻礙。
內容也包含 Xcode 16 新引擎的要點、常見的 Preview crash 原因、資源讀取的陷阱,並分享團隊如何與 Apple 合作回報問題,最終讓 Preview 得以在大型 App 裡實際落地。
解析 100 款熱門 App 的付費牆(Paywall),整理出可直接應用的設計模式。內容涵蓋付費牆的 UI 元件、文案策略、價格與方案結構、免費與付費功能的分界、顯示時機 等核心要素,並比較日本與海外的實際差異。
講者以自製 App 進行消融實驗(Ablation Study),透過多個變體測試大標、文案、顯示時機對訂閱行為的影響,並分享 Remote Config、事件紀錄與實驗失敗時的真實經驗。
預期收穫:付費牆該長什麼樣、哪些元素真的重要、要怎麼分析、要怎麼測。
沒有唯一答案,但你會帶走一套能重複使用的 Paywall 設計思考框架
介紹一套以 CoreLocation + 鐵道路線資料 為基礎的列車路線追蹤演算法,解析如何僅靠 iPhone 的 GPS 訊號,在裝置端推估 所在路線、行進方向與下一站。內容包含路線座標比對、距離分數模型、站點懲罰機制、利用 course 判斷方向、以及以狀態機穩定推估下一站的完整流程。
講者並展示為此打造的 macOS 視覺化工具,以及如何在 Dynamic Island 與 Live Activity 上更新結果。這是一場能讓工程師從零理解「定位資料 → 路線判定 → UI 更新」完整管線的技術演講。
透過實作一個 純 Swift 的 WebP 編解碼器,重新理解影像格式背後的資料結構與壓縮邏輯。本場 Session 將帶你從 RIFF、VP8L、bitstream、Huffman(Canonical Huffman)、LZ77,到色彩轉換與前期處理,完整拆解 WebP 無損格式的運作方式。
你將看到 WebP 如何透過多層壓縮、預測模型、色彩處理等機制達到高效率表現,以及如何透過「最小實作 → 漸進式驗證」的方式,把一個影像編碼器從 0 做到能正常顯示。
看完後,你會更理解:
如何讀 WebP、如何寫 WebP、影像壓縮的核心概念,以及如何用 Swift 實作一個乾淨、可測試、可逐步擴充的 codec。
從「人類怎麼知道自己在哪」開始的故事,完全沒有程式碼,通識課。
如果你曾經用過 Core Location、看過 GPS 誤差飄來飄去、或好奇「定位到底怎麼算出來」——這場會讓你重新理解定位技術的本質。
從大航海時代到原子鐘:看人類如何一步步逼近「精確的時間」。
GPS 與 GNSS 的真相:為什麼手機需要 4 顆衛星才能算出你在哪?
誤差如何被修正:RTK、卡爾曼濾波、ADR…一次搞懂定位變「順」的背後魔法。
iOS 開發者必須知道的現實:為什麼 Core Location 給你的藍點不是「真相」,而是「加工品」。
深入解析 Mitene(みてね)iOS 團隊如何突破 iOS 背景上傳限制,並將大量照片與影片的上傳體驗做到可持續不中斷。講者分享了 beginBackgroundTask 的 30 分鐘限制、BGProcessingTask 與 Live Activity 的不適用性,最後揭示他們以 Picture in Picture hack 實現長時間背景處理的完整技術方案,甚至成功提出專利。
內容包含:
將 UIView 轉成影片影格、在 PiP 顯示並維持 App 處理
自動啟動 PiP 的隱藏條件、Audio Session 衝突等實務坑
iOS 26 新推出 BGContinuedProcessingTask 的驗證結果與限制
如果你正在做大型檔案上傳、需要可靠的背景處理,或想理解 iOS 背景行為的邊界,這場演講會給你扎實的技術洞察。
深入解析 QR code 的完整結構與建立流程。從版本(Version)、儲存格(Cell)、錯誤修正等級(L/M/Q/H)、Reed–Solomon 區塊,到遮罩模式(Mask Pattern),逐步拆解一個 QR code 在規格上是如何被構成的。
講者示範了 CIFilter 的限制、如何以填充手法生成特定版本的 QR code,並介紹模擬 Frame QR 的實作方式。更進一步分享如何以 Swift 從零開始重新構建 QR code:編碼資料、建立矩陣、插入定位圖樣、格式資訊、錯誤修正碼與遮罩套用,直到最終矩陣成形。
如果你想真正理解「QR code 為什麼能被讀」、「每一格代表什麼」、「如何手寫一個 QR 產生器」,這場會帶你看到 QR code 技術的底層全貌。
帶你從底層視角理解 Swift Build──Apple 今年開源、並準備成為 Swift 生態系新核心的建構系統。
講者清楚梳理 Xcode、SPM、swiftc、clang、ld、llbuild 之間的關係,並說明它們如何共同完成從原始碼到可執行檔的整個建構流程。
重點在於:Swift Build 如何統一 Xcode 與 SPM 的建構體驗、如何以 PIF 格式整合專案、如何與 llbuild 雙向通訊排程任務,以及未來如何改善跨平台、建構效率與模組化。
如果你曾經問過「SPM 為什麼不能建 iOS App?」「Xcode 與 swift build 到底差在哪?」這場會讓你把 Swift 建構系統的全貌一次補齊。
深入探討在 Apple 平台打造客製化 UI 的挑戰與代價。以正在開發中的原生行事曆 App「Calico」為例,分享如何在自訂導覽列、工具列、Sheet 等元件中,同時兼顧動畫、可及性、Dynamic Type、互動模式與 iPadOS/macOS 行為一致性。
你將看到:為什麼某些 UI 元件(如日期選擇器、導覽控制)不適合自行重寫;如何在 UIKit 與標準 API 外構築更貼近產品需求的體驗;以及工程師與設計師如何共同理解平台規則、彌合靜態設計與實際實作之間的落差。
想打造「看起來很簡單、實際上非常困難」的客製化 UI?這場會告訴你需要付出的技術、心力與覺悟。
系統性介紹 FormatStyle──Swift 時代中取代傳統 Formatter 的現代化格式化 API。從 Date、數字、貨幣、度量單位、Duration,到 URL、人名、列表等,講者逐一展示它們如何以 type-safe、可讀、高效能、可本地化 的方式處理資料格式化。
內容包含 FormatStyle 與 DateFormatter 的差異、效能與快取機制、與 SwiftUI 的最佳整合方式,以及如何自訂 FormatStyle 與 ParseableFormatStyle,實作可格式化/可解析的自訂型別。
如果你曾被日期格式字串、locale 差異、formatter 效能瓶頸或測試難題困擾,這場演講會讓你全面理解:為什麼現在是導入 FormatStyle 的好時機。
深入解析在 iOS 上播放 大量動畫貼圖(GIF/APNG/WebP) 時的效能瓶頸,以及 DAWN for Mastodon 如何以工程技術實際解決「數十個動畫同時出現時捲動卡頓、記憶體暴增、裝置過熱」等問題。
講者從 UIKit 的基礎 GIF 播放方式出發,拆解記憶體暴漲的原因,並介紹開源專案 AnimatedImage 的核心設計:
背景執行緒預先解碼、避免主執行緒卡頓
依顯示尺寸動態縮放影格
智慧抽樣(sampling)降低影格率但保留動畫連續性
以 NSCache 管理快取以支援大量重複播放
如果你正在做聊天 App、社群 App、或任何會顯示大量動態圖片的 UI,這場演講會讓你瞭解:如何讓 iOS 在 50+ 動畫同時播放時仍保持流暢。
從工程師視角重新理解「作曲」。講者以軟體開發者的思維,拆解旋律、和弦、音程、Voicing,甚至示範如何把和弦計算邏輯寫成程式,並用 Swift 建出可播放和弦進行的 iOS App。你會看到音樂理論如何被程式化:
如何把和弦名稱解析成資料結構
如何根據 Root + Interval 自動算出組成音
如何設計 Chord Voicing 讓銜接更自然
甚至連合成器(Synth)都能「工程師方式」打造
最後示範從和弦進行到旋律、再到完整編曲的流程,讓你看到:作曲其實和寫程式一樣,是一套可拆解、可重複使用、可工程化的技術流程。
後記
像我前面說的,一屆 iOSDC 的議程有 80~100 場,因為時間與體力有限,我們最後只翻譯了 14 場。還有很多我覺得很有趣、但沒有來得及翻的,像是組織改組後要怎麼維護既有產品,代代相傳到失傳的 code base 靠著 AI 的力量浴火重生。
我們使用的工具、翻譯過程、與 AI 協作的方式,全都整理在我們的心得文章裡:Hokila、Vincent、Mori,如果你有興趣,也可以自己挑一場翻翻看。我們的 repo 裡清楚呈現我們是如何合作的,至於裡面融合了從各家公司帶來的習慣,中文英文日文混雜,這點請忽略。
最後,用《給軟體工程師的作曲入門》這場的「送審之歌」來做個收尾吧!
♪ 就算送出 App 審查 ♪ ♪ 狀態依然毫無變化 ♪ ♪ 你所在的那座城市 ♪ ♪ 此刻應該已是深夜吧 ♪ ♪ 一旦變成「審查中」 ♪ ♪ 進展倒是出奇地快 ♪ ♪ 無情寄來的那封信 ♪ ♪ 卻不是「通過 (Complete)」♪ ♪ 看來又被退件了呀 ♪
音標版,看得懂的人一起唱
ア`プリ(あぷり)審査(しんさ)出(だ)しても ステータス変(か)わらない 君(きみ)の暮(く)らす街(まち)はきっと 真夜中(まよなか)なんだよね 審査中(しんさちゅう)になったら そこからは素早(すばや)くて 無慈悲(むじひ)に屆(とど)いたメールは Complete(こんぷりーと)じゃない リジェクト(りじぇくと)されたみたいだ
