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.7.0 will soon be available in the Apple App Store and Google Play 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:
Cards Collection Control
With this release, we are introducing a new UI control: Cards collection. A card collection provides brief, related pieces of information and serves as an entry point, teaser, or preview to more detailed content. By tapping on a card, users can select it and navigate to a dedicated page with comprehensive information.
The contents of a card are categorized into several areas:
The card system offers enhanced customization and flexibility, including adaptable sizing options to fit various form factors and card layouts such as:
Support Column Specific Editing in Data Table control
The MDK Data Table control now supports column specific editing in Data Table control. You can now set the EditType property to None for a column. That particular column will not be editable while other columns are editable. You can also use a rule to programmatically set cell-specific editing in the table.Editable Data Table on iOS and Android
Support Multiple Columns in a Form Cell Section
You can now define a multi-column layout in a FormCell Section displaying more FormCell controls in defined columns on the page.
"Layout": {
"NumberOfColumns": 3,
"MinimumInteritemSpacing": 20
}
Please note below behavior of the NumberOfColumns property
Caption Functionality for Note FormCell Control
Note FormCell control has been enhanced to support Caption and its associated styling options. For more information, refer to this document.
{
"Caption": "Note's Caption",
"_Type": "Control.Type.FormCell.Note",
"_Name": "FormCellControl",
"IsVisible": true,
"Separator": true,
"PlaceHolder": "Description",
"HelperText": "Please enter description",
"MaxNumberOfLines": 8,
"MinNumberOfLines": 2,
"Enabled": true,
}
Enable Multiple Attachments selection in Attachment Control
Attachment FormCell has been enhanced to allow users to select multiple files at once. This enhancement applies to both iOS and Android platforms.Adding multiple attachments on iOS and Android
Styling support for Banner Message and Progess Banner actions
You can now style the BannerMessage and Progress Banner actions with newly introduced styling properties:.
You can also style the different states (Progress/Completion) of the ProgressBanner individually.Banner Styling on iOS and Android
Progress Banner Styling on iOS and Android
Please note that the default style for BannerMessage has been updated: text and stripe color are now grey on iOS, and text color is grey on Android. Find more information, refer to the styling section for Banner Message and Progress Banner actions.
Additional Styling support for Icons and Images
With this release, we support background-color styling option for images and icons in the following MDK controls:
Accessing OData Service Metadata Document ($metadata)
We have added new methods to access the OData service metadata document file (.xml). This file can be used in the application to augment the business logic such as:
The getMetadata() API will return a new CSDLDocumentProxy, through which you can access the $metadata of both Offline and Online services. Once you have this proxy, you can execute the following methods via the proxy:
Export default function getOriginalText(context) {
//get OData service provider
let provider = context.getODataProvider('/MDK2407/Services/SampleServiceV4.service');
let csdlProxy = provider.getMetadata();
if (csdlProxy) {
alert('OriginalText for OData Service is: ' + csdlProxy.getOriginalText());
} else {
alert('Service is not initialised!');
}
}
To enable this, you need to define the following CSDLOptions:
//Offline
{
"DestinationName": "SampleServiceV4",
"OfflineEnabled": true,
"OfflineOptions": {
"CSDLOptions": [
"retainOriginalText",
"retainResolvedText"
]
}
}
//Online
{
"DestinationName": "SampleServiceV4Online",
"OfflineEnabled": false,
"OnlineOptions": {
"CSDLOptions": [
"retainOriginalText",
"retainResolvedText"
]
}
Update Cached Metadata
We have added a new API refreshMetadata() that checks the compatibility between the current and the $metadata from the backend server, then updates the $metadata if there is no conflict.
This API returns a promise with a boolean result indicating whether the $metadata was updated successfully. Any $metadata changes happening on the backend server after initializing the data service for the first time will not be reflected unless the users call the refreshMetadata API.
Streamlined Filter Criteria to OData Conversion
Access the instance of an Extension Control
Proxy Class for Button Table, Section Header and Section Footer
To allow better access of specific controls when executing rules, we are introducing below new Proxy Classes:
These classes support the following methods:
Additionally, all control and section proxy classes support the getParent method.
const className = context.constructor.name;
const name = context.getName();
const type = context.getType();
const parent = context.getParent();
Access to Section Header Items
Enhanced access to the Section Header items. This includes methods to enable/disable and hide/show items in a section header with new API functions:
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 |
---|---|
62 | |
22 | |
16 | |
12 | |
8 | |
8 | |
8 | |
7 | |
6 | |
6 |