- ✅
App/PodcastApp.swift- 应用入口 - ✅
App/AppState.swift- 全局状态管理 - ✅
App/ContentView.swift- 主视图
- ✅
Models/Topic.swift- 话题模型 - ✅
Models/Podcast.swift- 播客模型 - ✅
Models/RSSFeed.swift- RSS源模型 - ✅
Models/ListeningHistory.swift- 收听历史模型
- ✅
Services/RSS/RSSService.swift- RSS订阅服务 - ✅
Services/LLM/LLMService.swift- LLM服务(支持豆包和OpenAI) - ✅
Services/TTS/TTSService.swift- TTS语音合成服务 - ✅
Services/Audio/AudioPlayer.swift- 音频播放器 - ✅
Services/PodcastService.swift- 播客生成服务
- ✅
Views/Sidebar.swift- 侧边栏 - ✅
Views/Onboarding/OnboardingView.swift- 首次话题选择 - ✅
Views/PodcastList/PodcastListView.swift- 播客列表 - ✅
Views/Player/PlayerControlBar.swift- 播放控制栏 - ✅
Views/Topics/TopicsView.swift- 话题管理(占位) - ✅
Views/RSS/RSSView.swift- RSS管理(占位) - ✅
Views/History/HistoryView.swift- 收听历史(占位) - ✅
Views/Settings/SettingsView.swift- 设置界面
- ✅
Package.swift- 依赖管理 - ✅
README.md- 项目说明
cd /Users/yechang/个人/CODING/PodcastApp
open Package.swiftXcode 会自动:
- 下载依赖(FeedKit、OpenAI)
- 配置项目
- 准备构建环境
首次运行后,在设置界面配置:
-
豆包 API Key(推荐):
- 访问 https://www.volcengine.com/
- 注册并开通豆包服务
- 获取 API Key
- 在应用设置中填入
-
模型选择:
Doubao-pro-32k或Doubao-pro-128k
- 在 Xcode 中选择目标设备为 "My Mac"
- 点击 Run 按钮(或按 Cmd+R)
- 首次启动会显示话题选择界面
- 选择感兴趣的话题后开始使用
- ✅ 项目架构搭建
- ✅ 数据模型定义
- ✅ 服务层实现
- ✅ 基础UI组件
- ✅ 首次话题选择
- ✅ 播客列表展示
- ✅ 音频播放控制
- ✅ 设置界面
- ⏳ TTS音频生成(当前为占位实现)
- ⏳ 话题管理界面
- ⏳ RSS订阅管理界面
- ⏳ 收听历史界面
- ⏳ 自动生成定时任务
- ⏳ 错误处理和用户反馈
- FeedKit: RSS解析
- OpenAI: LLM API客户端(也可用于豆包)
- AVFoundation: 音频播放和TTS(系统内置)
- SwiftData: 数据持久化(系统内置)
- MVVM: Model-View-ViewModel
- 服务层: 独立的业务逻辑模块
- 依赖注入: 通过 EnvironmentObject
User Input → View → ViewModel → Service → Model → View
使用豆包 Doubao-pro-32k:
- 单期播客(15分钟):约 ¥0.01
- 每天生成1期:约 ¥0.3/月
- 每天生成3期:约 ¥0.9/月
非常经济实惠!
- API Key 安全:不要将 API Key 提交到代码仓库
- 音频文件管理:生成的音频文件存储在临时目录,需要定期清理
- 错误处理:当前版本的错误处理较简单,生产环境需要完善
- 性能优化:大量播客时需要优化列表加载性能
- 先测试基础功能(话题选择、设置配置)
- 配置好 API Key 后测试播客生成
- 逐步完善各个功能模块
- 添加错误处理和用户反馈
- 优化UI和交互体验