mvvm_flutter 0.3.2

mvvm_flutter #

A new Flutter plugin.

Getting Started #

This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

[0.3.2] - Added sizeconfig class in base class for building dynamic screens

pub package join chat

The well-ordered and perhaps the most reusable way to organize your code is to use the 'MVVM' pattern. The Model, View, ViewModel (MVVM pattern) is all about how to organize and structure your code to write maintainable, testable and extensible applications.

Model − It simply holds the data and has nothing to do with any of the business logic.

ViewModel − It acts as the link/connection between the Model and View and makes stuff look pretty.

View − It simply holds the formatted data and essentially delegates everything to the Model.

see some example class for clear picture


mvvm_flutter_example #

Demonstrates how to use the mvvm_flutter plugin.

class PhotoView extends StatefulWidget {
  _PhotoViewState createState() => _PhotoViewState();

class _PhotoViewState extends BaseState<PhotoViewModel, PhotoView> {
  Widget build(BuildContext context) {

  void initViewModel() {
    model = PhotoViewModel();
//    model.doSomeNetworkCall();

  Widget stateWidgetBuilder(
      BuildContext context, ChildrenHolder childrenHolder) {
    return Scaffold(
        appBar: AppBar(
          title: childrenHolder.children[2] ?? Text("Photo"),
        body: InkWell(
          onTap: model.onChangeBackground,
          child: AnimatedContainer(
            duration: Duration(
              milliseconds: 300,
            color: Color(model.backgroundColor),
            child: Center(
              child: Card(
                child: Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Text(
                    "Background color :${model.colorName}",
                    style: TextStyle(fontSize: 20),

  List<Widget> reuseChildren() {
    return [
      Text("Hello 1"),
      Text("Hello 2"),
      Text("Hello 3"),
      Text("Hello 4"),
      Text("Hello 5"),
      Text("Hello 6"),

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  mvvm_flutter: ^0.3.2

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:mvvm_flutter/mvvm_flutter.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Feb 12, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.5
  • Flutter: 1.12.13+hotfix.7

Health suggestions

Format lib/mvvm_flutter.dart.

Run flutter format to format lib/mvvm_flutter.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
meta ^1.1.7 1.1.8
provider ^4.0.2 4.0.4 4.1.0-dev
Transitive dependencies
collection 1.14.11 1.14.12
nested 0.0.4
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies