User Interface#

Overview#

Situation#

User interfaces are cross-cutting concerns that also cut across APPXC features such that a user interface must be provided. However, user interfaces are susceptible to heavy customization conflicting with the APPXC scope to enable easy application creation.

Approach#

The APPXC core will (feature is pending) realize features based on a command-line interface (CLI) to enable lightweight executables and automated feature testing.

A GUI implementation based on tkinter is provided for all features while adding a lightweight framework approach (feature is pending) focusing on easy application creation.

To enable customization of user interfaces, features will define abstract UI classes as interface contracts, separating feature function from UI (feature is pending) and enabling full UI customization.

Notes#

Tkinter#

Since APPXC aims for easy application creation, a quick learning curve is essential such that tkinter was chosen as the basis (see also: pythonguis.com).

v0.0.4.dev4