Exhibition: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Links) |
|||
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 | * 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, 08: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;
}
}