Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. Typhoon

Typhoon

Apache-2.0Objective-C4.0.9

A powerful, lightweight dependency injection framework for Objective-C and Cocoa applications.

Visit WebsiteGitHubGitHub
2.7k stars260 forks0 contributors

What is Typhoon?

Typhoon is a dependency injection framework for Objective-C and Cocoa/CocoaTouch applications. It helps developers manage object dependencies and improve testability by providing a structured way to wire components together. The framework uses the Objective-C runtime to automate instantiation and injection, reducing boilerplate code.

Target Audience

Objective-C developers building iOS or macOS applications who need a robust, lightweight dependency injection solution. It's also suitable for teams maintaining legacy Objective-C codebases or integrating with Swift projects.

Value Proposition

Typhoon stands out for its runtime-based approach, which simplifies configuration and reduces manual wiring. It's lightweight yet full-featured, offering a balance of power and ease of use that's tailored specifically for the Cocoa ecosystem.

Overview

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

Use Cases

Best For

  • Managing complex object graphs in large Objective-C applications
  • Improving testability and modularity in iOS/macOS projects
  • Reducing boilerplate code for dependency management
  • Integrating dependency injection into legacy Objective-C codebases
  • Supporting Swift interoperability via dynamic frameworks
  • Structuring Cocoa applications with clear separation of concerns

Not Ideal For

  • Modern Swift-only applications seeking native dependency injection
  • Projects requiring active framework updates and Swift 5+ optimization
  • Teams avoiding Objective-C runtime overhead for performance or security reasons
  • Simple apps where manual dependency management suffices without added complexity

Pros & Cons

Pros

Runtime Automation

Uses Objective-C runtime metadata to automatically instantiate and wire objects, reducing manual configuration and boilerplate code as highlighted in the README.

Lightweight Integration

Supports CocoaPods, Carthage, and manual source integration, making it easy to add to existing Cocoa projects without bloat.

Broad Compatibility

Works with iOS 5+, OS X 10.7+, and dynamic frameworks for Swift interoperability, ensuring support for legacy and mixed codebases.

Community Documentation

Backed by extensive documentation, sample apps, and active Stack Overflow support, providing resources for learning and troubleshooting.

Cons

Limited Swift Support

The README explicitly states Typhoon is not great for modern Swift and recommends Pilgrim as the successor, making it suboptimal for Swift-focused development.

Aging Codebase

With copyright up to 2015 and a successor framework announced, Typhoon may have reduced active maintenance and fewer updates for newer iOS versions.

Runtime Dependency Overhead

Relies on Objective-C runtime manipulation, which can introduce performance overhead and complexity in pure Swift or performance-critical applications.

Frequently Asked Questions

Quick Stats

Stars2,692
Forks260
Contributors0
Open Issues23
Last commit5 years ago
CreatedSince 2012

Tags

#ios#objective-c#dependency-injection#ioc#inversion-of-control#di-framework#di#cocoa#mobile-development#macos#swift-interop#ioc-container

Built With

O
Objective-C

Links & Resources

Website

Included in

iOS51.7kSwift26.0k
Auto-fetched 16 hours ago

Related Projects

SwinjectSwinject

Dependency injection framework for Swift with iOS/macOS/Linux

Stars6,704
Forks542
Last commit10 months ago
NeedleNeedle

Compile-time safe Swift dependency injection framework

Stars2,010
Forks162
Last commit2 months ago
CleanseCleanse

Lightweight Swift Dependency Injection Framework

Stars1,770
Forks82
Last commit2 years ago
DipDip

Simple Swift Dependency container. Use protocols to resolve your dependencies and avoid singletons / sharedInstances!

Stars980
Forks71
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub