This article intends to be a guideline of best practices when designing apps for the GeneXus ecosystem. Developers will appreciate this!
Content
Avoid default layer naming. Instead, describe what it is representing.
Example.
Do |
 |
Don't |
 |
Also, avoid extremely large names or names with non-alphanumeric characters (always start with alphabetical characters).
Group everything that should be together. A group will represent a table container for the controls you have defined.
Example.GroupingGrouping
Do |
 |
Don't |
 |
If the content you place in your design does not change, use Static convention.
Example.
Do |
 |
Don't |
 |
Avoid defining the appearance of each element in your design. Instead, try to define Layers or Text Styles for reusing them on multiple elements. Also, define Color Variables when you use the same color multiple times.
Example.
Do |
 |
Don't |
 |
Avoid making multiple copies of a group of elements in different artboards. Instead, conceptualize your groups and define symbols for them which should be overridden when necessary.
Example.
Do |

Where the symbol defined by Button Confirm is as follows:

. |
Don't |
 |
Labels for user input should be defined by the Static convention. If you have a complex control (e.g. radio-button), the label must be defined outside the group that contains the control drawing itself.
Example.
Do |
 |
Don't |
 |
A background layer must be defined by using colored Rectangles (Shape) or Images (exportable in case you want multiple resolutions). In both cases, the background item name must be suffixed with a "Background" substring.
Example.
Do |
 |
Don't |
 |
Every formatted text-layer must have a single format (e.g. a single color) because GeneXus will set a single theme-class for it. In case you start formatting substring, a single format will be taken into account. You should consider splitting a text-layer in case you require different formats.
Example.
Do |
 |
Don't |
 |
These sections apply as of GeneXus 17.
Generators |
.NET, .NET Core, Java, Android, Apple , Angular |
|