Skip to content

What's New

What's New in Version 9.0

SAP BTP SDK for iOS version 9.0 supports iOS 15+ and Xcode 14.

Version 8.0.x will continue to support iOS 14 and Xcode 13.

Theming

Administrators can change the appearance of an iOS application by managing Application Themes in SAP Mobile Services.

The SAP BTP SDK for iOS SAPFioriFlows framework provides APIs to download and apply a theme from SAP Mobile Services. , i.e. SAPcpmsThemeManager and NUIStyleSheetApplyStep.

Projects generated by the SAP BTP SDK Assistant for iOS will use these APIs correctly out-of-the-box.

Fiori for iOS Version 9.0

FUISwitchFormCell

FUISwitchFormCell is updated with a new look and feel, including color, font, and size.

FUIStepperFormCell

FUIStepperFormCell is added as a new UI control allowing the user to increment or decrement a value.

FUIRangeSliderFormCell

FUIRangeSliderFormCell is added as a new UI control allowing the user to select range values from the slider, e.g. a range as "from 10 to 30".

FUISortFilterViewController

FUISortFilterViewController is added as a new View Controller, allowing the user to narrow down results from a long list by setting criteria. Users are able to reset filters and return to the initial list.

Collection View Cell Support

The following components are added to be used as UICollectionViewCell: FUISwitchCollectionViewCell, FUISimplePropertyFormCell, FUIInlineSignatureCollectionViewCell, FUIStepperCollectionViewCell, FUISegmentedControlCollectionViewCell, FUIListPickerCollectionViewCell, FUIRangeSliderCollectionViewCell, FUISliderCollectionViewCell, FUIOrderPickerCollectionViewCell, FUIRatingControlCollectionViewCell, and FUIButtonCollectionViewCell.

UITabBar Support for SAP Fiori Theming

An extension, applyFioriStyle(), is added to UITabBar to support SAP Fiori theming by default. Developers can also customize the theming using the .nssfile.

UINavigationBar Enhancement

FUIBarButtonItem is enhanced to add a few convenience init()s to return a newly initialized SAPFiori Style, UIBarButtonItem. It has the SAPFiori styles, font and color for title and icon, .quaternaryFill background color for .highlighted state, and a minimum 44x44 touch area.

FUIFilterFormCell Enhancement

The FUISegmentedControlFormCell feature has been combined with FUIFilterFormCell. FUIFilterFormCell can now support fixed and flexible button styles, as well as single and multiple selection mode. The check mark icon has also been added to improve accessibility.

Chart Color Update

Chart colors for chart1 to chart11 are updated.

Offline OData Library for SAP BTP SDK for iOS Version 9.0

  • Support "deep insert to many end" when the back end can respond with child entities in the same order as the request.
  • Support reporting client-side metrics in the mobile services cockpit, including total synchronization time, network time, server processing time, and success and failure count.
  • Initial support for OData 4.01.

What's New in Release 8.0

Fiori for iOS for SAP BTP SDK for iOS Version 8.0

Color Palette

The color palette has been updated to version V7. This version is now the default for all components.

Text Input

FUITextFieldFormCell is updated to support a new layout that allows the key and value fields to be stacked. It also supports a new state called isReadOnly.

Note Form Cell

Version 8.0 provides a new implementation of FUINoteFormCell, replacing the previous one. This implementation supports the cell height to be adjusted automatically to allow the entire content of the note form cell to be displayed.

Key Value Form Cell

Version 8.0 provides a new implementation of FUIKeyValueFormCell, replacing the previous one. This implementation provides a keyName field and an editable value text field, allowing the user to enter the value for this property. This implementation supports the cell height to be adjusted automatically to allow the entire content of the key value form cell to be displayed.

Data Table Card

FUIDataTableCardView now supports a new chart type to display the data as a table.

Object Header

FUIObjectHeaderView supports a new layout. It also supports additional new properties, including statusLayout, statusImageViewAlignment, substatusImageViewAlignment, kpiView, labelItems, numberOfLabelItems, etc.

Button

FUIButton provides new and enhanced functionality:

  • FUIButton has been updated to have a new look and feel.
  • New button styles, including Primary, Secondary, and Tertiary.
  • Button semantic attributes: normal, tint, and negative.
  • Image and icon on the button, along with the button label.
  • Button style dependent on control state, color scheme, and configuration change.
  • Button shadow that can be enabled and disabled by the application.

Onboarding

This version of the SDK provides the following onboarding features and functionality enhancements:

  • Enhanced passcode input field and new show/hide passcode mode.
  • New FUIButton styles.

Object Cell

FUIObjectTableViewCell has been updated to support a new layout, with changed location of tags, support for overlapped footnote icons, and overlapped avatar images for detailed image view.

Object Card

FUIObjectCardView is a new UI component that supports button-driven actions from the card. The card content supports displaying data for a business object, including title, subtitle, footnote status, detailImageView, and body.

List Card

FUIListCardView is a new UI component that supports button-driven actions from the card. The card content supports displaying data for a list of business objects.

Security

