PackageTrack
Sign in Get early access

mobx

MobX is a library for reactively managing the state of your applications. Use the power of observables, actions, and reactions to supercharge your Dart and Flutter apps.

2.6.1 89K downloads/mo #1172 most downloaded on pub.dev mobxjs/mobx.dart

What this package is like to depend on

Last release 3 days ago

20 Aug 2026

Release timing varies

gaps range from 1 weeks to 13 months

Some releases are documented

notes for 55 of 119 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

132 releases · first in 2018

2 releases in the last 12 months

see the full history below

Release timeline

132 releases · Dec 2018 to Aug 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 132
  1. 2.6.1 20 Aug 2026
    Release notes

    fix(mobx): fix analyzer infos on beta channel (super parameters + col…

    Open source →
    Release notes
    • FIX: use super parameters in spy event constructors to satisfy the use_super_parameters lint on the beta analyzer.
    Open source →
  2. 2.6.0 03 Jan 2026
    Release notes

    fix: upgrade SDK to 3.7.0 and use multiple underscore wildcards for u…

    Open source →
    Release notes
    • Upgrading sdk and Analyzer fixes

    • FIX: update observableAlwaysNotEqual function signature to accept nullable Object parameters.

    • FIX: package upgrades, analysis issue fixes.

    • FIX: Observable.value setter (covariant) (#993).

    • FIX: stacktrace in computed (#988).

    • FIX: observableset and observablemap notify all listeners when one is added with fireimmediately true (#962).

    • FIX: revert #784 (#842).

    • FIX: ObservableStream.listen() should also keep observable values updated (#708).

    • FIX: Widgets failed to call super.dispose() (#334).

    • FIX: issue 62 (#64).

    • FEAT: add scheduler option to autorun and reaction (#979).

    • FEAT: add keepAlive to Computed (#976).

    • FEAT: Adds useEquatable for creating observables (#971).

    • FEAT: Adds custom equals for creating observables. (#907).

    • FEAT: Adds support for annotations (#904).

    • FEAT: Allow a custom equals parameter for ObservableStream (#771).

    • FEAT: Allow use custom context (#770).

    2024-12-16

    Changes


    Packages with breaking changes:

    • There are no breaking changes in this release.

    Packages with other changes:


    Open source →
    Release notes
    • Upgrading sdk and Analyzer fixes

    • FIX: update observableAlwaysNotEqual function signature to accept nullable Object parameters.

    • FIX: package upgrades, analysis issue fixes.

    • FIX: Observable.value setter (covariant) (#993).

    • FIX: stacktrace in computed (#988).

    • FIX: observableset and observablemap notify all listeners when one is added with fireimmediately true (#962).

    • FIX: revert #784 (#842).

    • FIX: ObservableStream.listen() should also keep observable values updated (#708).

    • FIX: Widgets failed to call super.dispose() (#334).

    • FIX: issue 62 (#64).

    • FEAT: add scheduler option to autorun and reaction (#979).

    • FEAT: add keepAlive to Computed (#976).

    • FEAT: Adds useEquatable for creating observables (#971).

    • FEAT: Adds custom equals for creating observables. (#907).

    • FEAT: Adds support for annotations (#904).

    • FEAT: Allow a custom equals parameter for ObservableStream (#771).

    • FEAT: Allow use custom context (#770).

    Open source →
  3. 2.5.0 16 Dec 2024
    Release notes
    • FIX: package upgrades, analysis issue fixes.
    • FIX: Observable.value setter (covariant) (#993).
    • FIX: stacktrace in computed (#988).
    • FIX: observableset and observablemap notify all listeners when one is added with fireimmediately true (#962).
    • FIX: revert #784 (#842).
    • FIX: ObservableStream.listen() should also keep observable values updated (#708).
    • FIX: Widgets failed to call super.dispose() (#334).
    • FIX: issue 62 (#64).
    • FEAT: add scheduler option to autorun and reaction (#979).
    • FEAT: add keepAlive to Computed (#976).
    • FEAT: Adds useEquatable for creating observables (#971).
    • FEAT: Adds custom equals for creating observables. (#907).
    • FEAT: Adds support for annotations (#904).
    • FEAT: Allow a custom equals parameter for ObservableStream (#771).
    • FEAT: Allow use custom context (#770).
    Open source →
  4. 2.4.0 31 Oct 2024
    Release notes
    • Add scheduler to reaction and autorun to allow customizing the scheduler used to schedule the reaction. By [@amondnet]((https://github.com/amondnet).
    Open source →
  5. 2.3.3 28 Mar 2024
    Release notes
    • Upgrading packages and sdk
    Open source →
  6. 2.3.3+1 28 Mar 2024
    Release notes
    • Analyzer fixes
    Open source →
  7. 2.3.3+2 03 Apr 2024

    Nothing published for this version

  8. 2.3.2 28 Mar 2024
    Release notes
    • Fix Observable.value setter when class with operator ==(covariant) is used as a value
    Open source →
  9. 2.3.1 23 Mar 2024
    Release notes
    • Fix preserving stacktrace in Computed and Reaction when exception thrown inside argument function
    Open source →
  10. 2.3.0 27 Dec 2023
    Release notes
    • REFACTOR: export MultiReactionBuilder from flutter_mobx.dart (#946).
    • FIX: package upgrades, analysis issue fixes.
    • FIX: stacktrace in computed (#988).
    • FIX: If builder of Observer errors, further error LateInitializationError: Local 'built' has not been initialized. will happen in addition to the actual error, reducing developer experience #780.
    • FIX: Disable button Remove Completed, when the completed task is occult on screen. (#73).
    • FEAT: add MultiReactionBuilder widget (#917).
    Open source →
    Release notes
    • Add keepAlive to Computed to avoid suspending computed values when they are not being observed by anything.
    Open source →
  11. 2.3.0+1 04 Jan 2024
    Release notes
    • pubspec.yaml updated to include homepage and topics
    Open source →
  12. 2.2.3 06 Dec 2023
    Release notes
    • Avoid unnecessary observable notifications of @observable Iterable or Map fields of Stores by @amondnet in #951
    Open source →
  13. 2.2.3+1 21 Dec 2023
    Release notes

    Make the change in 2.2.3 optional. If you want the use this behavior , modify @observable to @MakeObservable(useDeepEquality: true).

    • Adds useDeepEquality for creating observables by @amondnet
    Open source →
  14. 2.2.1 18 Oct 2023
    Release notes
    • Reduces unnecessary iterations while using Iterables with addAll, insertAll, replaceRange, setAll and setRange methods. #942.
    Open source →
  15. 2.2.0 05 May 2023
    Release notes
    • Allows a reaction to be fired even if the value hasn't changed by @amondnet in #907
    • Adds custom equals for creating observables. @amondnet in #907
    Open source →
    Release notes
    • Observer is updated with the new Observer.withBuiltChild constructor, so you can exclude child branch from the re-rendering. - @subzero911
      In case if you use Observer.withBuiltChild, you should provide two parameters: builderWithChild and child:
      Observer.withBuiltChild(
        builderWithChild: (context, child) => FooWidget(foo: foo, bar: child),
        child: BarWidget(), // won't rebuild
      ),
      
    Open source →
  16. 2.1.4 16 Feb 2023
    Release notes
    • Allow users to bypass observability system for performance by @fzyzcjy in #844

    • Fix Reaction lacks toString, so cannot see which reaction causes the error by @fzyzcjy in #844

    • Add StackTrace to reactions in debug mode to easily spot which reaction it is by @fzyzcjy in #844

      Breaking changes:

    • Avoid unnecessary observable notifications of @observable fields of Stores by @fzyzcjy in #844

    Open source →
  17. 2.1.3 18 Nov 2022

    Nothing published for this version

  18. 2.1.3+1 03 Feb 2023

    Nothing published for this version

  19. 2.1.2 13 Nov 2022
    Release notes
    • Fix tests in dart 2.19 - @amondnet
    • Dart formatting fixes
    • Refactor atom.dart to make code cleaner by @fzyzcjy in #854
    Open source →
  20. 2.1.1 12 Oct 2022
    Release notes
    • Allow a custom equals parameter for ObservableStream - @amondnet
    Open source →
    Release notes
    • refactor: export MultiReactionBuilder from flutter_mobx.dart by @amondnet
    Open source →
  21. 2.1.0 18 Sep 2022
    Release notes
    • ObservableSet now uses Set to maintain order of iteration
    • ObservableSet.linkedHashSetFrom() removed. Use ObservableSet() or ObservableSet.of() instead.
    Open source →
    Release notes
    • feat: add MultiReactionBuilder widget by @amondnet
    Open source →
  22. 2.0.7 21 Apr 2022
    Release notes
    • Type aliases for primitive types.
      So instead of Observable<int> you can now write ObservableInt.
    • .asObservable() extension for primitive types.
      Now you can easily convert literals to observables like:
      var name = ''.asObservable(); // infers ObservableString
      var counter = 0.asObservable(); // infers ObservableInt
      
    • toggle() method for ObservableBool. Lets you toggle the internal value of ObservableBool
      var lights = true.asObservable();
      lights.toggle(); // now it has a value of false
      
      Changes made by @subzero911
    • Allow use custom context(#770) - @amondnet
    Open source →
  23. 2.0.7+2 14 May 2022

    Nothing published for this version

  24. 2.0.7+3 11 Jun 2022
    Release notes
    • Fixed unnecessary ActionSpyEvents being triggered for AsyncAction
    Open source →
  25. 2.0.7+4 25 Jun 2022
    Release notes

    fixes:

    • shortened 1.asObservable() to 1.obs() (same for boolean, double, String) - @subzero911
    • removed experimental typedefs from 2.0.7
    Open source →
  26. 2.0.7+5 22 Jul 2022
    Release notes
    Open source →
  27. 2.0.7+6 18 Sep 2022
    Release notes
    • Fixed issue in showing issue tracker link on pub.dev
    Open source →
  28. 2.0.7+7 18 Sep 2022
    Release notes
    • Moved the version into its own file (version.dart) and exported from the main library file
    Open source →
  29. 2.0.6 23 Dec 2021
    Release notes
    • Improved performance when spying is disabled. Thanks to @Ascenio.
    • Package upgrades
    • Adopting the recommended linting for Dart
    Open source →
    Release notes
    • Adding support for previous versions of Flutter SDK
    Open source →
  30. 2.0.6+1 24 Dec 2021

    Nothing published for this version

  31. 2.0.5 07 Oct 2021
    Release notes
    • Fix for ObservableStream.listen() should also keep observable values updated (#708) - @brianrobles204
    • Added missing parameter to asyncWhen - @easeccy
    Open source →
    Release notes
    • Improve debugFindConstructingStackFrame to let the message be less confusing to the reader
    • Allow disabling No observables detected in the build method of Observer
    • The analyzer: ^3.0.0 in master branch is incompatible with Flutter stable
    • If builder of Observer errors, further error LateInitializationError: Local 'built' has not been initialized. will happen in addition to the actual error, reducing developer experience
    Open source →
  32. 2.0.4 07 Aug 2021
    Release notes
    • Moved analyzer package to 2.0.0 - @davidmartos96
    • Fixed a bug in Computed that was not propagating values after an exception - @brianrobles204
    • Several documentations typo fixes - @sno2, @Ascenio
    Open source →
    Release notes
    • Introducing a ReactionBuilder widget that helps you create an inline reaction and eliminates the need to have a wrapper-StatefulWidget that uses the initState to do the same. You can read more in the docs for ReactionBuilder.
    Open source →
  33. 2.0.3 25 Jul 2021
    Release notes
    • Package upgrades
    • Minor cleanups
    • Adopting the recommended linting for Dart
    Open source →
  34. 2.0.1 04 Apr 2021
    Release notes
    • Adds @readonly annotation support for creating read-only observables.
    Open source →
    Release notes
    • Moving from mockito to mocktail
    Open source →
  35. 2.0.0 01 Apr 2021
    Release notes
    • Full support for Null Safety
    Open source →
  36. 2.0.0-nullsafety.6 29 Mar 2021 pre-release
    Release notes
    • Adding support for @readonly annotation, as per this issue
    Open source →
  37. 2.0.0-nullsafety.5 21 Mar 2021 pre-release

    Nothing published for this version

  38. 2.0.0-nullsafety.4 21 Mar 2021 pre-release

    Nothing published for this version

  39. 2.0.0-nullsafety.3 08 Mar 2021 pre-release

    Nothing published for this version

  40. 2.0.0-nullsafety.2 28 Nov 2020 pre-release

    Nothing published for this version

  41. 2.0.0-nullsafety.1 28 Nov 2020 pre-release

    Nothing published for this version

  42. 2.0.0-nullsafety.0 28 Nov 2020 pre-release
    Release notes
    • Null safe migration
    • Formatting fixes to improve Pub Points
    Open source →
    Release notes
    • Null safety support
    Open source →
  43. 1.2.1 20 May 2020
    Release notes
    • Improved observe() API for ObservableList. We now get better change events with accurate details about what has changed. Thanks to @darkstarx for the PR (#490)
    • API docs update for reaction. Rewording the debouncing to throttle, since the behavior is more like throttling.
    • Syncing versions with pubspec.yaml
    Open source →
  44. 1.2.1+1 20 Jun 2020

    Nothing published for this version

  45. 1.2.1+2 07 Aug 2020
    Release notes
    • Reformatting for improving the pub.dev score
    • Regenerated the example files
    Open source →
  46. 1.2.1+3 09 Oct 2020

    Nothing published for this version

  47. 1.2.1+4 27 Oct 2020

    Nothing published for this version

  48. 1.2.0 13 May 2020
    Release notes
    • Added the ability to spy on changes happening inside MobX. You can now setup a spy() to see all these changes. See this for an example.
    • Simplified the handling of tests and coverage. We are no longer dependent on the test_coverage package, which was causing issues on CI.
    • A custom EqualityComparer<T> can now be specified for Computed<T>. This can be passed in with the equals parameter in the constructor.
    • Several documentation updates from various contributors.
    Open source →
  49. 1.1.1 24 Mar 2020

    Nothing published for this version

  50. 1.1.0 23 Mar 2020
    Release notes
    • FEAT: Adds support for annotations (#904).
    Open source →
    Release notes
    • All exceptions caught inside MobX reactions are now reported as MobXCaughtException. Previously they were reported as-is and that caused issues in flutter_mobx, where the stack traces were not visible. The stack trace is now being captured as part of the exception, so flutter_mobx can show the complete trace. This helps a lot during debugging.
    • MobXException now extends from Error to capture the stack trace. This is done because Dart only captures stack traces automatically for Error instances.
    • Bringing test coverage back to 98% in 1.1.1
    Open source →
    Release notes
    • Exceptions are reported more reliably with FlutterError.reportError. This also includes the stack trace, as all caught exceptions are now wrapped inside MobXCaughtException.
    • Syncing versions with pubspec.yaml
    Open source →
  51. 1.0.2 12 Feb 2020
    Release notes
    • Added @StoreConfig annotation (@hawkbee1)
    • Fixed to link to pt-BR translation on github
    • Fixed anchor link inside README.md
    Open source →
  52. 1.0.2+1 03 Mar 2020

    Nothing published for this version

  53. 1.0.2+2 10 Mar 2020

    Nothing published for this version

  54. 1.0.1 30 Jan 2020
    Release notes
    • Fix for ObservableMap not adding null values (#417), thanks to @Vardiak
    Open source →
  55. 1.0.0 28 Jan 2020
    Release notes
    • Ready for prime time!
    Open source →
    Release notes
    • Ready for prime time!
    • Fixing version resolution
    Open source →
  56. 0.4.0 29 Dec 2019
    Release notes
    • Removing the deprecated authors field from pubspec.yaml
    • Added extension methods to create an Observable{List,Set,Map,Future,Stream} from a regular List, Set, Map, Future, Stream. Thanks to the work done by Jacob Moura
    • README.md translated to Portuguese, thanks to Jacob Moura
    Open source →
  57. 0.4.0+1 30 Dec 2019

    Nothing published for this version

  58. 0.4.0+2 23 Jan 2020
    Release notes
    • README updates
    • Switching to Github Actions for all builds and publishing
    Open source →
  59. 0.4.0+3 24 Jan 2020
    Release notes
    • Going back to original test_coverage package
    • Some cleanups in the tests
    Open source →
  60. 0.4.0+4 25 Jan 2020

    Nothing published for this version

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