I am happy to announce that a new release of the Mobile Development Kit(MDK) is available for all Mobile Services customers and can be downloaded on the SAP Software Center and also available on community Download page.
The SAP Mobile Services Client 24.11.0 has already been updated both in the Google Play Store and in Apple App Store.
SAP Mobile Development Kit enables developers and technical business users to build cross-platform mobile applications. It allows you to build your application once, in an integrated development environment (SAP Business Application Studio / VSCode extension) and run it natively on Mobile (Android & iOS).
Below enhancements are available only on iOS and Android platforms:
We have enhanced the existing MDK ActionBar to support additional functionalities. The new changes include the following:
For more information, refer to th ActionBar documentation.
Fiori ActionBar in an MDK App
We have introduced a new FormCell control called Label, which allows users to display multiple lines of free text while supporting various styling and display properties.
Note: This control is display-only, non-editable, a nd does not accept user input. The control displays a single body of text, and its associated properties are applied to the entire body of text. This control is supported in both FormCell Container and FormCell Section and works in both single and multi-column layouts. For more information, see this documentation .
FormCell Label Control in an MDK App
We have introduced a new FormCell control called MultiSorter. Compared to the existing control, this new control allows users to
For more information, see this documentation.
FormCell MultiSorter control in an MDK App
Until now, the built-in search functionality in MDK applied only to OData properties directly bound to the properties of the UI control, such as Object Cell. We have enhanced the built-in search to support:
For more information, see this documentation.
Note: Online Searches support contains or convert numeric values to strings using concat or cast, then apply contains. Offline Searches convert numeric values to strings using cast, then apply contains. (applies to OData V4 only).
Previously, an additional tap was required to select the time in the FormCell DatePicker control on iOS platform. With this release, you now need only one tap to display the time values.
A common scenario on Android devices is that users often need to choose third-party apps to open different file types after downloading them. With this release, however, it is now possible to open files such as PDFs, text documents, images, videos, audio files, and ZIP archives directly within a native file viewer on Android, without leaving the current application. For comparison, iOS has already has built-in support for these file types.
A new metadata property, UseExternalViewer, applicable to Android only has been introduced in the OpenDocument action. This property allows users to open a file from a specified location using a third-party application. By default, it is set to false, meaning the app will use the built-in file viewer on Android. For more information, see this documentation.
Built-in file viewer in MDK App on Android Platform
You can apply Linethrough and Underline styling properties in the Object Cells (Object Table and Object Collection controls). For more information, see this documentation.
Styling support in Object Cell in an MDK App
With this release, the Message Box action now supports customized styling. This style overrides semantic-based styling. The following are the properties of the custom style:
For more information, see this documentation.
Message Box Styling in an MDK App
For the Popover menu, users can set the whole menu's background color and adjust text alignment, font size, and other styles for title and message on both iOS and Android platforms. On the Android, users can also set the font color for the title and message. For more information, see this documentation.
For Popover menu items, users can set text alignment, font color, and icon's background color on both iOS and Android platforms. Additionally, on Android, user can also set the icon position(Leading or Trailing).
Popover Menu Styling in an MDK App
Key-value items’ visibility is now supported on both targeted and non-targeted sections.
Support for HelperText has been added to the following FormCell controls on the Android platform: DatePicker, ListPicker, Sorter, DurationPicker, and Segmented. When the HelperText property is set for these form cells, the helper text will be displayed if there is no validation view.
HelperText in an MDK App
The validationProperties for FormCell controls have been replaced with the Validation property. The validationProperties are now deprecated but still supported at runtime to maintain backward compatibility.
With this release, we are extending support for the .svg image type in the Actionbar and Fiori Toolbar on both iOS and Android platforms. The enhancement includes:
We are introducing a new MDK Action called Chat Completions, which connects to SAP AI Core and supports the /chat/completions endpoint.
Instead of calling an LLM API provided directly by an LLM service provider, SAP AI Core offers a unified way to access LLM APIs from the most popular LLM service platforms. SAP AI Core manages the AI model and ensures scalable deployment in enterprise applications, maintaining compliance and security. For more details on the available Generative AI models in SAP AI Core, See the documentation here.
The Chat Completion LLM API can address various scenarios, including:
Note: You should evaluate if the selected LLM provides suitable response for a given scenario.
In order to use the MDK AI action, follow these steps:
You can now override the default scanning capabilities in the MDK Client with any third-party scanner, such as a Laser Scanner, RFID Scanner, etc., providing specialized scanning functionalities. This feature is particularly useful in the following scenarios:
A new event, OnScanPress , is now available for controls such as SimpleProperty FormCell, Search Field in Collection Controls (Object Table, etc.), and Search Field in ListPicker. This event is triggered when the barcode scan button is pressed. It allows the app to implement custom scanning capabilities via a rule. When the rule is executed, the default barcode scan using on-device camera will not be triggered and the rule is expected to return a promise. If the promise is resolved with a string result, the search will carried out using that result string. If the promise is rejected, then it will fall back to use the default barcode scan using on-device camera.
The getName () method is now available for PageProxy to return the specified page name.
clientAPI.getPageProxy().getName();
Data Subscription is now supported for the FioriToolbar . When OData entities defined in the new DataSubscriptions property are updated, the FioriToolbar will automatically be redrawn. This property can be set via metadata.
The associated FioriToolbarProxy has been enhanced with two new methods:
To allow better access of specific controls when executing rules, we are introducing below new Proxy Classes:
The new and enhanced classes support these methods, with enhanced classes also retaining their existing methods:
getParent should return the parent proxy e.g. ObjectCellProxy's getParent should return ObjectTableProxy if it's contained in an Object Table.
In this release, we have enhanced the setStyle() client API to support nested controls. Previously, the setStyle() API only supported a single-level control view. For example, the MultiSortercontrol has the following style format:
Styles: {
"Caption": "CaptionStyle",
"MultiSorter": "MultiSorterStyle",
"Items": {
"DisplayValue": "DisplayValueStyle",
"DirectionLabel": "DirectionLabelStyle"
}
}
The setStyle()API could be used to set styles for Caption property in MultiSorter, but it would fail if you attempted to set a style for DisplayValue. With this enhancement, nested controls can now be specified using a slash (/) to combine the control names. For example, you can now use below to set the style for DisplayValue setStyle("<StyleName>", "Items/DisplayValue").
New to MDK development?
Follow these tutorials to get started and learn more about Mobile development kit!
I am looking forward to your feedback/comments.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
12 | |
11 | |
10 | |
9 | |
9 | |
8 | |
8 | |
7 | |
7 | |
6 |