Exhibition: Unterschied zwischen den Versionen

Aus Info-Theke
Zur Navigation springen Zur Suche springen
Zeile 4: Zeile 4:


= Motivation =
= Motivation =
Exhibition is a Flutter framework for developing an Flutter app very quickly.
'''Exhibition''' is a Flutter framework for developing an Flutter app very quickly.


= Glossary =
= Glossary =
* The '''dev-app''' is the Flutter application that should be developed with Exhibition.
* A '''module''' is an object normally stored in one database table. Example: the module '''Users''' handles data of a user who can login to the app.
* A '''module''' is an object normally stored in one database table. Example: the module '''Users''' handles data of a user who can login to the app.
* '''basic actions'' are: '''new''' ("create"), '''edit''' ("change"), '''list''' ("show overview") and '''standard''' ("user defined")
* '''basic actions'' are: '''new''' ("create"), '''edit''' ("change"), '''list''' ("show overview") and '''standard''' ("user defined")
Zeile 13: Zeile 14:
= Installation =
= Installation =
* clone the Git project exhibition from github
* clone the Git project exhibition from github
* create a Flutter project (with A
* create a Flutter project (with AndroidStudio). It is important to create the dev-app as neighbour of exhibition: If the base folder of exhibition is /home/ws/flutter/exhibition the base folder of the dev-app "myapp" is /home/ws/flutter/myapp.
 
 
= Workflow =
We use the module "Users" as example
* create a metadata description: lib/meta/users_meta.dart
<source lang="dart">
import 'module_meta_data.dart';
 
class UserMeta extends ModuleMetaData  {
  static UserMeta instance = UserMeta.internal();
  UserMeta.internal() : super('Users',
    [
      PropertyMetaData('id', DataType.reference, ':primary:', 'combo'),
      PropertyMetaData('name', DataType.string, ':notnull:', '', size: 64),
      PropertyMetaData('displayName', DataType.string, ':unique:notnull:', '', size: 32),
      PropertyMetaData('email', DataType.string, ':unique:notnull:', '', size: 255),
      PropertyMetaData('role', DataType.reference, ':notnull:', ''),
      PropertyMetaData('created', DataType.datetime, '', ''),
      PropertyMetaData('createdBy', DataType.string, '', '', size: 32),
      PropertyMetaData('changed', DataType.datetime, '', ''),
      PropertyMetaData('changedBy', DataType.string, '', '', size: 32),
    ],
    tableName: 'loginusers',
  );
  factory UserMeta(){
    return instance;
  }
}
</source>

Version vom 1. August 2021, 10:10 Uhr

Links

Motivation

Exhibition is a Flutter framework for developing an Flutter app very quickly.

Glossary

  • The dev-app is the Flutter application that should be developed with Exhibition.
  • A module is an object normally stored in one database table. Example: the module Users handles data of a user who can login to the app.
  • basic actions are: new' ("create"), edit ("change"), list ("show overview") and standard ("user defined")
  • A page is a dialog for exactly one basic action of a module. The page name is normally the name of the basic action, but can be changed. Normally each module has the pages new, edit and list.

Installation

  • clone the Git project exhibition from github
  • create a Flutter project (with AndroidStudio). It is important to create the dev-app as neighbour of exhibition: If the base folder of exhibition is /home/ws/flutter/exhibition the base folder of the dev-app "myapp" is /home/ws/flutter/myapp.


Workflow

We use the module "Users" as example

  • create a metadata description: lib/meta/users_meta.dart
import 'module_meta_data.dart';

class UserMeta extends ModuleMetaData  {
  static UserMeta instance = UserMeta.internal();
  UserMeta.internal() : super('Users',
    [
      PropertyMetaData('id', DataType.reference, ':primary:', 'combo'),
      PropertyMetaData('name', DataType.string, ':notnull:', '', size: 64),
      PropertyMetaData('displayName', DataType.string, ':unique:notnull:', '', size: 32),
      PropertyMetaData('email', DataType.string, ':unique:notnull:', '', size: 255),
      PropertyMetaData('role', DataType.reference, ':notnull:', ''),
      PropertyMetaData('created', DataType.datetime, '', ''),
      PropertyMetaData('createdBy', DataType.string, '', '', size: 32),
      PropertyMetaData('changed', DataType.datetime, '', ''),
      PropertyMetaData('changedBy', DataType.string, '', '', size: 32),
    ],
    tableName: 'loginusers',
  );
  factory UserMeta(){
    return instance;
  }
}