使用 CoreData 和 SwiftUI 构建的 Minimal News 应用程序
纽约时报
NY Times 是一个 Minimal News 🗞 iOS 应用程序,旨在描述SwiftSoup和CoreData与SwiftUI的使用。
⛓ 特点
文章加载中 | 按类别浏览 |
---|---|
使用 3D Touch 将文章添加为书签。 | 只需轻轻一扫即可删除书签 |
📝 目录
⚙️ 要求
iOS 14+
Xcode 12.2 and Up
📚 你能学到什么?
- 您可以学习类似的技术
- 斯威夫特用户界面
- 核心数据
- 结合
- 网页抓取
- 您可以从该项目中学习各种设计模式,例如
- 依赖注入
- 存储库
- 辛格尔顿
- 观察员
- 您可以通过组合框架学习 MVVM SwiftUI 的双向绑定架构
🛠 技术背景
- NYTimes 应用程序是使用 SwiftUI 作为核心界面以及使用组合框架的双向绑定 MVVM 架构制作的。
- CoreData用于将文章书签离线存储在设备中,以便用户稍后访问。
- SwiftSoup 用于从《纽约时报》网站上删除所需的详细信息。
- 该应用程序的用户界面主要使用内置的 iOS 组件,以保持用户体验接近原生的感觉。
- 添加书签就像在主屏幕上进行 3d 触摸或点击详细文章屏幕中的书签图标一样简单。
- 该项目是基于模块化和良好编码模式的理念构建的。多种设计模式,如依赖注入、存储库模式、单例模式等。
🔗 依赖关系
该项目使用SPM(Swift Package Manager)作为依赖管理器。
⛓ 项目结构
NYTimes # Root Group
.
├── Utilities # Utilities for Fetching data ans Scraping HTML
├── Extensions # Some useful extensions
├── Globals # Contains App constants
├── Persistence # Coredata files. Contains coredata model and Singleton for ManagedObjectContext
├── Views # SwiftUI Views
├── Repository # Repository for Coredata
├── ViewModel # Viewmodels for SwiftUI Views
├── Model # Model files
| └── Coredata Model # Coredata model subclasses
|
└── Supporting files # Misc. files like Appdelegate, SceneDelegate.
建筑学
这个应用程序使用MVVM架构。
✏️贡献
如果您想为这个库做出贡献,我们随时欢迎您!
你可以做什么
您可以通过提交问题、错误和 PR 来为我们做出贡献。
在你做之前
在提出问题或报告错误之前,请检查问题或错误是否与 Xcode 或 SwiftUI 有关。
贡献指南:
- 有关拟议变更的未决问题。
- 回购所有者将在那里与您联系。
- 如果您提议的更改获得批准,请分叉此存储库并进行更改。
- 针对最新分支打开 PR
dev
。在 PR 中添加漂亮的描述。 - 你完成了!