GitPedia

Typhoon

Powerful dependency injection for Objective-C ✨✨ (https://github.com/appsquickly/pilgrim is the pure Swift successor to Typhoon!!)✨✨

From appsquickly·Updated June 4, 2026·View on GitHub·

Powerful dependency injection for Cocoa and CocoaTouch. Lightweight, yet full-featured and super-easy to use. The project is written primarily in Objective-C, distributed under the Apache License 2.0 license, first published in 2012. It has gained significant community traction with 2,692 stars and 261 forks on GitHub. Key topics include: dependency-injection, di, inversion-of-control, ioc, ioc-container.

Latest release: 4.0.9Build against recent SDKs. No functional changes.
July 3, 2020View Changelog →

<a href="http://appsquickly.github.io/typhoon">Typhoon</a>

Powerful dependency injection for Cocoa and CocoaTouch. Lightweight, yet full-featured and super-easy to use.


Pilgrim is a pure Swift successor to Typhoon!!

Typhoon uses the Objective-C runtime to collect metadata and instantiate objects. It powers thousands of Objective-C applications but it is not all that great for modern Swift.

Pilgrim (https://github.com/appsquickly/pilgrim) is a pure Swift successor to Typhoon. It is easy to migrate your Typhoon apps to Pilgrim.


Not familiar with Dependency Injection?

Visit <a href="http://appsquickly.github.io/typhoon">the Typhoon website</a> for an introduction. There's also a nice intro over at <a href="https://www.bignerdranch.com/blog/dependency-injection-ios/">Big Nerd Ranch</a>, or <a href="https://www.objc.io/issues/15-testing/dependency-injection/">here's an article</a>, by <a href="http://qualitycoding.org/">John Reid</a>. Quite a few books have been written on the topic, though we're not familiar with one that focuses specifically on Objective-C, Swift or Cocoa yet.

Is Typhoon the right DI framework for you?

Check out the <a href="http://appsquickly.github.io/typhoon/#features">feature list</a>.


Usage

  • Read the Quick Start for <a href="https://github.com/appsquickly/typhoon/wiki/Quick-Start">Objective-C</a> or <a href="https://github.com/appsquickly/typhoon/wiki/Swift-Quick-Start">Swift</a>.
  • Here's the <a href="https://github.com/appsquickly/typhoon/wiki/Types-of-Injections">User Guide</a>.
  • <a href="http://ios.caph.jp/typhoon/introduction">日本のドキュメンテーション</a>
swift
let assembly = MyAssembly().activated() let viewController = assembly.recommendationController() as! RecommendationController

Open Source Sample Applications

  • Try the official <a href="https://github.com/appsquickly/typhoon-Swift-Example">Swift Sample Application</a> or <a href="https://github.com/appsquickly/Typhoon-example">Objective-C Sample Application</a>.
  • This sample shows how to <a href="https://github.com/appsquickly/Typhoon-CoreData-RAC-Example">set up Typhoon with Storyboards, Core Data and Reactive Cocoa</a>.

Have a Typhoon example app that you'd like to share? Great! Get in touch with us :)

Installing

Build Status
codecov
CocoaPods Version Pod Platform Carthage compatible Dependency Status Pod License

Typhoon is available through <a href="http://cocoapods.org/?q=Typhoon">CocoaPods</a> or <a href="https://github.com/Carthage/Carthage">Carthage</a>, and also builds easily from source.

With CocoaPods . . .

Static Library

ruby
# platform *must* be at least 5.0 platform :ios, '5.0' target :MyAppTarget, :exclusive => true do pod 'Typhoon' end

Dynamic Framework

If you're using Swift, you may wish to install dynamic frameworks, which can be done with the Podfile shown below:

ruby
# platform *must* be at least 8.0 platform :ios, '8.0' # flag makes all dependencies build as frameworks use_frameworks! # framework dependencies pod 'Typhoon'

Simply import the Typhoon module in any Swift file that uses the framework:

Swift
import Typhoon

With Carthage

github "appsquickly/Typhoon"

From Source

Alternatively, add the source files to your project's target or set up an Xcode workspace.

NB: All versions of Typhoon work with iOS5 and up (and OSX 10.7 and up), iOS8 is only required if you wish to use dynamic frameworks.


Feedback

I'm not sure how to do [xyz]

If you can't find what you need in the Quick Start or User Guides above, then Typhoon users and contributors monitor the Typhoon tag on <a href="http://stackoverflow.com/questions/tagged/typhoon?sort=newest&pageSize=15">Stack Overflow</a>. Chances are your question can be answered there.

I've found a bug, or have a feature request

Please raise a <a href="https://github.com/appsquickly/typhoon/issues">GitHub issue</a>.

Interested in contributing?

Great! Here's the <a href="https://github.com/appsquickly/typhoon/wiki/Contribution-Guide">contribution guide.</a>

I'm blown away!

Typhoon is a non-profit, community driven project. We only ask that if you've found it useful to star us on Github or send a tweet mentioning us (<a href="https://twitter.com/appsquickly">@appsquickly</a>). If you've written a Typhoon related blog or tutorial, or published a new Typhoon powered app, we'd certainly be happy to hear about that too.

Typhoon is sponsored and led by <a href="http://appsquick.ly">AppsQuick.ly</a> with <a href="https://github.com/appsquickly/Typhoon/graphs/contributors">contributions from around the world</a>.


© 2012 - 2015 Jasper Blues, Aleksey Garbarev and contributors.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from appsquickly/typhoon via the GitHub API.Last fetched: 6/29/2026