The project mmm-ui-api
provides an abstraction API for user-interfaces (UI).
This allows to build a powerful UI independent of the actual toolkit.
You can write portable UI code that can run
-
as native JavaFx application using mmm-ui-fx
-
as web-app in the browser using mmm-ui-tvm
-
as mobile app for android devices using mmm-ui-android
-
as dummy implementation for automated unit tests using mmm-ui-test
-
…in the future we might implement more alternatives such as iOS or SWT
See our motivation or JavaDoc (click on the badge) for further details. In order to implement your client (with UI) you only need to depend on modules from this API. Therefore, you will typically build a module for your client that is portable. Dependencies to the implementation of this UI are only needed at runtime. You can create modules for each toolkit or technology you want support for your client where you add the dependency to the specific implementation and just one or few classes to bind and launch the client. Details how to do that can be found in the documentation of the actual UI implementation or you can have a look at our ui-demo.
The module mmm-ui-api-all
aggregates all api modules (see below for a detailed list).
Maven Dependency:
<dependency>
<groupId>io.github.m-m-m</groupId>
<artifactId>mmm-ui-api-all</artifactId>
</dependency>
Module Dependency:
requires transitive io.github.mmm.ui.api.all;
-
documentation (with all overview diagrams)
-
mmm-ui-api-core (fundamentals and base widgets)
-
mmm-ui-api-tab (tabbed panel to show sub-dialogs in tabs)
-
mmm-ui-api-number (all kind of numeric input widgets)
-
mmm-ui-api-temporal (input widgets for date and time)
-
mmm-ui-api-window (windows and popups)
-
mmm-ui-api-menu (menu-bar and navigation-bar)
-
mmm-ui-api-data (widgets to display datasets as tables and trees)
-
mmm-ui-api-chart (widgets to visualize data as charts)
-
mmm-ui-api-form (widgets for forms to edit data)
-
mmm-ui-api-format (widgets for structured formats such as source-code viewer or HTML editor)
-
mmm-ui-api-breadcrumb (breadcrumb bar)
-
mmm-ui-api-media (audio/video player)
-
mmm-ui-api-controller (controllers and navigation)
-
mmm-ui-api-binding (powerful data-binding)