## Why StudyDeck 桌面版(Tauri)已覆盖本地资料库、开课与分屏学习闭环,但家长更常在 iPad 上带孩子学习,桌面选文件导入在 iPad 上不可用或体验差。需要一套原生 iPadOS App,在功能对等的前提下用 SwiftUI + SwiftData + Documents,并以 App 内建局域网文件服务器作为主导入路径。 ## What Changes - 在空目录 `studydeck-ios/` 新建原生 iPad App(SwiftUI,非 Tauri),目标设备以 iPad 为主。 - 复刻桌面 MVP 主流程:**Import / Explorer / Lesson / Study**,以及专辑(playlist)与课程(combo)、会话进度恢复、分屏学习(video+pdf / pdf+audio 等)。 - 存储改为 **SwiftData(元数据)+ Documents 文件系统(媒体 `library/`)**,不再使用桌面 JSON 文件(`catalog.json` / `sessions.json` / `albums.json`)作为运行时主存储;语义模型与桌面对齐。 - **替换导入主路径**:内嵌 LAN 文件服务器,局域网内电脑通过浏览器上传**文件**到 App Documents/`library/`(扁平落盘),并登记 `CatalogEntry`;目录整理在 Explorer;可选保留 Files / document picker 作为次要导入。 - 服务发现与安全:显示本机 IP+端口、可选二维码;**无上传 token**;服务仅局域网、前台生命周期管理;UI 提示仅信任网络使用。 - UI 适配 iPad:NavigationSplitView / 多栏布局替代桌面 Cursor 式三栏拖拽壳;Study 分屏用 SwiftUI + AVKit + PDFKit。 ## Capabilities ### New Capabilities - `studydeck-ipad-app`: iPad 原生壳与四大页面(Import / Explorer / Lesson / Study)导航、分屏学习舞台、专辑/会话管理的端到端行为。 - `studydeck-library-storage`: Documents/`library/` 媒体文件与 SwiftData 元数据(Catalog / Session / Album)的读写、目录浏览与增删改移。 - `studydeck-lan-import`: App 内建局域网文件服务器:发现、多文件扁平上传(无鉴权)、写入 library 并登记目录。 - `studydeck-study-playback`: AVKit / PDFKit 播放与进度(媒体时间、PDF 页、分屏比例/方向)持久化与恢复。 ### Modified Capabilities - (无)`openspec/specs/` 当前为空,无既有 capability 需改写。 ## Impact - **新增代码树**:`studydeck-ios/`(Xcode 工程 / Swift Package 结构待 design 定稿)。 - **参考但不改运行时**:`studydeck/`(桌面 Tauri)作为功能与模型对照;本 change 不要求修改桌面代码。 - **依赖**:SwiftUI、SwiftData、AVKit、PDFKit;网络侧 Network.framework / NWListener 或等价嵌入式 HTTP;Bonjour/mDNS;Local Network 权限。 - **系统权限**:本地网络(NSLocalNetworkUsageDescription)、可选文档访问;后台上传能力有限(前台服务为主)。 - **数据**:iPad 沙盒 Documents;无跨设备自动同步桌面库(后续可另开 change)。