序言

如果你只是寫一個 Demo,tvOS 看起來其實不難;但只要嘗試做一個需要長期維護、面對真實用戶環境的 App,很快就會發現:tvOS 從來就不是 iPad 的放大版

它幾乎沒有可靠的本地持久儲存,隨時可能被系統清空資料或殺掉行程;整個交互模型以 Focus 為中心,沒有瀏覽器、沒有 WebView,卻又在播放器層面深度依賴整個 Web 世界。從設計上來看,tvOS 本質上是一個展示終端,而不是工作平台。

Syncnext 正好是一個非典型的例子:它不是服務單一後端的定制播放器,而是在 tvOS 上嘗試面對真實而混亂的網路環境。這篇文章不是教學,而是一次工程實錄,整理那些在這個平台上「活下來」所付出的設計取捨與現實妥協。

如果你正在考慮做一個不只是 Demo 的 tvOS App,這些經驗或許能幫你少走一些彎路。


目錄


一、核心交互哲學:非接觸式操作

tvOS 的 UI/UX 概念,與「觸摸式」系統或「鼠標模式」系統截然不同。你需要使用 Game UX 的概念來思考。在主機平台上,手柄的交互模式才是開發 tvOS App 的首要參考對象。

1. Focus Engine vs. SwiftUI @FocusState

在 tvOS 開發中,你會遇到兩套焦點系統: