Resolve dependencies at compile-time — Purpose A simple solution for dependency injection Compile-time resolving of dependencies Provide different scopes of injectable values for different layers: view model, view, router, interactor, etc. Reduce the number of dependencies passed via init methods Avoid spreading abstractions from an external library across the project. Solution Even though the solution is property…