flutter_vm 0.0.1+2 copy "flutter_vm: ^0.0.1+2" to clipboard
flutter_vm: ^0.0.1+2 copied to clipboard

A Flutter ViewModel implementation. Use Mixin for use in Statefull Widget or sample contructor for use in Stateless. This lib include UseCase.

example/lib/main.dart

import 'package:flutter/material.dart';

import 'pages/countdown_widget.dart';
import 'pages/future_increment_stream.dart';
import 'pages/future_increment_widget.dart';
import 'pages/login_mixin_widget.dart';
import 'pages/login_widget.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "ViewModel Example",
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("ViewModel Example"),
      ),
      body: Center(
        child: SingleChildScrollView(
          child: Column(
            children: [
              ElevatedButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => const FutureIncrementStream()),
                  );
                },
                child: const Text('Future Stream'),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => FutureIncrementWidget()),
                  );
                },
                child: const Text('Future Widget'),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => const CountdownWidget()),
                  );
                },
                child: const Text('Countdown'),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => const LoginWidget()),
                  );
                },
                child: const Text('Login UseCase'),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => const LoginMixinWidget()),
                  );
                },
                child: const Text('Login With Mixin ViewModel'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
150
points
2
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter ViewModel implementation. Use Mixin for use in Statefull Widget or sample contructor for use in Stateless. This lib include UseCase.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flutter_vm