PackageTrack
Sign in Get early access

signals_flutter

The signals library exposes four core functions which are the building blocks to model any business logic you can think of.

7.1.0 28K downloads/mo #1910 most downloaded on pub.dev rodydavis/signals.dart

What this package is like to depend on

Last release 2 months ago

29 May 2026

Ships unpredictably

gaps range from 8 days to 10 months

Nearly every release is documented

notes for 41 of 41 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

61 releases · first in 2023

6 releases in the last 12 months

see the full history below

Release timeline

61 releases · Dec 2023 to May 2026
2024 2025 2026
Release Pre-release

Releases

latest 60 of 61
  1. 7.1.0 29 May 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v7.0.0...v7.1.0

    Open source →
    Release notes

    🚀 New Features

    • Decoupled & Generalized SignalProvider: Decoupled SignalProvider from FlutterReadonlySignal (which implements Listenable) and generalized it to accept any standard core ReadonlySignal from signals_core.
    • Automatic Listenable Adapter Conversion: Standard signals that do not implement Listenable are automatically wrapped in a lightweight, lifecycle-managed Listenable adapter internally under InheritedNotifier, maintaining maximum efficiency without manual boilerplate.

    🐛 Bug Fixes

    • Dependency Injection Guide: Fixed primitive type compile errors and generic alignment inside docs/content/guides/dependency-injection.md.
    Open source →
  2. 7.0.0 26 May 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v6.0.1...v7.0.0

    Open source →
    Release notes

    ⚠️ BREAKING CHANGES

    • SignalBuilder Constructor: Updated SignalBuilder to accept a required named parameter required Widget Function(BuildContext) builder instead of a positional function argument. This aligns it perfectly as a drop-in replacement for Flutter's native Builder widget.

    🚀 New Features

    • SignalProvider & MultiSignalProvider Stateful Lifecycle: Completely redesigned SignalProvider as a StatefulWidget to maintain the reactive signal instance across parent rebuild cycles. Adds automatic dispose() teardown of created signals when unmounted, custom dispose callback support, and SignalProvider.value constructor to expose managed signals without teardown. Also adds SignalProvider.multi / MultiSignalProvider to flatten deeply nested builder hierarchies into a convenient flat list.
    • SignalWidget & SignalStatefulWidget: Added stateless and stateful base widgets that establish implicit reactive contexts directly at the element layer. Any signal value accessed synchronously via .value in their build() methods will automatically schedule surgical, frame-coalesced rebuilds.
    • SignalAnimatedBuilder: Added a modern transition builder widget designed for subtree rendering optimization. Accepts an optional pre-built static child widget which is cached and never rebuilt when signal values mutate.
    • SignalEffect / SignalListener: Added inline side-effects widgets that run reactive callbacks (e.g. snackbars, dialog triggers, routing) when tracked signals mutate. Handles setup, callback updates, and cleanup automatically on unmount.
    • SignalCustomPaint & SignalPainterWidget: Added canvas drawing targets that bypass element rebuild cycles by listening directly to signals at the rendering layer to trigger markNeedsPaint() directly.
    • Widget & Element Conversion Options: Added toSignalWidget() on StatelessWidget and toSignalStatefulWidget() on StatefulWidget to seamlessly upgrade standard widgets to reactive versions. Also added watchSignal extensions on StatelessElement and StatefulElement.

    ⚡ Deprecations & Optimizations

    • Deprecated legacy Watch, WatchBuilder, SignalsMixin, and the .watch(context) context watch extensions.
    • Modernized legacy Watch and WatchBuilder under the hood to act as lightweight, stateless adapters delegating directly to SignalBuilder and SignalAnimatedBuilder to achieve zero-allocation state overhead.
    • Optimized .watch(context) extension with a memory-safe Expando/WeakReference/Finalizer engine preventing lapsed-listener memory leaks and object identity hash collisions.
    Open source →
  3. 6.3.1 25 May 2026
    Release notes

    ci: restrict publish workflow to tag pushes to enable automated pub.d…

    Open source →
    Release notes
    • FIX: Doc comment package import.
    Open source →
    Release notes
    • REFACTOR: migrate signal mixins to mixin classes.
    • FIX(flutter): prevent ConcurrentModificationError in SignalsMixin.
    • FIX(signals_flutter): remove listener on dispose for ValueListenable.toSignal().
    • FIX: resolve hashCode collision in .watchSignal.
    • FEAT(signals_flutter): return FlutterSignal/-Computed from SignalsMixin.createSignal/-Computed.
    Open source →
  4. 6.3.0 30 Nov 2025
    Release notes
    • Fix listener on dispose for ValueListenable.toSignal()
    • Return FlutterSignal/FlutterComputed from SignalsMixin.createSignal/createComputed
    • Fix hashCode collision in .watchSignal
    • Bump signals_core to 6.2.1
    Open source →
  5. 6.2.0 30 Sep 2025
    Release notes
    • Adding SignalsAutoDisposeMixin
    • Computed/Signal now use SignalsAutoDisposeMixin but ReadonlySignalMixin no longer has dispose methods
    • Tests now check for SignalEffectException and not error
    • Exposing SignalEffectException from preact_signals
    • Bump preact_signals to 1.9.3
    • Computed not also can throw SignalEffectException instead of generic error
    • Bump signals_core to 6.2.0
    Open source →
  6. 6.1.0 30 Sep 2025
    Release notes
    • Bump signals_core to 6.1.0
    • Fix error in effect not showing StackTrace
    • Add extensions for List, Map, Set, Iterable, bool, String, int, double, num, Comparable, Pattern, Enum
    • Add persisted signals for bool, double, Enum, int, num, String and Json (including nullable for each)
    • Add SignalsKeyValueStore and SignalsInMemoryKeyValueStore for storage
    • Add $ extension method for common types to create signal and function for computed
    Signal<int> count = 0.$;
    Computed<double> doubleValue => (() => count() * 2).$;
    Signal<String> name = 'Flutter'.$;
    Signal<bool> isTrue = true.$;
    Signal<Brightness> brightness = Brightness.light.$;
    Signal<double> progress = 0.5.$;
    
    • Add SignalEffectException for getting the error and StackTrace for a failed effect callback
    Open source →
  7. 6.0.2 02 Dec 2024
    Release notes

    What's Changed

    Full Changelog: v6.0.0...v6.0.1

    Open source →
    Release notes
    • Fix cycle error with TrackedSignalMixin and Computed
    • Add AsyncErrorReloading, AsyncErrorRefreshing, AsyncDataReloading, AsyncDataRefreshing
    Open source →
  8. 6.0.1 29 Nov 2024
    Release notes
    • Fix issue with StreamSignal _stream not initialized
    Open source →
  9. 6.0.0 28 Nov 2024
    Release notes
    • Remove SignalStream controller
    • Upgrade SignalsProvider/ComputedProvider/ReadonlySignalProvider to default imports
    • Add FlutterSignal to extends ValueNotifier
    • Add FlutterComputed/FlutterReadonlySignal to extends ValueListenable
    • Removing deprecated methods
    • Add more methods to SignalsMixin
    • Switching to preact_signals package for core implementation
    • Removing old deprecated methods
    • Add new mixins: EventSinkSignalMixin, SinkSignalMixin, StreamSignalMixin, SetSignalMixin, ListSignalMixin, MapSignalMixin, QueueSignalMixin, ChangeStackSignalMixin, IterableSignalMixin
    • Update AsyncSignal to implement EventSink
    • Removing previous/initial value from Signal and Computed in favor of TrackedSignal, TrackedSignalMixin and trackedSignal()
    • Update SignalsObserver to include value for signal created (instead of peek())
    • Updated examples
    • Remove callback to signal
    • Remove toSignal extension method (causing unintended casts) in favor of .$ for Object/Object?
    • Add WatchBuilder to include a child callback for caching a widget between rebuilds
    • Removing ComputedProvider/ReadonlySignalProvider
    Open source →
  10. 6.0.0-rc.5 28 Nov 2024 pre-release

    Nothing published for this version

  11. 6.0.0-rc.4 28 Nov 2024 pre-release

    Nothing published for this version

  12. 6.0.0-rc.3 22 Nov 2024 pre-release

    Nothing published for this version

  13. 6.0.0-rc.2 21 Nov 2024 pre-release

    Nothing published for this version

  14. 6.0.0-rc.1 20 Nov 2024 pre-release

    Nothing published for this version

  15. 6.0.0-rc.0 26 Oct 2024 pre-release

    Nothing published for this version

  16. 5.5.1 18 Oct 2024
    Release notes
    • Fix for Watch.builder not rebuilding with InheritedWidget
    Open source →
  17. 5.5.0 02 Sep 2024
    Release notes
    • Fix for hot reload
    • Removing deprecation warning for watch/unwatch
    Open source →
  18. 5.4.0 17 Aug 2024
    Release notes
    • Add SignalsMixin to replace .watch, createComputed/createSignal, SignalsAutoDisposeMixin and implementation for Watch
    • Signals now render with fewer rebuilds
    • Adding new deprecated warnings
    • Fix: https://github.com/rodydavis/signals.dart/issues/292
    • Update to signals_core 5.4.0
    Open source →
  19. 5.3.0 30 Jul 2024
    Release notes
    • Add Signal.lazy and lazySignal
    • Add signal.isLazy and computed.isLazy
    • Add await future to refresh/reload for FutureSignal
    • Update to signals_core 5.3.0
    • FIX: https://github.com/rodydavis/signals.dart/issues/279
    • Fixing signal/computed not disposing in SignalsAutoDisposeMixin
    • createSignal/createComputed now are autoDispose=true by default
    Open source →
  20. 5.2.3 30 Jul 2024
    Release notes
    • FIX: https://github.com/rodydavis/signals.dart/issues/283
    • Changing toJson from T to dynamic
    • Update to signals_core 5.2.3
    Open source →
  21. 5.2.2 04 Jun 2024
    Release notes
    • FIX: https://github.com/rodydavis/signals.dart/issues/265
    • Update to signals_core 5.2.2
    • FIX: https://github.com/rodydavis/signals.dart/issues/266
    Open source →
  22. 5.2.1 08 May 2024
    Release notes
    • FIX: https://github.com/rodydavis/signals.dart/issues/258
    • FIX: https://github.com/rodydavis/signals.dart/issues/262
    • Update to signals_core 5.2.0
    Open source →
  23. 5.2.0 22 Apr 2024
    Release notes
    • Update to signals_core 5.1.0
    • Sync core implementation with @preactjs/signals package
    • Allow mutations in computed
    • Share peek implementation for signal/computed
    • Inline various methods for performance
    Open source →
  24. 5.1.0 20 Apr 2024
    Release notes
    • Fix #247 - element watcher causing effect cycle error
    • Fix #245 - unmounted widget causing error on context read
    • Adding InheritedSignalProvider and ReadonlySignalProvider for Flutter
    • Update to signals_core 5.0.1
    • Switching SignalsObserver to use log instead of print
    • Only setting SignalsObserver to use DevToolsSignalsObserver in kDebugMode
    • Changing SignalProvider default constructor to use create
    Open source →
  25. 5.0.0 13 Apr 2024
    Release notes
    • Adding previousValue/initialValue to Signal
    • Removing SignalEquality
    • Deprecating ValueSignal in favor of Signal
    • Deprecating .forceUpdate in favor of .set(..., force: true)
    • Removing old deprecated methods
    • Adding more inline code documentation
    • ListSignal/SetSignal now extends IterableSignal
    • Fixing ChangeStackSignal getters for history/redos to return an iterable list
    • Fixing async signal isCompleted race condition
    • Adding createSignal/createComputed/createEffect for Flutter
    • Adding SignalsAutoDisposeMixin for Flutter
    • Update to signals_core 5.0.0
    Open source →
  26. 5.0.0-beta.15 13 Apr 2024 pre-release

    Nothing published for this version

  27. 5.0.0-beta.14 12 Apr 2024 pre-release

    Nothing published for this version

  28. 5.0.0-beta.13 11 Apr 2024 pre-release

    Nothing published for this version

  29. 5.0.0-beta.12 11 Apr 2024 pre-release

    Nothing published for this version

  30. 5.0.0-beta.11 11 Apr 2024 pre-release

    Nothing published for this version

  31. 5.0.0-beta.10 06 Apr 2024 pre-release

    Nothing published for this version

  32. 5.0.0-beta.9 06 Apr 2024 pre-release

    Nothing published for this version

  33. 5.0.0-beta.8 06 Apr 2024 pre-release

    Nothing published for this version

  34. 5.0.0-beta.7 06 Apr 2024 pre-release

    Nothing published for this version

  35. 5.0.0-beta.6 06 Apr 2024 pre-release

    Nothing published for this version

  36. 5.0.0-beta.5 06 Apr 2024 pre-release

    Nothing published for this version

  37. 5.0.0-beta.4 06 Apr 2024 pre-release

    Nothing published for this version

  38. 5.0.0-beta.3 05 Apr 2024 pre-release

    Nothing published for this version

  39. 5.0.0-beta.2 05 Apr 2024 pre-release

    Nothing published for this version

  40. 4.5.1 01 Mar 2024
    Release notes
    • Fixing Watch in hot reload with auto dispose signals
    Open source →
  41. 4.5.0 29 Feb 2024
    Release notes
    • Updating documentation comments
    • Fixing signals observer bug on effect
    • Removing previousValue from value signal
    • Add ability to remove an onDispose callback
    • Update to signals_core 4.5.0
    Open source →
  42. 4.4.0 21 Feb 2024
    Release notes
    • adding overrideWith
    • fix autoDispose not passed in for some signals
    • fix equality not being passed in for some signals
    • fix for completed not being reset on async signal
    • Update to signals_core 4.4.0
    Open source →
  43. 4.3.0 19 Feb 2024
    Release notes
    • Add valueNotifierToSignal, valueListenableToSignal
    Open source →
  44. 4.2.3 15 Feb 2024
    Release notes
    • FIX: https://github.com/rodydavis/signals.dart/issues/171
    • Update to signals_core 4.2.1
    Open source →
  45. 4.2.2 11 Feb 2024
    Release notes
    • Update to signals_core 4.2.0
    Open source →
  46. 4.2.1 11 Feb 2024
    Release notes
    • FIX: https://github.com/rodydavis/signals.dart/issues/155.
    Open source →
  47. 4.1.0 06 Feb 2024
    Release notes
    • Fix bug in auto dispose where signal dispose causes cycle
    • Dispose does not reset to initial value and will read the last value with a warning
    Open source →
  48. 4.0.3 05 Feb 2024
    Release notes
    • Removing SignalsReadAfterDisposeError in favor of debug print warning
    Open source →
  49. 4.0.2 05 Feb 2024
    Release notes
    • Adding SignalsWriteAfterDisposeError/SignalsReadAfterDisposeError for better error handling
    Open source →
  50. 4.0.1 05 Feb 2024
    Release notes
    • Fix for listen causing multiple callbacks on non static methods
    Open source →
  51. 4.0.0 05 Feb 2024
    Release notes
    • StreamSignal now will rebuild with signals are read in the callback to create the stream
    • Stream/Future signal both can take an optional list of dependencies to rebuild on
    • FutureSignal now extends StreamSignal
    • StreamSignal can now rebuild/refresh
    • StreamSignal can now pause/resume
    • Adding computedAsync/computedFrom for similar API to angular
    • Adding .set(..., force: true) to Signal/Computed to force a rebuild
    • Adding .recompute() for Computed to recall the callback
    • Adding autoDispose for Signal/Computed
    • Adding some helper signals not included in the default export
    • Signals for WidgetsBinding and SchedulerBinding
    • Signals for Theme/MediaQuery
    • TickerSignal for Flutter animations
    Open source →
  52. 3.0.0 17 Jan 2024
    Release notes
    • adding readonlySignalContainer to be existing signalContainer API
    • updating signalContainer to allow for mutable signals
    • adding SignalEquality to allow override of ==
    • adding select for signals to return a computed value
    • fix memory leak on signal container
    • adding ChangeStackSignal
    Open source →
  53. 1.0.8 20 Dec 2023
    Release notes
    • Updating signals_core package 1.0.6
    Open source →
  54. 1.0.7 19 Dec 2023
    Release notes
    • Fixing listen in extension with multiple signals
    Open source →
  55. 1.0.6 18 Dec 2023
    Release notes
    • Fixing watch in extension with multiple signals
    Open source →
  56. 1.0.5 18 Dec 2023
    Release notes
    • Updating signals_core package 1.0.3
    Open source →
  57. 1.0.4 18 Dec 2023
    Release notes
    • Updating signals_core package 1.0.2
    • Adding Watch.builder for non positional argument usage and direct replacement for Builder
    Open source →
  58. 1.0.3 15 Dec 2023
    Release notes
    • Fixing memory leak for watch/listen
    Open source →
  59. 1.0.2 15 Dec 2023
    Release notes
    • Fixing memory leak for watch/listen
    Open source →
  60. 1.0.1 14 Dec 2023
    Release notes
    • Watch widget improvements (reducing extra first frame build)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive