Official Content

Developing a native mobile Mini App with GeneXus is similar to developing any other application, with the caveat that there are some considerations and limitations to take into account.

Compatibility Issues

When it comes to developing a Mini App, you have the flexibility to choose the appropriate version of GeneXus, as it operates independently from the Super App. Each version of GeneXus has the capability to generate a specific metadata file (.gxsd) designed exclusively for mobile applications, and it can interpret various versions of these files.

While working with the Super App, it may be associated with a particular version X of the Super App Render, also known as GeneXus Flexible Client. On the other hand, the Mini App is generated using a specific version Y of the Super App Render that corresponds to the GeneXus version being used. It is important to consider that this configuration may result in compatibility issues in certain cases.

The version details can be found within the metadata, specifically in the "<main>.json" file, under the name "metadata_schema_version." This version number follows the format of MAJOR.MINOR.PATCH, consisting of three numbers.

It is worth noting that the Super App Render actively supports all MINOR and PATCH updates within a specific MAJOR version. Furthermore, when transitioning to a new MAJOR version, the Super App Render maintains compatibility with the previous MAJOR version. This allows for a smooth implementation process, eliminating the need to update both the Super App and all Mini Apps simultaneously. Each release of a new MAJOR version will indicate which previous version is no longer compatible.

To ensure seamless interoperability, the Super App Render will provide messages in cases where a Super App attempts to open a Mini App with a different version of metadata.

Security Issues

For security reasons, each Mini App must be sandboxed in order to prevent one Mini App from accessing the data of another. Therefore, some features available for application development have a particular behavior when executed as Mini Apps.

ClientInformation external object

The Id property of the ClientInformation external object returns a unique identifier for each Mini App.

ClientStorage external object

Each Mini App will have its own internal storage that cannot be shared between Mini Apps and the Super App.

When clearing the cache of a Mini App, either explicitly via API or implicitly with the expiration properties (by time or quantity), all cached information on the device about this Mini App is deleted. ClientStorage is a particular case of this.

If you need to keep this information in successive executions of the Mini App, you should consider the option of storing it server-side.

Design and UX

Design System

Colors defined in the "Application" Class, such as gx-accent-color and gx-action-tint-color, are not taken from the defined Mini App but from the Super App. This is an Android limitation; those colors are taken from the Style of the host application and cannot be changed dynamically.

Language settings

Language settings in Super App and Mini Apps operate independently.

When running the Super App, it adopts the Language set as the preferred one on the Device.

If SetLanguage() is executed at the Super App level, it won't impact the Language with which Mini Apps load; this will remain the default language of the Device. In the event of using SetLanguage() within a Mini App, this change applies only to that specific Mini App.

 

Last update: April 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant