AppModel4Flow Library

An application model library for the Vaadin platform (Vaadin 11+), making it possible to separate the presentation and the model in the UI layer.

License

License

Categories

Categories

Net
GroupId

GroupId

net.pkhapps.appmodel4flow
ArtifactId

ArtifactId

appmodel4flow
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

AppModel4Flow Library
An application model library for the Vaadin platform (Vaadin 11+), making it possible to separate the presentation and the model in the UI layer.

Download appmodel4flow

How to add to project

<!-- https://jarcasting.com/artifacts/net.pkhapps.appmodel4flow/appmodel4flow/ -->
<dependency>
    <groupId>net.pkhapps.appmodel4flow</groupId>
    <artifactId>appmodel4flow</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.pkhapps.appmodel4flow/appmodel4flow/
implementation 'net.pkhapps.appmodel4flow:appmodel4flow:1.0.0'
// https://jarcasting.com/artifacts/net.pkhapps.appmodel4flow/appmodel4flow/
implementation ("net.pkhapps.appmodel4flow:appmodel4flow:1.0.0")
'net.pkhapps.appmodel4flow:appmodel4flow:jar:1.0.0'
<dependency org="net.pkhapps.appmodel4flow" name="appmodel4flow" rev="1.0.0">
  <artifact name="appmodel4flow" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.pkhapps.appmodel4flow', module='appmodel4flow', version='1.0.0')
)
libraryDependencies += "net.pkhapps.appmodel4flow" % "appmodel4flow" % "1.0.0"
[net.pkhapps.appmodel4flow/appmodel4flow "1.0.0"]

Dependencies

compile (3)

Group / Artifact Type Version
com.vaadin : vaadin-core jar
com.google.code.findbugs : jsr305 jar 3.0.2
org.slf4j : slf4j-api jar 1.7.25

provided (1)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.18.2

test (4)

Group / Artifact Type Version
junit : junit jar 4.12
org.assertj : assertj-core jar 3.11.0
org.mockito : mockito-core jar 2.21.0
ch.qos.logback : logback-classic jar 1.2.3

Project Modules

There are no modules declared in this project.

AppModel4Flow

AppModel4Flow is a library designed to make it easier to build complex user interfaces using server-side Java and the Vaadin platform. With complex user interfaces, I mean user interfaces where you have to be able to present and interact with the same data through different views and in different ways, or where the the user interface changes depending on what options the user selects, or where the user interface is backed by a complex model and not just a simple POJO.

The primary idea is to separate the "model" from the "presentation" and use bindings to bind these two together. The idea is not to hide the UI implementation from the model - AppModel4Flow is very much aware of Vaadin and it would not be usable with any other UI framework.

The inspiration behind this library comes from many places; JavaFX, the old Vaadin 6/7 ObjectProperty and also some personal experiences from various customer projects.

I have not actually tried this library out in a real-world application. It is based on ideas that I think should work and should be useful, but that remains to be seen. Any feedback is very much appreciated.

Prerequisites

AppModel4Flow is intentionally using the latest versions of everything since I wrote it with some of my hobby projects in mind and my hobby projects are almost always about teaching me new stuff. Therefore, you will need:

  • Java 10
  • Vaadin 11
  • A maven-version that works with Java 10 (I use 3.5.3 at the time of writing)

I have no plans to backport this library to any older versions of Java or Vaadin.

Maven Coordinates

Snapshots are uploaded to Sonatype every now and then. Releases are uploaded to Maven Central. My projects tend to get stuck in version 0.x since I can never decide when something is good enough to be released. This time I'm going to boldly go where I have not gone before and just release early and often. Anyway, here are the Maven coordinates (reviewed on October 23, 2018):

<dependency>
    <groupId>net.pkhapps.appmodel4flow</groupId>
    <artifactId>appmodel4flow</artifactId>
    <version>1.0.0</version>
</dependency>

Building

  • Clone this repository to your local computer.
  • Make sure you have JDK 10 installed and that Maven is using it (JAVA_HOME should point to the JDK 10 directory).
  • Invoke mvn clean install.

Demo Application

You can find a simple demo application here. It's a good starting point for getting an idea of what this library is all about.

Documentation

The documentation consists of a README-file and JavaDocs.

Incubator

There is an incubator-project that I use to try out new stuff. Never use this in real projects as it is extremely unstable. I also will not upload this to Maven Central.

License

This software is licensed under Apache 2.0.

Versions

Version
1.0.0