使用 Swift 和 SwiftUI 构建一个设计简洁的 iOS 应用。应用每天从 API 获取并展示一条名言,支持收藏和分享,并提供主屏幕小组件。
List 展示所有收藏的名言。Core Data, SwiftData, 或 UserDefaults)。URLSession with async/awaitCore Data, SwiftData (iOS 17+), 或 UserDefaults+Codable@State, @StateObject, @EnvironmentObjectzenquotes.io, quotable.io)/QuoteApp
├── QuoteApp/ # 主应用 Target
│ ├── Views/ # SwiftUI 视图
│ ├── ViewModels/ # ViewModels
│ ├── Models/ # 数据模型
│ ├── Services/ # 网络和数据服务
│ └── QuoteAppApp.swift # 应用入口
└── QuoteAppWidget/ # Widget Target
└── QuoteAppWidget.swift
QuoteAPIService,使用 async/await 获取名言。定义 Quote 模型以匹配 JSON 响应。QuoteViewModel (ObservableObject),负责获取数据、处理收藏和分享逻辑。QuoteView 并与 ViewModel 连接。使用 UIViewControllerRepresentable 封装 UIActivityViewController 以实现分享。FavoritesView,从本地存储中读取并显示列表,实现删除功能。NavigationStack 或 NavigationView 连接主视图和收藏夹。TimelineProvider 中实现每日更新逻辑,并设计小组件 UI。先行任务: 选定一个名言 API 并研究其文档。设计 App 主屏幕和小组件的线框图。