meovm_bloc 1.1.0
meovm_bloc: ^1.1.0 copied to clipboard
A flutter_bloc integration package for meovm — lightweight MVVM framework for Flutter. Built-in dependencies between members, bunch of built-in members for common use cases, and minimum boilerplate approach.
import 'package:bloc_example/cubit.dart';
import 'package:bloc_example/vm.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:meovm/meovm.dart';
import 'package:meovm_bloc/meovm_bloc.dart';
void main() {
runApp(MeovmExample());
}
class MeovmExample extends StatelessWidget {
const MeovmExample({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(home: Home());
}
}
class Home extends StatelessWidget {
const Home({super.key});
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (_) => CounterCubit(),
child: BlocVmDispatcher(
factory: CounterVm.new,
param: CounterParam(step: 1),
child: Builder(
builder: (context) {
final vm = context.useVM<CounterVm>();
return Scaffold(
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('Positive'),
vm.positive.build(
builder: (context, _) =>
Text(vm.positive.data.toString()),
),
SizedBox(height: 32),
Text('Negative'),
vm.negative.build(
builder: (context, _) =>
Text(vm.negative.data.toString()),
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: vm.increment,
),
);
},
),
),
);
}
}