Skip to content

5.2 Release Notes

Mobile Development Kit Client 5.2.7

This patch release provides the following minor update and important bug fixes.

  • Adding multiple attachments works properly in Android
  • Multiple duration pickers redraw correctly on scroll in a FormCell page in Android
  • Context binding works correctly in Tab Item, when triggering toolbar item onPress event from Tab parent page toolbar
  • Size of sap-icon is rendered correctly in certain Android device
  • Page redraw is refreshing correctly when device is in offline mode in iOS
  • App no longer crash on CreateMedia in certain situation in Android

Mobile Development Kit Client 5.2.6

This patch release provides the following minor update and important bug fixes.

  • App no longer crash when executing sync in Hungary (Magyar) language
  • Upgrade to SAP BTP SDK for Android version 3.3.7

Mobile Development Kit Client 5.2.5

This patch release provides the following minor update and important bug fixes.

  • OData initialization will no longer fail with BAD_ENCRYPTION_KEY error when user re-onboard after logging out
  • Pressing a "_blank" target link in the onboarding login will now open within the webview in iOS
  • App will no longer freeze when returning certain long text in the description of an Object Cell in iOS
  • Attachment's Photo Library selection dialog can be properly opened on modal page in iOS
  • App update can perform successfully when onboarded via some specific format QR code from Cloud Foundry
  • Styling can still applied correctly when class is only in light.less but missing in dark.less file
  • SimplePropertyFormCell & NoteFormCell cursor set to correct position after setValue is triggered in the rule
  • Mobile Development Kit dependency installer can work properly on specific Windows environments with permission constrain
  • Keyboard can be properly closed by pressing other part of the page in iOS
  • Documentation update for iOS ToolBar background style property
  • Upgrade to SAP BTP SDK for iOS version 5.1.19
  • Upgrade to SAP BTP SDK for Android version 3.3.6

Mobile Development Kit Client 5.2.4

This patch release provides the following minor update and important bug fixes.

  • Dialog will no longer be randomly closed after scanning barcode in iOS
  • Calling getSelectedItems in OnSelectionChanged will now return correct number of items in Android
  • Dynamic page generated via PageMetadata in the navigation action will now handle events and context correctly
  • Android AAB file will no longer contain additional sh language that cause Play Store rejection
  • Swipe Context Menu now support localization formatter
  • Upgrade to SAP BTP SDK for iOS version 5.1.16
  • Upgrade to SAP BTP SDK for Android version 3.3.5

Mobile Development Kit Client 5.2.3

This patch release provides the following minor update and important bug fixes.

  • Initial offline data sync lasting more than 10 minutes will no longer fails in iOS
  • Onboarding no longer fail in certain web view failure scenario in iOS
  • OnSwipe rules from an Object Cell now have the correct binding
  • App no longer crashes on double tapping button
  • App styles are now applied correctly
  • Swipe-To-Delete no longer causes app to crash
  • Text on search bar is easier to read in dark mode
  • Screen no longer flashes bright white screen in dark mode
  • Add Signature line is now rendered in the correct position
  • Colors are now updated correctly during Light/Dark mode switching using Control Center in iOS
  • Upgrade to Xcode 12.5
  • Upgrade to SAP BTP SDK for Android version 5.1.15

Mobile Development Kit Client 5.2.2

This patch release provides the following minor update and important bug fixes.

  • App crashes on Android 11 while a sync is running
  • SkipReset:true in Logout action on Android doesn't work
  • The alert window on Android throws a layout error
  • AllowDefaultValueIfOneItem causes OnValueChange Event to misfire
  • Key value cells and object cells don't have the right background color on iOS
  • Action Toolbar (bottom bar) is the wrong color in Dark Mode
  • Message on the banner is not fully displayed on Android
  • Text cursors are the wrong color on Android
  • No toast message or any messages on Android when device is registered successfully

Mobile Development Kit Client 5.2.1

This patch release provides the following minor update and important bug fixes.

  • OnPress event doesn't work on the ActionBar items that appeared after setActionBarItemVisible for Web application
  • KeyValue section not refreshing
  • OnLinkDataReceived is not triggered when app is running in background on Android
  • When closing a modal transaction after a partial upload, the app crashes on Android
  • After pending transactions of previous user is synced, the transactions are not displayed for current user on Android
  • Database is in inconsistent state in Android after doing certain operations on Android
  • App crashes when re-open the app if press back button on switch user page on Android
  • Connection Settings set through adb commands are not loaded the first time on Android
  • Current page reference is not returned correctly in Mobile Development Kit on Android
  • setActionBinding doesn't work in the OnLinkDataReceived handler on iOS device

