Introduction
StrangeIoC is a super-lightweight and highly extensible Inversion-of-Control (IoC) framework, written specifically for C# and Unity. We’ve validated Strange on web and standalone, iOS and Android. It contains the following features, most of which are optional:
-
A core binding framework that pretty much lets you bind one or more of anything to one or more of anything else.
-
Dependency Injection
-
Two types of shared event bus
-
EventDispatcher (the default) is a simple, but non-type-safe, dispatching bus
-
Signals, which offer type-safety
-
MonoBehaviour mediation
-
Optional MVCS (Model/View/Controller/Service) structure
-
Multiple contexts
-
Don’t see what you need? The core binding framework is simple to extend. Build new Binders like:
In addition to organizing your project into a sensible structure, Strange offers the following benefits:
-
Designed to play well with Unity3D. Also designed to play well without it.
-
Separate UnityEngine code from the rest of your app, improving portability and unit testability.
-
A common event bus makes information flow easy and highly decoupled.
-
The extensible binder really is amazing (a friend used to tell me “it’s good to like your own cookin’!”). The number of things you can accomplish with the tiny core framework would justify Strange all on its own.
-
Multiple contexts allow you to “bootstrap” subcomponents so they operate fine either on their own or in-app. This can hugely speed up your development process and allow developers to work in isolation, then integrate in later stages of development.
An overview of the benefits of IoC in general and StrangeIoC in particular is available here.
User's manual: here.
Already know RobotLegs? Good news, we've written this page just for you!
StrangeIoC is a project by ThirdMotion, Inc. © 2013 ThirdMotion, Inc.
StrangeIoC is open sourced under the Apache 2 license.