QR Codes can now be digitally signed in SAP Mobile Services so that the SAP BTP SDK for iOS verifies the signature before proceeding with the onboarding process. SAPFoundation.DigitalSignatureVerifier is a new class which can be used to verify any kind of signed data.

Feature Vector Policy (Feature Restriction Policy)

Using SAP Mobile Services, administrators can set feature flags (also called "feature restriction policies" on the server side) for applications. Starting with this version of the iOS SDK, you can use the two new classes, SAPcpmsFeatureVectorPolicy and SAPcpmsFeature, in SAPFoundation to read these policies (called "feature vector policies" on the SDK side).

Developers can retrieve the values from the info dictionary of OnboardingContext using sapcpmsFeatureVectorPolicies OnboardingInfoKey.

Authorization Code Grant Flow Using PKCE

The authorization code grant flow now supports PKCE (Proof Key for Code Exchange) to prevent authorization code interception attack. PKCE uses three parameters: code verifier, code challenge, and code challenge method. Developers set the code challenge method in the ConfigurationProvider.plist generated by the SAP BTP SDK Assistant for iOS. By default, S256(SHA256) is used as the code challenge method. The SAP BTP SDK for iOS also supports S512 and plain. SAP mobile service cockpit only supports S256 and plain methods.

Offline OData Library for SAP BTP SDK for iOS Version 8.0

  • Enhanced OfflineODataError and OfflineODataException.
  • Formatted some client error messages. Applications parsing these error messages may need to update their parsing implementation.
  • Support defining refresh order by SDK.
  • Support automatic client registration to mobile back-end tools.
  • Support undo pending changes with custom headers.

What's New in Release 7.0

SAP BTP SDK for iOS version 7.0 supports iOS 14+ and Xcode 13.

Version 6.0.x will continue to support iOS 13 and Xcode 12.5

M1 Support Update for 7.0

Use the SAP BTP SDK for iOS frameworks on Mac computers with Apple silicon without the need for Rosetta.

Cross-Context SSO with OAuth Update for 7.0

The cross-context SSO feature makes onboarding easier for users by transferring OAuth tokens from an established session to their mobile app built with the SAP BTP SDK for iOS.

For example, a user opens the SSO onboarding URL on their desktop. The user can open the native app, navigate to the QR code scanning screen, and scan the QR code before it expires. If successful, the native app will get onboarded automatically. The user does not have to enter their credentials again.

Application Versioning Update for 7.0

Administrators can activate or deactivate specific versions of an application in SAP Mobile Services. The SAP BTP SDK for iOS provides ApplicationVersionObserver in SAPFoundation and ApplicationVersionStep in SAPFioriFlows to stop the user from onboarding if the version of the application is inactive.

Lock App Based on Timeout in Passcode Policy Update for 7.0

Administrators can maintain a Lock Timeout as part of the passcode policy configuration in SAP Mobile Services. Previously this information was ignored by the SDK. Now the SDK will enforce this setting by calling ApplicationUIManaging.hideApplicationScreen(completionHandler:) (if implemented by the app) when the user leaves the app in background for longer than the lock timeout allows.

OData Library for SAP BTP SDK for iOS Version 7.0

OData CSDL documents with JSON Format Version 4.01 are now supported, including the corresponding new JSON payload syntax @xxx (instead of @odata.xxx) for OData instance annotations.

Offline OData Library for SAP BTP SDK for iOS Version 7.0

The Offline OData Library provides the following new functionality:

  • getLastDownloadTime() and getLastUploadTime() APIs for OfflineODataProvider.
  • setDefiningQueryGroups() API to group defining queries from the client side.
  • Default encryption support for the offline store.
  • Additional OData version 4 feature support: Collection-valued property.

Fiori for iOS for SAP BTP SDK for iOS Version 7.0

Feature Description
New color palette .latest palette version is v6.
New typeface Support for SAP 72 font family, a new typeface designed for SAP and SAP Fiori.
FUIListPickerFormCell Add a boolean property alwaysShowValueTextOnBottom to enforce showing value text underneath key label.
Remove contrast background Affected components: FUIObjectHeader, FUIProfileHeader, FUIKPIHeader, FUINavigationBar.
Large title The SDK enables a large title by default and provides default styles for the title.
FUIAttachmentFormCell Support for inline validation messages.
FUIEULAViewController Added a Boolean property, disablesConfirmActionUntilScrollingToEnd.
FUIOrderPickerFormCell A new type of form cell for picking the sorting criteria.
FUIHierarchyView Support for selecting items in the hierarchy view.
FUIDurationPickerFormCell Support for setting the duration to zero.
FUIPasscodePolicy Added lockTimeout, a new property for re-authenticating users after a period of time.
FUITimelineNowIndicatorCell A new type of timeline cell for indicating the current time in the timeline.
FUIInlineSignatureFormCell Provide additional customization options.

SAP BTP SDK Assistant for iOS for SAP BTP SDK for iOS Version 7.0

Feature Description
Generator CLI Added a CLI-based tool that generates the client side project using a single command.
Improved Security Added features to request a user's consent before accessing directories using the Assistant.

Additional Open Source Projects Update for 7.0

