What is Swinject?

Swinject is a lightweight dependency injection framework for Swift.

Dependency injection (DI) is a software design pattern that implements Inversion of Control (IoC) for resolving dependencies. In the pattern, Swinject helps your app split into loosely-coupled components, which can be developed, tested and maintained more easily. Swinject is powered by the Swift generic type system and first class functions to define dependencies of your app simply and fluently.

Features

  •  Pure Swift Type Support
  •  Injection with Arguments
  •  Initializer/Property/Method Injections
  •  Initialization Callback
  •  Circular Dependency Injection
  •  Object Scopes as None (Transient), Graph, Container (Singleton) and Hierarchy
  •  Support of both Reference and Value Types
  •  Self-registration (Self-binding)
  •  Container Hierarchy
  •  Thread Safety
  •  Modular Components

Overview

  • Pricing: Free
  • Resource Link: https://github.com/Swinject/Swinject
  • Resource Maker: Swinject
  • Mobile Platform Destination: iOS Apps
  • Mobile Platform Support: Native iOS
  • Programming Languages: Swift
  • iOS Versions Supported: iOS 8.0+, iOS 9.0+, iOS 10.0+, iOS 11.0+, iOS 12.0+
  • CocoaPods: Swinject
  • Carthage: Swinject/Swinject