Mobile Development Kit Client 5.2

Notable new or changed features for the Mobile Development Kit Client 5.2

New UI Controls

Multi-Select

Object Table now supports multi-selection mode.

It can be enabled via Selection > Mode property or via the setSelectionMode API in Object Table SectionProxy

You can also allow users to enable it via long press on any of the object cell item with the LongPressToEnable property

You can get all of the selected values via the getSelectedItems API or the last changed item via the getSelectionChangedItem

We have also provided two new events on Object Table that you can listen to:

  • OnSelectionChanged - This will be triggered whenever a user selects or deselects an item.
  • OnSelectionModeChanged - This is triggered whenever the selection mode changes, for example, from None to Multiple and vice versa, and allows the app to hide or show certain controls when in or out of selection mode.

Support Custom Accessory Icon in Object Cell

You can now provide custom accessory icon by setting AccessoryButtonIcon property or AccessoryButtonText (iOS only).

AccessoryButtonIcon takes precedence over AccessoryButtonText.

Defining these properties overrides the values defined for AccessoryType and ProgressIndicator.

The event for handling these is still OnAccessoryButtonPress

Note that this feature is currently only supported for iOS and Android, and not for Web applications.

Support KPISection

KPISection is a SectionedTable control that manages and displays the different Key Performance Indicators.

Enhancement

Multi User Support for Android

Mobile Development Kit Client now supports multi-user login capability. This allows a Mobile Development Kit Client app on a device to be securely shared across multiple users. For more details please see Multi User Support.

Supporting Themes With Multiple LESS Files

You can now provide multiple LESS files for different kinds of themes and you can switch between them at runtime.

We provide new APIs to help you switch between these themes:

  • SetTheme Action - Allows you to use action to set the theme in the application
  • ClientAPI setTheme - Allows you to use JavaScript function to set the theme in the application.
  • ClientAPI getAvailableThemes - Returns an array of available themes (it is based on the file name of the LESS files without the .dark / .light post-fix)

Supporting Dark Mode

SAP Mobile Services now supports dark mode in both iOS and Android by default. The UI automatically changes to dark mode when the device setting is changed to dark mode.

To allow your app to maximize the customization, you can also provide light and dark mode versions of LESS. You can also provide light and dark mode versions of images in the Images folder of your project.

For more details please see Dark Mode Support.

Note

There is currently no support to force the app to light mode, so make sure any extensions or custom styling are adapted to support dark mode when you upgrade to this version.

Data Subscription Enhancements

DataSubscription is now enhanced to redraw the UI more efficiently.

Operations Previous Behavior New Behavior
Create Entity Entire UI is reset. If the UI is a table bound with data binding, it is reset it to first page of data. Entire UI is redrawn. If the UI is a table bound with data binding, it is redrawn up to the last loaded page of data to keep the scroll position.
Delete Entity Entire UI is reset, if the UI is a table bound with data binding, it will reset it to first page of data Entire UI will be redrawn, if the UI is a table bound with data binding, we will redraw it up to the last loaded page of data to keep the scroll position
Update Entity Entire UI is reset, if the UI is a table bound with data binding, it will reset it to first page of data If the table has data binding, we will look for the cell that's bound to the same read link of the changed entity and refresh only that cell

You can now use Deep Link from a web page, email or from another app to launch the target app and then execute certain actions such as navigating to a page or may be approve a request.

For more details please see Deep Link Support

Web - Bottom Navigation Control

We are pleased to announce that Bottom Navigation control is now supported in the web runtime.

Web - Support Data Paging Loading Indicator

Web version now also supports DataPaging property.

You can enable the loading indicator and customize the text. The loading indicator appears as the user scrolls to the bottom of the list and the app starts loading the next set of data, and is dismissed when the next set of content is rendered.

For iOS only, use the Header UseTopPadding and Footer UseBottomPadding with Grid Table to add padding between sections.

Support Multiple Sections Search in Tabs Page in Android

Search is now supported across multiple searchable section controls in a Tab page. This is an enhancement over earlier release where Search would be disabled in case of more than one control in a Tab page for Android.

