mvc_application 1.2.0

  • Readme
  • Changelog
  • Example
  • Installing
  • 86

MVC Application #

Build Status

A Flutter Framework using the MVC Design Pattern #

Installing I don't always like the version number suggested in the 'Installing' page. Instead, always go up to the 'major' semantic version number when installing my library packages. This means always entering a version number trailing with two zero, '.0.0'. This allows you to take in any 'minor' versions introducing new features as well as any 'patch' versions that involves bugfixes. Semantic version numbers are always in this format: major.minor.patch.

  1. patch - I've made bugfixes
  2. minor - I've introduced new features
  3. major - I've essentially made a new app. It's broken backwards-compatibility and has a completely new user experience. You won't get this version until you increment the major number in the pubspec.yaml file.

And so, in this case, add this to your package's pubspec.yaml file instead:

dependencies:
   mvc_application:^1.0.0

For more information on this topic, read the article, The importance of semantic versioning.

Please, turn to the article, MVC in Flutter, for now for more inforamtion. MVCFlutter

A secondary article is, A Design Pattern for Flutter, and the article, Flutter Faster! MVCArticles

For more information on the MVC in Flutter read, ‘Flutter + MVC at Last!’ online article

1.2.0 #

September 20, 2019

  • Provide List
  • class Controllers.of
  • Widget buildView(BuildContext context) {
  • class SetState and class Consumer

1.1.1 #

August 23, 2019

  • Add assert to SetState class

1.1.0 #

August 23, 2019

  • Remove setter from App.theme
  • Introduce class StateMVC and ControllerMVC in App
  • New function refresh() in view/App
  • InheritedWidget to AppView class
  • SetState class in App
  • Introduce static PopupMenuButton

1.0.6 #

August 13, 2019

  • ThemeData onTheme() => App.theme;
  • _theme ??= await App.getThemeData();

1.0.5 #

August 10, 2019

  • super.initApp(); in App class

1.0.4 #

July 21, 2019

  • Lenghthen description in pubspec.yaml
  • AppMenu.show(StateMVC state) in appmenu.dart
  • Remove reference to AppConMVC DeviceInfo and Theme in app.dart

1.0.3 #

July 21, 2019

  • Removed export 'package:sqflite/sqflite.dart';
  • Add sqflite: ^1.1.6+2
  • Add constraints in pubspec.yaml
  • Supply links to README.md

1.0.2 #

July 17, 2019

  • export 'package:prefs/prefs.dart' show Prefs;

1.0.1 #

July 17, 2019

  • Class App now in mvc_application/src/view/app.dart

1.0.0 #

July 16, 2019

  • Initial release to pub.dev

0.15.2 #

2019-03-19:

  • Supply the AsyncSnapshot in App.snapshot

0.15.1 #

2019-03-17:

  • final Widget loadingScreen;
  • uxutils.git in pubspec.yaml
  • Comment out _applicationParameters

0.15.0 #

2019-03-15:

  • Add named parameter loadingScreen

0.14.3 #

2019-03-12:

  • Moved ViewMVC to view/mvc.dart
  • Moved ModelMVC to model/mvc.dart
  • Update export file, mvc.dart

0.14.2 #

2019-03-09:

  • factory App(AppView view

0.14.1 #

2019-03-08:

  • dartfmt and show directive all code

0.14.0 #

2019-03-07:

  • get isInit; AndroidX dependencies

0.13.0 #

2019-03-01:

  • prefs: library package

0.12.1 #

2019-02-27:

  • 'package:mvc_application/src/controller/app.dart' show App, AppController;

0.12.0 #

2019-02-27:

  • delete export 'src/controller/app.dart';

0.11.0 #

2019-02-22:

  • Rename class AppView to AppViewState; AppState to AppView

0.10.0 #

2019-02-20:

  • class App extends AppMVC { class ViewMVC extends AppState {

0.9.1 #

2019-02-16:

  • mvc_pattern: in pubspec.yaml

0.9.0 #

2019-02-14:

  • static String get appName => _packageInfo.appName; await DeviceInfo.init(); Introduced DeviceInfo

0.8.1 #

2019-02-10:

  • showAboutDialog(); PackageInfo.fromPlatform(); show Prefs;

0.7.4 #

2019-02-09:

  • Color Theme Menu Popup

0.7.3 #

2019-02-09:

  • await Prefs.init(); get colorTheme => AppMenu.colorTheme;

0.7.2 #

2019-02-06:

  • class FieldWidgets

0.7.1 #

2019-02-06:

  • Removed class ConMVC, SDK Constraint to <3.0.0, keys() in class Item

0.6.0 #

2019-01-28:

  • Renamed the classes Controller and View to ConMVC and ViewMVC

0.5.0 #

2019-01-28:

  • if (_firstCon == null) _firstCon = this; get inDebugger in class App

0.4.0 #

2019-01-25:

  • factory _App({AppConMVC con, Key key}) {

0.3.0 #

2019-01-17:

  • Moved the class, Controller, into mvc.dart.

0.2.0 #

2019-01-17:

  • class AppView extends StateMVC Highlights UI while debugging.

0.1.7 #

2019-01-16:

  • _App super(con: null, key: key);
  • controller.dart export show StateListener;
  • fields.dart DefaultTextStyle get defaultTextStyle
  • mvc.dart MVC(AppView view, {Key key}) View() this.add(con);

0.1.2 #

2019-01-06:

  • Introduced the class, Field

0.1.1 #

2019-01-03:

  • export statements finalized.

0.1.0 #

2018-12-24:

  • Initial Development Release

example/main.dart

// https://github.com/fluttercommunity/flutter_contacts/tree/master/example
// https://pub.dartlang.org/packages/contacts_service#-readme-tab-

import 'package:flutter/material.dart' show runApp;

import 'package:mvc_application/mvc.dart' show App;

import 'view.dart' show ContactsExampleApp;

void main() => runApp(MyApp());

class MyApp extends App {
  @override
  createView() => ContactsExampleApp();
}

Use this package as a library

1. Depend on it

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


dependencies:
  mvc_application: ^1.2.0

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:mvc_application/app.dart';
import 'package:mvc_application/controller.dart';
import 'package:mvc_application/model.dart';
import 'package:mvc_application/mvc.dart';
import 'package:mvc_application/prefs.dart';
import 'package:mvc_application/settings.dart';
import 'package:mvc_application/view.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
72
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
86
Learn more about scoring.

We analyzed this package on Oct 17, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.5.1
  • pana: 0.12.21
  • Flutter: 1.9.1+hotfix.4

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.3.0 <3.0.0
connectivity ^0.4.0 0.4.5
dbutils ^1.0.0 1.0.0
device_info ^0.4.0 0.4.0+4
flutter 0.0.0
flutter_material_color_picker ^1.0.0 1.0.5
mvc_pattern ^3.0.0 3.5.0
package_info ^0.4.0 0.4.0+8
prefs ^3.0.0 3.0.0
url_launcher ^5.0.0 5.2.2
uuid ^2.0.0 2.0.2
Transitive dependencies
async 2.3.0 2.4.0
boolean_selector 1.0.5
charcode 1.1.2
collection 1.14.11 1.14.12
convert 2.1.1
crypto 2.1.3
matcher 0.12.5
meta 1.1.7
path 1.6.4
path_provider 1.3.1
pedantic 1.8.0+1
platform 2.2.1
quiver 2.0.5
shared_preferences 0.5.3+5
sky_engine 0.0.99
source_span 1.5.5
sqflite 1.1.7+1
stack_trace 1.9.3
stream_channel 2.0.0
string_scanner 1.0.5
synchronized 2.1.0+1
term_glyph 1.1.0
test_api 0.2.5 0.2.9
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test 0.0.0