遵循面向服务的体系结构和 MVVM 模式的挑战
别名挑战
遵循面向服务的体系结构和 MVVM 模式的挑战。
🚀 环境设置
🌍 项目规格
- Xcode 13+
- iOS 11+
- 斯威夫特 5
- MVVM
🧱 依赖
- Swinject 一个依赖注入框架
- Swinject自动注册扩展为Swinject
- Moya a 网络抽象层框架
- 翠鸟是一个纯 Swift 库,用于从 Web 下载和缓存图像
- 骨架UI一个骨架加载动画
🤔 关于项目
🗂 文件夹结构
AliasChallenge
|-- Services
| -- Models
|-- SupportingFiles
|-- Networking
|-- App
| -- Utilities
| -- Extensions
|-- Dependencies // Dependencies Registrations into a DI Container
|-- Views // App Screens with SwiftUI
| -- Home
📦 依赖注入
对于服务注册,项目使用 SwinjectLibrary/Dependencies/Injector.swift
enum Injector {
static let sharedAssambler: Assembler = {
let container = Container()
let assambler = Assembler(
[
ServiceAssembly()
],
container: container
)
return assambler
}()
}
ServiceAssembly
Services registrations
🔌 App Communication
graph TD; A(Networking) --> B(Services); B(Services) --> C(ViewModel); C(ViewModel) --> D(View);