Support Data Paging on Last Section in Android

Android now supports data paging for last collection control in a SectionedTable. The order of the control is determined on the basis of there occurrence in the metadata. This is an enhancement over earlier release where paging would be disabled if there are more than one control in a SectionedTable. Here are some sample scenarios:

Scenario 1: In a SectionedTable I have the following sections:

  • Contact Table - This table will not be paging enabled
  • Object Collection - This table will not be paging enabled
  • Object Table - This table will be paging enabled

Scenario 2: In a SectionedTable I have the following sections:

  • Form Cell Section - Does not support paging
  • Button Table Section - Does not support paging
  • Object Collection - This table will be paging enabled

Scenario 3: In a SectionedTable I have the following sections:

  • Object Collection - This table will not be paging enabled
  • Object Table - This table will not be paging enabled because it is not the last section
  • Form Cell Section - Does not support paging

Support SkipReset Flag in Logout Action

Skip Reset flag in Logout action can be used to skip the client reset.

Support setSideDrawerButton Client API for SideDrawer

setSideDrawerButton API can be used to dynamically modify the DrawerButton for SideDrawer.

Support AlwaysShowDrawerButton in SideDrawer

AlwaysShowDrawerButton can be used to show DrawerButton on every page. In Android once this property is enabled, the back button would be hidden and instead hardware back button needs to be used.

Support of Rule for SideDrawer Items

SideDrawer Items now support rule, this now allows to generate items array during runtime.

Deprecate ActionBar Text Property

Text property in ActionBar is now deprecated and has been replaced with Caption.

Deprecate ToolBar Controls and Image Property

Controls array in ToolBar is now deprecated and has been replace with Items. Image property in ToolBar is now deprecated and has been replace with Icon.

Support Style Enhancements for Object Cells

Object Cells now supports couple of new styling properties

  • BackgroundColor - This can be used to style the background color for Object Cells
  • DetailImageText - This can be used to style the DetailImageText

Support isAppInMultiUserMode Client API

isAppInMultiUserMode API determines if the application is in single or multi user mode.

Support Rules for Result Object in Filter Page

Result object in Filter Page now supports rule. This allows further customizations to the filter and sorter values returned out of user selection. This also expands the current support for Filters and Sorter to unsupported controls such as DatePickerFormCell, SegmentedButtonFormCell and others. With-in the rule use the createFilterCriteria to create FilterCriteria object and finally return an array of FilterCriteria objects.

OData Service

New ODataProvider API

You can now get handle to OData provider via the ClientAPI.getODataProvider(serviceName).

This class gets information about the OData provider such as whether it's in offline mode (isOfflineEnabled()), or is initialized (isInitialized()).

For offline enabled OData provider, you can also get its offline parameters (getOfflineParameters()), where you can get or set its custom headers.

See ODataProviderProxy for more details.

Support EnableUndoLocalCreation and EnableRequestQueueOptimization Offline Options

  • EnableUndoLocalCreation undo local operations on an entity. For example if EnableUndoLocalCreation is enabled and create, update and delete operations are performed on an entity. While uploading all the 3 requests will be removed and therefore will not be sent to the service back end.
  • EnableRequestQueueOptimization combines multiple OData operations on an entity into one single operation. For example if EnableRequestQueueOptimization is enabled a create and multiple updates on an entity will be uploaded as one single create request.

Branded Client

Better Support for App_Resources Files Overrides

Added support to override only a part of resources files in <generated-project>/app/App_Resources. It is done by specifying your overriding files in the .mdkproject/App_Resources_Merge.

Files in the .mdkproject/App_Resources_Merge folder support merge (replace/add) for the following file types, other files will be overwritten.

See Overriding App Resources for more details.

Support ObfuscateEmail in BrandedSettings.json

ObfuscateEmail property can be used to obfuscate email address on the sign in screen. The default value of this flag is false. This property is supported on Android only.

Mobile Development Kit Editor 2104

Title Type Environment Description Available as of
Support Client 5.2 metadata New Neo (Web IDE) Support new metadata changes for Client 5.2 Apr 20, 2021
Support Client 5.2 metadata New CF (Business Application Studio) Support new metadata changes for Client 5.2 as Business Application Studio extension Apr 20, 2021
Support local run for Web applications New CF (Business Application Studio) Support local run for Web applications in Business Application Studio Apr 20, 2021

Last update: December 9, 2022