{"id":15293642,"url":"https://github.com/devandsev/justsignals","last_synced_at":"2026-05-04T06:34:44.868Z","repository":{"id":56917049,"uuid":"122618592","full_name":"devandsev/JustSignals","owner":"devandsev","description":"Signals to replace NotificationCenter and delegates, nothing more","archived":false,"fork":false,"pushed_at":"2018-02-25T11:38:42.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-03-24T15:11:29.424Z","etag":null,"topics":["delegate","ios","macos","notificationcenter","reactive","rx","signal","swift4"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devandsev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-23T12:27:52.000Z","updated_at":"2018-02-25T11:54:39.000Z","dependencies_parsed_at":"2022-08-21T03:50:46.441Z","dependency_job_id":null,"html_url":"https://github.com/devandsev/JustSignals","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devandsev%2FJustSignals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devandsev%2FJustSignals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devandsev%2FJustSignals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devandsev%2FJustSignals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devandsev","download_url":"https://codeload.github.com/devandsev/JustSignals/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245294774,"owners_count":20591909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delegate","ios","macos","notificationcenter","reactive","rx","signal","swift4"],"created_at":"2024-09-30T16:50:20.646Z","updated_at":"2026-05-04T06:34:44.829Z","avatar_url":"https://github.com/devandsev.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"  # JustSignals\n\n  [![Build Status](https://travis-ci.org/devandsev/JustSignals.svg?branch=develop)](https://travis-ci.org/devandsev/JustSignals)\n\n  JustSignals is a type-safe alternative to NotificationCenter and delegates. Use it if you don't need binding and rx magic in your project, and just want to replace NotificationCenter with something more strict and safe. Otherwise take a look at [RxSwift](https://github.com/ReactiveX/RxSwift), [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa) and [Bond](https://github.com/ReactiveKit/Bond).\n\n  ## Installation\n\n  ### [CocoaPods](https://guides.cocoapods.org/using/using-cocoapods.html)\n\n  ```ruby\n  # Podfile\n  use_frameworks!\n\n  target 'YOUR_TARGET_NAME' do\n      pod 'JustSignals'\n  end\n  ```\n\n  Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type:\n\n  ```bash\n  $ pod install\n  ```\n\n  ### [Carthage](https://github.com/Carthage/Carthage)\n\n  Add this to `Cartfile`\n\n  ```\n  github \"devandsev/JustSignals\"\n  ```\n\n  In the `Cartfile` directory, type:\n\n  ```bash\n  $ carthage update\n  ```\n\n  ## Usage examples\n\n  Signal without any data:\n\n  ```swift\n  let signal = Signal\u003cVoid\u003e()\n  signal.subscribe(with: self) {\n      print(\"pong\")\n  }\n\n  signal.fire(())\n  ```\n\n  Signal with data:\n\n  ```swift\n  let signal = Signal\u003cInt\u003e()\n  signal.subscribe(with: self) { data in\n      print(data)\n  }\n\n  signal.fire(36)\n  ```\n\n  If you need to pass multiple values:\n\n  ```swift\n  let signal = Signal\u003c(Int, Float, String, Bool)\u003e()\n  signal.subscribe(with: self) { data in\n      print(data)\n  }\n\n  signal.fire((3, 2.2, \"test\", false))\n  ```\n\n  Subscription cancels automatically if the object that has been subscribed to the signal is deallocated, but if you need to unsubscribe early, use this:\n\n  ```swift\n  signal.unsubscribe(self)\n  ```\n  \n  ## License\n\n  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevandsev%2Fjustsignals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevandsev%2Fjustsignals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevandsev%2Fjustsignals/lists"}