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.