Feature Description
SAP Conversational AI (CAI) SDK for iOS Connect to a bot on the SAP Conversational AI chatbot platform using the open-source SAPCAI Swift package.
FioriAR Create AR annotations using the open-source FioriAR Swift package.
FioriSwiftUI Use SwiftUI components of the open-source FioriSwiftUI Swift package to augment and, in some cases, replace the UIKit-based implementation contained in the SAPFiori framework of the SAP BTP SDK for iOS.

Note

These Swift Packages are not distributed as binary frameworks.

What's New in Release 6.0

Security Update for 6.0

  • Introduced the Obfuscator module in SAPCommon for securing the storage and transmission of secret keys (API keys) in the application code.
  • Introduced SecurityManager and AuxiliaryCommunication components in SAPFoundation to enable secure and reliable communications between the app and the app extension processes.

Authentication Update for 6.0

  • Introduced support for anonymous access for mobile applications on Cloud Foundry using the new API Key Only method.
  • Added support for the API Key Only authentication method to the SAP BTP SDK Assistant for iOS.

See API Key Only (Anonymous Access) for details.

Crash Reporting Update for 6.0

  • Introduced crash reporting capabilities for mobile applications on Cloud Foundry.
  • Added support for generating an app with crash reporting capabilities in the SAP BTP SDK Assistant for iOS.

See Crash Reporting Overview for details.

Support for App Extensions Update for 6.0

  • Introduced SecurityManager and AuxiliaryCommunication components in SAPFoundation to enable secure and reliable communication between the app and the app extension processes.
  • Added support for creating widget extensions in the SAP BTP SDK Assistant for iOS.

See Widget Extensions for details.

Offline OData Library for SAP BTP SDK for iOS Version 6.0

  • Support to remove a non-stream defining query (a stream-defining query pertains to a downloaded media entity, and is only used to download a media stream) from the opened offline store when allow_defining_query_removal is enabled on the server.
  • Introduced new API getDefiningQueries from class OfflineODataProvider, which returns all existing defining queries.

See Removing Defining Queries for details.

  • Support OData version 4 with two new features:

    • Enum type
    • Stream property
  • Support OData version 4 with the following limitations:

    • OData Atom (xml) is not supported
    • Content-ID referencing in body and Content-ID referencing across change sets are not supported
    • Binds for a collection of value navigation properties in a PATCH request are not supported
    • Modification operations in batches outside of change sets are not supported
    • Bound actions and functions are not supported
    • Unbound actions and functions are not supported
    • Collection properties are not supported
    • Spatial types are not supported
    • Singleton is not supported
    • Derived entities are not supported
    • Containment navigation properties are not supported
    • $filter operations on date (such as add and sub) are not supported
    • System query options $search and $index are not supported
    • Built-in functions or literals: case, $level, $all, $each, $it, and $root are not supported
    • Upserting an entity is not supported

See OData Version 4.0 Support and Limitations for details.

  • Support localized progress default messages.

See Progress API for details.

Fiori for iOS for SAP BTP SDK for iOS Version 6.0

Floor Plan Update for 6.0

Floor plan provides a quick and easy way to build a full-screen list (FUIListFloorplan) or sectioned page (FUIObjectFloorplan) that complies with the List Report and Object patterns, respectively, in the SAP Fiori Design Guidelines.

See List floor plan and Object floor plan for details.

Chart Enhancement Update for 6.0

  • All chart types now support pinch and zoom.
  • Minor UI updates.
  • Performance improvement.

Color Palette Update for 6.0

Introduced a new palette (version 5) in which some existing color styles have been updated and new color styles for elevated colors have been added.

Chart in Object Header Update for 6.0

Enhanced FUIObjectHeaderChartView layout to better support long KPI text.

See the FUIObjectHeaderChartView API for details.

Passcode Screen Update for 6.0

Added new APIs in FUIPasscodeController for more customization options.

See the FUIPasscodeController API for details.

Grid Table Update for 6.0

Enforce column layout in compact mode by setting useColumnLayoutInCompact.

See the FUIGridTableViewCell API for details

Copyable Content Update for 6.0

Add the isContentCopyable API to enable/disable the ability to copy content in components conforming to the FUIContentCopyable protocol.

Multi-User Onboarding Screen Update for 6.0

Introduce FUIMultiUserPasscodeController to support the multi-user onboarding use case.

See the FUIMultiUserPasscodeController API for details.

SAP BTP SDK Assistant for iOS for SAP BTP SDK for iOS Version 6.0

  • Added an end-user license agreement (EULA) consent screen to the Assistant. For fresh installations of the Assistant, it is mandatory to consent to the end-user license agreement to be able to use the Assistant.

  • Added support for predefined sample destinations during app creation on Cloud Foundry. For building sample apps easily, sample OData destinations configured with a sample OData Enterprise Sales and Procurement Model (ESPM) service are available, for both OData V2 and V4.

  • Added improvements to the structure of the app generated by the Assistant. The app code has been separated into individual components/frameworks to make it easy to plug-in/plug-out individual components (such as generated proxy classes). Such modularization is also helpful in reusing code between the app and app extensions (such as app widgets).


Last update: October 12, 2022