livo 1.0.0 copy "livo: ^1.0.0" to clipboard
livo: ^1.0.0 copied to clipboard

Live Objects — a reactive object-relationship state management layer for Flutter with field-wise and object-wise reactivity.

LIVO #

Pub Version License: MIT

LIVO — Live Objects
A reactive object-relationship state management system for Flutter with field-level, object-level, and relationship-based reactivity.


🧠 What is LIVO? #

LIVO (Live Objects) is a model-driven state management solution for Flutter.

Instead of managing state through providers, streams, or immutable snapshots, LIVO treats your Dart objects as live state.

  • Objects hold state
  • Fields are reactive
  • Relationships propagate changes automatically
  • UI stays in sync with minimal boilerplate

✨ Core Philosophy #

  • Models are plain Dart objects
  • State changes happen via normal field mutation
  • UI reacts automatically
  • No ChangeNotifier, providers, streams, or boilerplate
  • Supports:
    • Object-level reactivity
    • Field-level reactivity
    • Nested & shared models
    • One → Many and Many ↔ Many relationships

Think of LIVO as Live, connected objects driving your UI


✨ Features #

  • ✅ Reactive models with automatic UI updates
  • ✅ Object-wise reactivity (watch)
  • ✅ Field-wise reactivity (watchField)
  • ✅ Computed / derived reactivity (watchComputed)
  • ✅ ReactiveList & ReactiveMap
  • ✅ Nested & shared models
  • ✅ One → Many and Many ↔ Many relationships
  • ✅ Debug inspection support
  • ✅ Minimal boilerplate
  • ✅ No code generation required

🚀 Installation: #

dependencies:
  livo: <latest_version>

🧩 Basic Example: #

import 'package:livo/livo.dart';

class Task extends ReactiveModel {
  String _title;
  bool _completed = false;

  Task(this._title);

  String get title => _title;
  set title(String value) {
    _title = value;
    notifyListeners(#title);
  }

  bool get completed => _completed;
  set completed(bool value) {
    _completed = value;
    notifyListeners(#completed);
  }
}

🔗 Relationships #

  • One → Many
class Dashboard extends ReactiveModel {
  final List<Task> tasks;

  Dashboard(this.tasks) {
    for (final t in tasks) addNested(t);
  }
}

  • Many ↔ Many
class Group extends ReactiveModel {
  final String name;
  final List<Task> tasks;

  Group(this.name, this.tasks) {
    for (final t in tasks) addNested(t);
  }
}

🧭 Why LIVO? #

Traditional State LIVO
External stores State lives in objects
Boilerplate Minimal
Manual wiring Automatic propagation
Flat state Connected object graph

🔄 Migration Notice: #

This package replaces reactive_orm. #

reactive_orm has been deprecated and rebranded as LIVO to remove ORM/database confusion and better reflect its purpose as a state management system. #

Migration is simple: #

- import 'package:reactive_orm/reactive_orm.dart';
+ import 'package:livo/livo.dart';

📌 Summary: #

LIVO is ideal for: #

  • Model-centric Flutter apps
  • Fine-grained UI reactivity
  • Complex domain models with relationships
  • Clean architecture with minimal overhead
1
likes
160
points
--
downloads

Publisher

unverified uploader

Weekly Downloads

Live Objects — a reactive object-relationship state management layer for Flutter with field-wise and object-wise reactivity.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on livo