macOS 动态壁纸应用;当前仓库以 SwiftUI + Metal 原生主线为准,处于持续迭代中。
- 原生应用壳:AppKit 窗口管理 + SwiftUI 主界面、设置窗口、菜单栏入口
- 数据层:SwiftData 模型与本地存储(Wallpaper / Tag / ShaderPreset / Settings)
- 渲染层:Metal 渲染管线、ShaderGraph、粒子系统、视频解码器源码
- 内容层:本地壁纸库 + 在线探索(Wallhaven / 4K Wallpapers / Workshop)
- 系统集成:显示器管理、轮播、恢复、导入、下载、缓存、快捷键、开机启动
- 设计参考:
Sources/Resources/Web/plumwallpaper.html为历史原型资源,不是当前 UI 源码
- 主 UI 修改入口在
Sources/Views/与Sources/ViewModels/ Sources/Core/PerformanceMonitor.swift目前将NSScreen.maximumFramesPerSecond作为 FPS 代理值展示,不能直接视为真实渲染 FPSdocs/目录中的进度报告、执行记录、计划文档是阶段性快照;项目根目录下的历史总结已收拢到docs/archive/- 判断当前实现时请以源码、
CLAUDE.md和本 README 为准 - 验证主界面时请使用 Xcode / DerivedData 的 app bundle,不要用旧的 SwiftPM
.build可执行文件
- SwiftUI
- AppKit
- SwiftData
- Metal + MetalKit
- AVFoundation
- IOKit
- XcodeGen
Sources/
├── App/ # 入口、应用代理、窗口装配
├── Views/ # SwiftUI 页面与组件
├── ViewModels/ # 页面状态与交互逻辑
├── Engine/ # Metal 渲染、解码、粒子、ShaderGraph
├── Core/ # 显示器、轮播、导入、性能监控等核心服务
├── Network/ # 在线数据源接入与抓取逻辑
├── Repositories/ # 聚合仓储层
├── OnlineModels/ # 在线内容模型
├── Services/ # 下载、缓存、壁纸设置等系统服务
├── Storage/ # SwiftData 模型与本地存储
└── Resources/ # 资源、字符串、本地 Web 原型
# 修改 project.yml 后重新生成 Xcode 项目
xcodegen generate
# 构建 Debug app
xcodebuild -project PlumWallPaper.xcodeproj -scheme PlumWallPaper -configuration Debug -derivedDataPath Build/DerivedData build
# 启动 Debug app
open Build/DerivedData/Build/Products/Debug/PlumWallPaper.app或直接运行:
./run.shMIT