Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Flutter
  3. MobX

MobX

MITDartflutter_mobx-2.1.0

A reactive state-management library for Dart and Flutter apps using transparent functional reactive programming.

Visit WebsiteGitHubGitHub
2.5k stars318 forks0 contributors

What is MobX?

MobX.dart is a state-management library for Dart and Flutter applications that implements transparent functional reactive programming (TFRP). It automatically connects reactive data with the UI, eliminating the need for manual synchronization and reducing boilerplate code. The library helps developers manage application state efficiently by tracking observables and reactions.

Target Audience

Dart and Flutter developers building reactive applications who want a simple, automatic state-management solution. It's particularly useful for those familiar with MobX in JavaScript or seeking a less verbose alternative to other state-management patterns.

Value Proposition

Developers choose MobX.dart for its automatic dependency tracking, which reduces boilerplate and makes state management feel natural. Its integration with Flutter via the Observer widget and code generation for annotations provide a seamless and productive development experience.

Overview

MobX for the Dart language. Hassle-free, reactive state-management for your Dart and Flutter apps.

Use Cases

Best For

  • Building reactive Flutter applications with automatic UI updates
  • Managing complex state in Dart apps without manual synchronization
  • Reducing boilerplate in state management with code generation
  • Implementing transparent functional reactive programming in Dart/Flutter
  • Creating scalable state architectures for cross-platform mobile apps
  • Migrating from JavaScript MobX to Dart/Flutter ecosystems

Not Ideal For

  • Projects strictly adhering to immutable state architectures like BLoC or Redux
  • Small-scale applications where the overhead of observables and code generation isn't justified
  • Teams with build process constraints or aversions to code generation tools

Pros & Cons

Pros

Automatic Dependency Tracking

MobX.dart automatically wires up reactivity between observables and reactions, eliminating manual subscription management and reducing boilerplate, as emphasized in its TFRP philosophy.

Seamless Flutter Integration

Provides an Observer widget for granular UI updates in Flutter apps, ensuring the UI rebuilds only when observed state changes, which is showcased in the counter example.

Code Generation Efficiency

Uses mobx_codegen to generate boilerplate from annotations like @observable and @action, making state management less verbose and error-prone, as demonstrated in class examples.

Native Async Action Support

Handles asynchronous actions automatically without requiring extra wrappers like runInAction, simplifying async state updates, as noted in the README.

Cons

Maintenance Risks

The project openly seeks new maintainers, indicating potential instability in long-term support and updates, which could impact production use.

Code Generation Overhead

Reliance on mobx_codegen adds complexity to the build process, requiring developers to manage generated files and potentially slowing down development workflows.

Mutable State Approach

Embraces mutable observables, which can conflict with teams preferring immutable data patterns for better predictability and debugging in large applications.

Frequently Asked Questions

Quick Stats

Stars2,471
Forks318
Contributors0
Open Issues66
Last commit3 days ago
CreatedSince 2018

Tags

#dart#reactive-programming#app-development#ui#pub#frontend#flutter#reactive#mobx#functional-reactive-programming#state-management

Built With

F
Flutter
D
Dart

Links & Resources

Website

Included in

Flutter59.5k
Auto-fetched 1 day ago

Related Projects

BlocBloc

A predictable state management library that helps implement the BLoC design pattern

Stars12,450
Forks3,418
Last commit10 days ago
GetXGetX

Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.

Stars11,184
Forks1,845
Last commit5 days ago
RiverPodRiverPod

A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.

Stars7,286
Forks1,091
Last commit3 days ago
Get ItGet It

Get It - Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App. Maintainer: @escamoteur

Stars1,461
Forks159
Last commit3 months 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