Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. signals-ios

signals-ios

MITObjective-C2.5.1

A type-safe eventing library for iOS that replaces NSNotifications and delegates with an attach-and-forget observation pattern.

GitHubGitHub
521 stars50 forks0 contributors

What is signals-ios?

Signals is an eventing library for iOS that enables type-safe implementation of the Observable pattern. It replaces error-prone NSNotifications and cumbersome delegates with a system that ensures compile-time safety and reduces boilerplate code. The library allows objects to fire events and other objects to observe them with inline callbacks, automatically managing observer lifecycles.

Target Audience

iOS developers building applications in Objective-C or Swift who need a robust, type-safe alternative to NSNotifications or delegates for event communication between components.

Value Proposition

Developers choose Signals for its compile-time type safety, which prevents common runtime crashes associated with NSNotifications, and its attach-and-forget observation that simplifies memory management. It offers a more declarative and less error-prone way to handle events compared to traditional iOS patterns.

Overview

Typeful eventing

Use Cases

Best For

  • Implementing type-safe event communication between view controllers and models
  • Replacing NSNotifications to avoid runtime crashes from data type mismatches
  • Simplifying delegate patterns when no return data is needed
  • Managing network request callbacks with multiple observers
  • Handling user interface updates from background tasks safely
  • Building modular iOS apps with decoupled component interactions

Not Ideal For

  • Swift-only projects preferring native Combine or SwiftUI observation for seamless integration
  • Cross-platform development needing eventing that works beyond iOS (e.g., with Android or web)
  • Teams already using reactive libraries like RxSwift which offer more operators and a broader ecosystem
  • Applications with minimal event communication where lightweight closures or delegates suffice without dependency overhead

Pros & Cons

Pros

Compile-Time Type Safety

Ensures data type mismatches are caught at compile time, preventing runtime crashes common with NSNotifications, as highlighted in the README's critique of NSNotification pitfalls.

Automatic Lifecycle Management

Observers self-manage deallocation with attach-and-forget observation, reducing memory leak risks without manual de-registration, a key improvement over NSNotifications.

Flexible Observation Behavior

Supports one-time observation, custom callback queues, and firing previous data, allowing fine-tuned control for advanced use cases as demonstrated in the advanced usage section.

High Reliability Assurance

Backed by comprehensive unit test coverage noted in features, ensuring stability across diverse scenarios and reducing bug potential in event-driven code.

Cons

Cumbersome Swift Integration

Swift usage requires creating concrete sub-classes with macros like CreateSignalInterface, adding boilerplate and complexity compared to native Swift eventing solutions, as admitted in the Swift support section.

Limited Observer Capacity

Default max of 100 observers per signal can NSAssert in high-volume scenarios, forcing manual adjustments via maxObservers property, which adds overhead for legitimate use cases.

Objective-C Centric Design

Primarily built for Objective-C with protocol-based signals, making it less idiomatic for modern Swift-first development and requiring extra steps for type safety in Swift.

Frequently Asked Questions

Quick Stats

Stars521
Forks50
Contributors0
Open Issues2
Last commit7 years ago
CreatedSince 2015

Tags

#event-driven#ios#objective-c#type-safety#notifications#delegates#mobile-development#observable-pattern#swift

Included in

iOS51.7k
Auto-fetched 9 hours ago

Related Projects

PromiseKitPromiseKit

Promises for Swift & ObjC.

Stars14,226
Forks1,458
Last commit3 months ago
BoltsBolts

Bolts is a collection of low-level libraries designed to make developing mobile apps easier.

Stars5,620
Forks573
Last commit5 years ago
promisespromises

Promises is a modern framework that provides a synchronization construct for Swift and Objective-C.

Stars3,830
Forks315
Last commit3 months ago
HydraHydra

⚡️ Lightweight full-featured Promises, Async & Await Library in Swift

Stars1,981
Forks115
Last commit4 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