Framework that enables the application to register and inject dependencies. InSwifted is designed to safely resolve dependencies as well as have a traditional dependency injection use.
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler.
Once you have your Swift package set up, adding InSwifted as a dependency is as easy as adding it to the dependencies value of your Package.swift.
dependencies: [
.package(url: "https://github.com/JustinGuedes/inswifted.git", .upToNextMajor(from: "0.1.0"))
]CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate InSwifted into your Xcode project using CocoaPods, specify it in your Podfile:
pod 'InSwifted', '~> 0.1'First thing to do is create a DependencyContainer to contain all the dependencies for the application, with the container you can start to register dependencies in the container, like so:
let container = DependencyContainer()
container.register(Protocol.self) { resolver in
Implementation()
}Once you have your container you can set the resolver for InSwifted using the set(resolver:) method:
InSwifted.set(resolver: container)With the InSwifted resolver set you can then start resolving dependencies throughout the application using a convenient property wrapper:
struct Example {
@Injected
var dependency: Protocol
}And thats it! You're all set!
InSwifted is released under the MIT license. See LICENSE for details.