Key Concepts

Have you explored the Geocortex Mobile Designer?

The Geocortex Mobile Designer allows you to edit your application's layout, configure custom behaviors for buttons and other UI components, and solve complex business problems through Geocortex Workflow. Many use cases can be solved through the Geocortex Mobile Designer and don't require custom development.

Applications#

The core element of the Geocortex Mobile Framework is an Application. Applications are composed of three main pieces:

1. Layout XML that represents the visual layout of the application#

<?xml version="1.0" encoding="utf-8" ?>
<layout xmlns="https://geocortex.com/layout/v1">
<map config="default" />
</layout>

An layout is composed of components, such as a <map>, which are the conceptual building blocks of an application. Components can define their own UI, consume configuration, and can be nested and interact with other components.

Every component can have a config attribute; this attribute links a layout component to the app config.

2. App Config JSON for the application#

app/app.json
{
"schemaVersion": "1.0",
"items": [
{
"$type": "map-extension",
"id": "default",
"onInitialized": [
{
"name": "ui.alert",
"arguments": {
"message": "Hello World"
}
}
]
}
]
}

App Config files describe component configuration and other values relevant to application behavior. An app config file is composed of a list of app items. App items can correspond to components in the layout, portal items, or any other defined item type.

3. The Geocortex Mobile code which renders the layout and powers functionality#

The Geocortex Mobile Framework consumes layout and app config to create fully functional mobile-ready mapping applications. You can use this framework out of the box, or extend it using the Geocortex Mobile SDK.


These three pieces are the building blocks of an application, with the layout.xml and app.json files being the driving forces that control how an application looks, how it responds to user interaction, and what data it consumes. Extensive customization can be done simply by modifying these two files, without requiring any custom code.