New Features
Given below are the new features of Version 9.0.
MQTT
•A MobileTogether solution can take part in an MQTT network as a publisher, subscriber, or both. The mechanism by which this participation is enabled is described in the section MQTT.
•Two new MQTT-related actions have been introduced: Publish MQTT Message and (Un)Subscribe to MQTT Topic.
•A $MT_MQTT page source has been added. It provides a data source in which message data can be stored..
•The OnMQTTReceive page event is triggered when an MQTT message is received for a subscription on that page. An action sequence can also be defined at the solution level for messages received on any page.
•You can also create server services for MQTT actions. This enables you to silently run MQTT actions from MobileTogether Server. To accommodate MQTT, server services functionality has been extended to include actions executed on receiving an MQTT message.
•For testing actions that are performed when an MQTT message is received, you can specify, in the Options dialog, a file that contains message data.
Broadcast
•A MobileTogether solution can take part in a MobileTogether broadcast network as a publisher, subscriber, or both. The mechanism by which this participation is enabled is described in the section Broadcasts.
•The mechanism underlying the Broadcast feature uses two actions: Publish Broadcast Message and (Un)Subscribe Broadcast Topic.
•When a solution receives a broadcast message, the message is stored in a dynamic variable named $MT_Broadcast.
•The actions to perform when a solution receives a broadcast message are specified in the page event OnBroadcastReceive and/or the Broadcast Actions of the project.
•For testing actions that are performed when a broadcast message is received, you can specify, in the Options dialog, a file that contains message data.
Actions
•The Switch and Case actions enable you to choose one set from several sets of actions to execute.
•Two new MQTT-related actions have been introduced: Publish MQTT Message and (Un)Subscribe to MQTT Topic.
•Two new Broadcast-related actions have been introduced: Publish Broadcast Message and (Un)Subscribe Broadcast Topic.
Databases
•When saving databases, a new option is available that enables all rows to be saved if anything in the table has been changed. The option is available in Save actions and the DB's page source context menu.
•When adding related tables to a DB structure, an option has been added to list tables even if they contain no rows.
•Native support has been added for MySQL and MariaDB. See Databases for details about DB support.
Controls
•Table controls can be designed with more structural flexibility and have a more varied mix of static and dynamic rows. Dynamic tables with repeating rows can be converted to repeating tables and have more than one table row group.
•In top-level Tables that contain row groups (for example, a row group of Person rows), actions can be executed when the end user makes a gesture on an individual row. A gesture on a table row may be one of the following: (i) swiping left or right or (ii) dragging (typically to a new position within the row group).
•Two dynamic local variables related to the dragging-and-dropping of table rows have been added: $MT_DragAndDropSource and $MT_DragAndDroptarget.
•Button control: Additional images have been added to the library of images that can be displayed on buttons (see the Button Image property).
InApp Purchases and AppStore Apps
•The InApp Purchases functionality has been updated to accommodate newer Android billing specifications.
•Input parameters for AppStore Apps can be specified via the app's SPL template, as a property of the SPL template's $Options object.
Variables and Functions
•User variables can now also be stored for server-only use. This option for user variables is in addition to those for client-only variables and variables that are available on both client and server.
•The MobileTogether Extension Function mt-has-serveraccess has been extended with a second signature that checks whether a client can access a specified server URL.
•The MobileTogether Extension Functions mt-hexBinary-to-string and mt-string-to-hexBinary each has been given a second signature that assumes UTF-8 encoding if no Encoding argument is supplied.
•When a solution receives a broadcast message, the message is stored in a dynamic variable named $MT_Broadcast.
•Two dynamic local variables related to the dragging-and-dropping of table rows have been added: $MT_DragAndDropSource and $MT_DragAndDroptarget.
•A new dynamic variable named $MT_UserMail has been added to hold the email address of the user currently used for server communications.
Interface
•You can select a classic, light, or dark theme for the application.
•The Help system has been reorganized to provide Online Help by default, with an option to use the locally installed PDF user manual as the alternative default.
Miscellaneous
•During simulations, the page source structure can be modified in the simulator's page sources pane (by adding new elements and attributes and/or by renaming elements and attributes). This enables you to try out different page source structures during simulation.
•When defining REST requests for an HTTP connection, you can specify connection and request timeouts.
•A new dynamic variable named $MT_UserMail has been added to hold the email address of the user currently used for server communications.
•A control template used to be able to be overridden by actions set on its parent placeholder control, but not by actions set on any higher-level ancestor placeholder controls if such overrides existed. From this release onwards, the overrides start at the outermost placeholder control and continue to be executed for each placeholder control lower in the hierarchy that has overrides defined for them.
•Trial Runs on Clients have been enhanced to enable text searches, including in trial runs on clients for Automated Testing.
•Settings have been added to define network settings, the XPath Debugger display, and the default Help format.
•Support for Android 14.
•Support for the following additional databases: PostGreSQL 15.1, Microsoft SQL Server 2022, Firebird 4. See the topic Databases for the full list of supported databases.