hover to stop scrolling; click arrows to resume
view all quotes

UI & REST "for free"

Apache Isis dynamically builds both a generic UI and also a rich hypermedia REST API directly from the underlying domain objects. This makes for extremely rapid prototyping and a short feedback cycle, perfect for agile development. The UI can also be extended for specific use cases, and can be themed using Bootstrap.

See Apache Isis in action »

Domain-Driven

The core of an Apache Isis application are the domain objects, either persisted entities or view models. Business rules can be associated directly with domain objects, or can be factored out into separate services. Apache Isis performs dependency injection everywhere to ensure that the application remains decoupled.

Read the docs »

Add-ons (non ASF)

Apache Isis has a large number of github-hosted add-on modules for security, auditing, command profiling, mail merge and other cross-cutting concerns. It also has a number of UI extensions for maps, calendars etc. as well as a catalog of generic subdomains such as documents, communications, notes and tasks. All are open source and designed for out-of-the-box use or to fork as you require.

Check out the add-ons » and the catalog »


A typical application built with Apache Isis


Like all Apache Isis apps, the UI is dynamically built from the domain model. The screenshot below shows a demo "todoapp" (source code available on github)



The above screenshot shows the ToDoItem entity. An (optional) XML layout file provides metadata dividing the object members into rows, columns and tabs. Apache Isis also supports view models as well as entities, so you can also create dashboards, home pages and similar:



Apache Isis also provides a rich REST API with a full set of hypermedia controls. The framework provides two default representations, pluggable for other representations. The framework also automatically generates a Swagger spec to allow REST clients to be code-generated, and (for developers) exposes the REST API through the Swagger UI:

Getting started


Start developing your own Apache Isis application using either the minimal helloworld archetype or alternatively with the more structured simpleapp archetype.

To use the current production 1.x version (from a *nix bash shell):

mvn archetype:generate  \
    -D archetypeGroupId=org.apache.isis.archetype \
    -D archetypeArtifactId=helloworld-archetype \
    -D archetypeVersion=1.16.2 \
    -D groupId=com.mycompany \
    -D artifactId=myapp \
    -D version=1.0-SNAPSHOT \
    -B

or

mvn archetype:generate  \
    -D archetypeGroupId=org.apache.isis.archetype \
    -D archetypeArtifactId=simpleapp-archetype \
    -D archetypeVersion=1.16.2 \
    -D groupId=com.mycompany \
    -D artifactId=myapp \
    -D version=1.0-SNAPSHOT \
    -B
To use the beta 2.x milestone release, use:

mvn archetype:generate  \
    -D archetypeGroupId=org.apache.isis.archetype \
    -D archetypeArtifactId=helloworld-archetype \
    -D archetypeVersion=2.0.0-M1 \
    -D groupId=com.mycompany \
    -D artifactId=myapp \
    -D version=1.0-SNAPSHOT \
    -B

or

mvn archetype:generate  \
    -D archetypeGroupId=org.apache.isis.archetype \
    -D archetypeArtifactId=simpleapp-archetype \
    -D archetypeVersion=2.0.0-M1 \
    -D groupId=com.mycompany \
    -D artifactId=myapp \
    -D version=1.0-SNAPSHOT \
    -B

Adjust as necessary if using Windows.


Tutorial


... and this short tutorial should give you an idea as to how Apache Isis dynamically builds the UI:

 

hover to stop scrolling; click arrows to resume