Interface-oriented router for discovering modules, and injecting dependencies
What is ZIKRouter?
An interface-oriented router for managing modules and injecting dependencies with protocol.
The view router can perform all navigation types in UIKit / AppKit through one method.
The service router can discover and prepare corresponding module with its protocol.
- Swift and Objective-C support
- iOS, macOS and tvOS support
- File template for quickly creating router
- Routing for UIViewController / NSViewController, UIView / NSView and any class
- Dependency injection, including dynamic injection and static injection
- Declaration of routable protocol for compile-time checking. Using undeclared protocol will bring compiler error. This is one of the most powerful feature
- Module matching with its protocol
- URL routing support
- Configure the module with its protocol rather than a parameter dictionary
- Required protocol and provided protocol for making thorough decouple
- Adapter for decoupling modules and add compatible interfaces
- Storyboard support. Views from a segue can be auto prepared
- Encapsulation for all transition methods and unwind methods in UIKit / AppKit, and also custom transition
- Error checking for view transition
- AOP for view transition
- Memory leak detection
- Custom events handling
- Auto registration
- Highly scalable