ios-dependency-injection
Standards for Protocol-based DI, Property Wrappers, and Factory/Needle. Use when configuring dependency injection or factory patterns in iOS.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
iOS Dependency Injection Standards
Priority: P0
Implementation Guidelines
Protocol-Based DI (Manual)
-
Initializer Injection: Preferred method. Pass dependencies through
init. - Abstractions: Inject protocols instead of concrete classes to facilitate testing (Mocks/Stubs).
Modern Property Wrappers (Factory/Resolver)
-
Factory: Use the
Factorylibrary for lightweight, type-safe navigation-friendly DI. - Swinject: Use for enterprise-grade container-based DI in large modular projects.
-
Injected: Use
@Injectedproperty wrappers for cleaner syntax in ViewModels.
Scoping
- Singleton: Use for app-wide services (Auth, Network, Database).
- Unique/Transient: Default for ViewModels and temporary workers.
- Graph/Cached: Use for shared data within a specific feature flow (Coordinator scope).
Anti-Patterns
-
Singletitis:
**No global Shared singleton access everywhere**: Inject the service via initializer. -
Service Locator:
**No Resolver.resolve() inside logic**: Pass dependency via constructor or property wrapper. -
Concrete Dependency:
**No direct class instantiation**: Depend on protocols for testability.
References
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-03-11
- 索引更新时间
- 2026-03-11
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!