La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Productividad · SKILL.md

ios-dependency-injection

ios-dependency-injection

Configure protocol-based DI with property wrappers and Factory/Swinject. Use when setting up dependency injection or factory patterns in iOS.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentación de la Skill

GitHub

name: ios-dependency-injection description: Configure protocol-based DI with property wrappers and Factory/Swinject. Use when setting up dependency injection or factory patterns in iOS. metadata: triggers: files: - '**/*.swift' keywords: - "@Injected" - Resolver - Container - Swinject - register - resolve

iOS Dependency Injection

Priority: P0 (CRITICAL)

Implementation Workflow

  1. Prefer initializer injection — Pass dependencies through init as primary approach.
  2. Inject protocols — Always depend on protocols instead of concrete classes for testability.
  3. Choose DI library — Use Factory for lightweight DI, Swinject for enterprise-grade container-based projects.
  4. Apply correct scoping — Singleton for app-wide services (Auth, Network); Unique/Transient for ViewModels; Graph/Cached for feature flows.

See protocol-based DI and Factory registration examples

Anti-Patterns

  • No Global Singletons: Inject services via initializer
  • No Inline Service Resolution: Pass dependencies via constructor; avoid Resolver.resolve() in business logic
  • No Concrete Class Dependencies: Depend on protocols for testability

References

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • Injected

Remediation anchors

  • Remediation anchors: protocol injection, Factory library, initializer injection
Skills guardadas