ios-dependency-injection
Standards for Protocol-based DI, Property Wrappers, and Factory/Needle. Use when configuring dependency injection or factory patterns in iOS.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
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
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-03-11
- Mise à jour de l’index
- 2026-03-11
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!