view_model_divider 0.0.1-1.1.beta copy "view_model_divider: ^0.0.1-1.1.beta" to clipboard
view_model_divider: ^0.0.1-1.1.beta copied to clipboard

A new Flutter package that divide a business logic from a UI part of a widget.

View Model Divider #

View Model Divider is a Flutter package that provides a convenient way to manage view models and their lifecycle within your Flutter applications. This package includes a set of classes and utilities to streamline the integration of view models with your UI components.

Installation #

To use View Model Divider in your Flutter project, add the following dependency to your pubspec.yaml file:

dependencies:
  view_model_divider: ^1.0.0

Then, run flutter pub get to install the package.

Usage #

View Model Divider simplifies the creation and management of view models in your Flutter application. Here's a brief overview of how to use it:

Creating a View Model #

To create a new view model, simply extend the ViewModel class provided by the package. You can override lifecycle methods such as initState, didChangeDependencies, activate, deactivate, dispose, and reassemble to handle various aspects of your view model's lifecycle.

import 'package:view_model_divider/view_model.dart';

class MyViewModel extends ViewModel {
  @override
  void initState() {
    // Initialize your view model
  }

  // Override other lifecycle methods as needed
}

Integrating with UI Components #

Once you've defined your view model, you can integrate it with your UI components using the BaseView widget provided by the package. Pass your view model instance to the BaseView widget and implement the build method to build your UI.

import 'package:view_model_divider/view.dart';

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BaseView<MyViewModel>(
      vmFactory: (context) => MyViewModel(context),
      builder: (context, viewModel) {
        // Build your UI using the view model
      },
    );
  }
}

Example #

import 'package:flutter/material.dart';
import 'package:view_model_divider/view.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('View Model Divider Example'),
        ),
        body: Center(
          child: BaseView<MyViewModel>(
            vmFactory: (context) => MyViewModel(context),
            builder: (context, viewModel) {
              // Build your UI using the view model
            },
          ),
        ),
      ),
    );
  }
}

class MyViewModel extends ViewModel {
  @override
  void initState() {
    // Initialize your view model
  }

  // Override other lifecycle methods as needed
}

License #

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments #

  • Flutter Team: For creating an amazing framework.
  • Open-source community: For valuable contributions and feedback.

Support #

For any questions or issues, please open an issue on GitHub.


Note: This package is a simplified version for demonstration purposes. For a comprehensive view model solution, consider using other packages or implementing additional features as needed.

1
likes
150
points
23
downloads

Publisher

unverified uploader

Weekly Downloads

A new Flutter package that divide a business logic from a UI part of a widget.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on view_model_divider