What's New¶
What's New in Version 24.12¶
SAP BTP SDK for iOS version 24.12 supports iOS 17+ and Xcode 16.1.
Support for Lock and Wipe Policy Settings¶
The iOS SDK now supports automated lock and wipe actions based on policies defined in SAP Mobile Services. When thresholds are reached, such as inactivity or administrative directives, the app enforces actions like full reset (TRAFFIC_REG_WIPED) or re-authentication (TRAFFIC_REG_LOCKED) in response to server signals (HTTP 403 with x-message-code header). These policy checks are performed both at app launch and dynamically during app usage, ensuring robust data security in both online and offline scenarios.
To enable this feature, include SAPcpmsUserLockAndWipeConfigurationStep()
and SAPcpmsLockWipePolicyApplyStep()
in your onboarding and restoring steps and make any necessary additional configurations.
Enhanced Logout API¶
SDK has now introduced an enhanced logout API that not only logs user out from the server but also clears browser cookies, ensuring a seamless re-login experience after logout.
Usage:
AuthenticationController.shared.logout { error in
print("Error during logout:", error)
}
or
try await AuthenticationController.shared.logout()
Note: This feature is unavailable for widgets because they cannot launch a web view from within a widget.
Expiration Time for Refresh and Access Tokens¶
The SAPFioriFlows
framework now includes APIs to check the expiration timestamps of Refresh Tokens and Access Tokens, enabling better session management.
Usage:
AuthenticationController.shared.getRefreshTokenLifetime(urlSession: session) { expiryDate in
if let date = expiryDate {
// Handle the refresh token expiry date
print("Refresh token expires on: \(date)")
} else {
// Handle the error or nil response
print("Failed to fetch refresh token expiry date.")
}
}
AuthenticationController.shared.getAccessTokenLifetime { expiryDate in
if let date = expiryDate {
// Use the access token expiry date
print("Access token expires on: \(date)")
} else {
// Handle missing or invalid token expiry information
print("Failed to fetch access token expiry date.")
}
}
Enhanced Request Headers for Improved Client Information¶
The SDK now includes the following metadata in the headers of every request sent through SAPURLSession
:
- Device Model
- Platform
- Platform Version
- Client App ID
Client-only Entities Support¶
SAP BTP SDK Assistant for iOS now offers full support for OfflineOData
client-only entities, including previously unsupported local entities with draft capabilities. Key improvements include:
- Handling multiple entity sets that reference the same entity type.
- Automatically generating UI components that accurately reflect the structure of client-only entities.
- These updates deliver a more cohesive and user-friendly experience.
Handling Block User and Wipe Registration Responses¶
Applications generated with SAP BTP SDK Assistant for iOS now handle lock and wipe scenarios across all authentication types (except API Key). This includes support for user-blocked steps as directed by SAP Mobile Services policies.
Fiori for iOS Version 24.12¶
Rating Control Enhancement to Support Text Label¶
Added optional leading and trailing label to display key information such as rating value and review count. Additionally, added a feature to display half star, providing a more accurate representation of average ratings.
Object Cell Enhancement to Support Button Along with Status Field¶
Added support for a button and a status field. In single-line mode, the configuration for this button will be ignored, and it is recommended to use actionAccessoryType
for the object cell in this case.
Object Cell Enhancement to Support Rating Control¶
Added Rating Control as a field to show rating information.
Inset Grouped Style Support¶
Updated all the table view-related SDK controls so that the application can choose to configure its preferred style, e.g. FUIListPickerTableViewController(style: .insetGrouped)
Step Progress Indicator Enhancement¶
Added icon support for the node style of Step Progress Indicator.
Chart Color Updates¶
Updated 11 chart colors (chart1
to chart11
) and added a chart12
color.
Avatar Stack Enhancement to Support Trailing Label¶
Added support for a label field in avatar stack. The label position can be configured, as top, bottom, leading, or trailing.
KPIView Enhancement¶
Added dynamic type support for KPIView label field.
Feedback Pattern Support for Multiple Messages in BannerMessage
¶
Added support for multiple messages with different types in BannerMessage
. Messages can be filtered by category. Multiple messages of different types can be categorized.
Mandatory Field in Form Cells¶
The mandatory field indicator can be specified in form cells and collection view cells to denote fields requiring user input. In this release, this feature has been extended to additional cell types, including: FUIAttachmentsFormCell
, FUIAttachmentsCollectionViewCell
, FUIFilterFormCell
and FUIFilterFormCollectionViewCell
.
Mandatory Field Styling Configuration¶
Mandatory field styling can be configured through APIs, allowing customization of text, font, and color. This feature is available for all form cells and collection view cells that support mandatory fields.
Object Floorplan¶
- Breaking changes for
FUIObjectFloorplan
. For elements inFUIObjectSection
,any Hashable & Sendable
is needed instead ofAnyHashable
.
FUIContentUnavailableConfiguration
¶
- Added support for
FUIContentUnavailableConfiguration
which enablesFUIEmptyStateView
to support Apple'sUIContentConfiguration
API - Added search and loading presets to
FUIContentUnavailableConfiguration
Online OData Library for SAP BTP SDK for iOS Version 24.12¶
- Added more transformation items to support OData Aggregation, including identity, concat, join, and outer join.
- Improved query URL format by removing valid but unnecessary parentheses from the request URL.
- Enhanced
CsdlParser
to handlekeyless
entity types.
Offline OData Library for SAP BTP SDK for iOS Version 24.12¶
- Added support for basic OData aggregation functionalities, including sum, min, max, average, count,
countdistinct
aggregation, andgroupby
, top, bottom, concat, and filter transformations. - Added support for deep insert to many end cases where the backend may not return deep inserted entities in the response.
- Added support for asynchronous Swift functions in
OfflineODataProvider
.
What's New in Version 24.8¶
SAP BTP SDK for iOS version 24.8 supports iOS 16+ and Xcode 15.
Expanding visionOS Capabilities with SAP BTP SDK for iOS 24.8¶
Building on our previous release, we have expanded the capabilities of visionOS with the SAP BTP SDK for iOS version 24.8!
Our latest update introduces even more powerful features for spatial computing, enabling you to create both online and offline visionOS applications with ease. The SAP BTP SDK Assistant for iOS now handles all the onboarding-related code, allowing you to focus on crafting immersive and spatial experiences using SwiftUI
.
Here are some of the new components and services available on visionOS as part of version 24.8:
- Support for all authentication types
- Working with SAPOfflineOData
- Crash reporting
- Digitally signed QR code
- Cross-context SSO
- Attestation
- Application management policies (restrict print data policy, restrict open URL policy, clipboard protection)
Bytes API Support in SAPURLSession
¶
The SAPFoundation.SAPURLSession
now supports Apple’s bytes API. With this enhancement, you can retrieve the contents of a URL or URLRequest
as an asynchronous sequence of bytes.
To leverage this feature, create an instance of SAPURLSession
and register the corresponding SAPURLSessionObserving
. The SDK will handle both data retrieval and any necessary authorization, streamlining the entire process for you.
Enhanced SAP BTP SDK Assistant for iOS with Identity Authentication Service (IAS) Security Setting Support¶
With this release, the SAP BTP SDK Assistant for iOS allows you to create applications using the IAS security settings, in addition to the XSUAA settings. You also have the option to reuse the apps created in SAP Mobile Services with IAS settings. This not only streamlines the development process but also enhances security flexibility.
Customization of Localized Texts in FlowsLocalizedStrings
¶
SAP BTP SDK for iOS now allows application developers to provide custom localized texts for any properties within FlowsLocalizedStrings
. If no custom text is provided for a specific property, the default text from FlowsBundle
will be used.
Previously, the localized texts within FlowsLocalizedStrings
were internal and could not be modified by developers. With this update, the SDK offers greater flexibility, enabling full customization of all localized texts.
Enhanced Support for Complex Types in SAP BTP SDK Assistant for iOS Generated Applications¶
The SAP BTP SDK Assistant for iOS now offers full support for OData Complex Types. For instance, it supports the Address Type in the Customer Entity of the Sample Service. In the past, the Proxy Generator consistently created classes for these types. However, the UI, generated by the SAP BTP SDK Assistant for iOS, did not represent them effectively. With this enhancement, the SAP BTP SDK Assistant for iOS now generates UI components that logically and accurately reflect the structure of Complex Types in OData, providing a more cohesive and intuitive user experience.
Default Port Details in ConfigurationProvider.plist for SAP BTP SDK Assistant for iOS Generated Application¶
Previously, the SAP BTP SDK Assistant for iOS generated the ConfigurationProvider.plist file with a "port" entry only if the Application/Server URL explicitly included a port number.
However, with the latest update, the generated application includes "port" details in the ConfigurationProvider.plist by default. For HTTPS URLs, the port defaults to 443. For HTTP URLs, it defaults to 80.
Secure Store API's Available on watchOS¶
The SAPFoundation
framework provides Secure Storage APIs, such asSecureDatabaseStore
. These APIs are available for developing apps that run on Apple Watch.
Fiori for iOS Version 24.8¶
Sidebar Enhancement¶
We have enhanced the display style to offer a more engaging and streamlined appearance. We have also introduced an editable sidebar that allows you to reorder and manage the visibility of sidebar items.
Search Enhancement¶
We have added speech recognition support for FUISeachController
. We have also introduced a new property, searchStatus
to record the current status of the search field.
72 Font Semi Bold UI Update¶
We have updated the font weight to 72 Semibold
for the SDK components.
FUICardView
Enhancement¶
Skeleton loading is now supported for FUICardView
. We offer three loading styles for various scenarios: singleLine
, composite
, and simple
.
In Place Loading¶
We have introduced new designs for the progress indicator: FUICircularProgressBar
, FUIProcessingIndicatorView
, and FUIProgressIndicatorControl
.
We have also added support for loadingState
(unspecified, processing, success) in FUIButton
. When loadingState
is set to processing, an activity indicator will be displayed. When loadingState
is set to success, the success icon will be displayed.
FUIButton
Enhancement¶
Added support for vertical alignment of the icon and title.
FUILoadingIndicatorView
Enhancement¶
Added support for vertical alignment in FUILoadingIndicatorView
.
Enhanced Onboarding Screen with Illustrated Message¶
The Illustrated Message feature has been introduced to the onboarding screens to enhance visual content and messaging, thereby strengthening branding and improving user experience. This feature can be enabled via API on the Welcome, Authentication, Activation, and Passcode Screens. By default, the Illustrated Message is disabled but can be activated as needed.
Mandatory Field Indicator for Form Cell¶
The mandatory field indicator can be specified in form cells and collectionViewCells
to indicate that user input is required. When the isRequired
API is set to true
, an asterisk (“*”) will appear at the end of the cell title, showing that the field cannot be left empty. By default, this API is set to false
. This feature is supported in the following types of cells: FUITextFieldFormCell
, FUITextFieldCollectionViewCell
, FUINoteFormCell
, FUINoteCollectionViewCell
, FUIInlineSignatureCollectionViewCell
, FUIInlineSignatureFormCell
, FUIValuePickerFormCell
, FUIValuePickerCollectionViewCell
, FUIDurationPickerFormCell
, FUIDurationPickerCollectionViewCell
, FUIListPickerFormCell
, FUIListPickerCollectionViewCell
, FUIDatePickerFormCell
and FUIDatePickerCollectionViewCell
.
Third-Party Scanners for Scanning Flow¶
Introduced new APIs for ListPicker
and SearchBar
that allow the application to customize the scanning flow. These APIs enable developers to implement a handler for when the scan button is tapped and to revert to the default scanning flow as needed.
FUITimelinePreviewCollectionViewCell
¶
A new subclass of UICollectionViewCell
is now available to enable timeline previews in UICollectionView
.
Support Icon Image Customization for Error Message¶
A new API validationIcon
is available to allow the application to customize the icon image for validation messages. It can override the default icon image based on the message type.
Banner Enhancement¶
Introduced a new property for FUIBannerMessageView
to push the underlying content down, ensuring that the message banner does not cover any part of the content below.
Segmented Control Enhancement¶
FUISegmentControl
has been updated to use .primaryBackground
as backgroundColor
, and .primaryLabel
as tintColor
in the selected mode.
Avatar Stack for SAP BTP SDK for iOS Version 24.8¶
A new component FUIAvatarStack
has been introduced to maintain a group of avatars with a leading or trailing text.
Object View Enhancement¶
Introduced a new property footnoteIconsText
in FUIObjectView
to display leading or trailing text next to the footnote icons.
Object Header Enhancement¶
Added support for skeleton loading in FUIObjectHeader
.
Online OData Library for SAP BTP SDK for iOS Version 24.8¶
- Added support for the
$search
system query. - Implemented the
in
operator for the$filter
system query.
Offline OData Library for SAP BTP SDK for iOS Version 24.8¶
- Added support for OData open type.
- Added support for the
$search
system query. - Implemented the
in
operator for the$filter
system query. - Improved error messages for Offline OData.
- Added support for multiple parent entity sets to use a single entity type for containment.
What's New in Version 24.4¶
SAP BTP SDK for iOS version 24.4 supports iOS 16+ and Xcode 15.
Apple Vision Pro Support¶
Get ready to build apps for spatial computing with SAP BTP SDK for iOS version 24.4!
Use SAP BTP SDK Assistant for iOS to generate a new visionOS application. All the required onboarding-related code will be generated and you can focus on building spatial and immersive content with SwiftUI
.
The majority of the SAP BTP SDK for iOS binary frameworks were compiled to provide fundamental support for app development for Apple Vision Pro on visionOS.
Here are some of the fundamental components and services that are available on visionOS:
- Logging
- Networking
- Authentication
- Caching
- Secure data persistence
- Working with OData (online)
- User onboarding (including
WelcomeScreenStep
,EULAConsentStep
,UserConsentStep
,DataCollectionConsentStep
, andStoreManagerStep
)
Be aware that SAPFiori
supports only selected onboarding-related user interface components on visionOS, particularly the Welcome, EULA, and passcode-related UI components.
SAPOfflineOData
and SAPML
are NOT supported on visionOS.
Changed SDK Versioning Format¶
SAP BTP SDK for iOS has transitioned from the Major.Minor.Patch format to the Year.Month.Patch format to reflect the release timeline information of the version.
Support to Handle Errors in Case of Lock and Wipe Timeout¶
With the recent changes from SAP Mobile Services, a 403 response along with the X-MESSAGE-CODE header will be returned when the lock or wipe policy is set on in the cockpit and the policy threshold is reached. SAP BTP SDK for iOS will now intercept this error in lock and wipe timeout cases and show a suitable message to the user so they can handle this scenario accordingly.
Enhanced WelcomeScreenUI
for New Configuration Options¶
SAP BTP SDK for iOS enhances customization of Welcome screen UI components. The SAPFioriFlows.WelcomeScreenStep.WelcomeStepUI
protocol now allows setting all properties of SAPFiori.WelcomeScreenStep
.
Async Support for Existing SDK Completion-Handler-Based APIs¶
Added async support for APIs in the following SDK classes:
SAPFoundation.SAPcpmsSettings
SAPFoundation.SAPcpmsUserRoles
SAPFoundation.SAPcpmsRemoteNotificationClient
SAPFioriFlows.OnboardingSession
Fiori for iOS Version 24.4¶
Initial visionOS Support¶
Enabled the Onboarding, Welcome, EULA, and Passcode UI screen components to be available for visionOS.
Illustrated Message¶
FUIIllustratedMessage
is a new component that combines an image and a message to represent an error, success, or empty state.
The image can be scaled to a size category using the detailImageSize
parameter. The view can lay out its content along either a horizontal or vertical axis.
Onboarding Welcome Screen Enhancement¶
The Welcome screen is enhanced to optionally include legal agreement information, enabling users to access the details of legal documents and confirm their consent before the onboarding process can proceed. This functionality is facilitated by the introduction of the new API, 'isLegalAgreementRequired.'
Additionally, a new TextView
has been incorporated into the footer of the Welcome screen, providing access to the Terms of Service, if needed.
Checkout Indicator¶
Checkout Indicator (FUICheckoutIndicatorView.swift
) is enhanced to support the error state.
Linear Progress Indicator¶
A new feedback indicator (FUILinearProgressIndicator
) is added to present a linear progress bar with different styles (determinate
, indeterminate
, success
, and error
types). An icon and a description message can be used to provide more details about the progress.
Card Grid Layout¶
Two new UICollectionViewLayout
s, FUICollectionViewLayout.carousel
and FUICollectionViewLayout.masonry
, are added and can be used for cards.
Color System Enhancements as Color Palette V8
¶
Alongside ensuring consistent color alignment between SAP SAP Fiori for iOS and SAP SAP Fiori for Android, the iOS color system has undergone a revision to harmonize more effectively with Apple’s established color system and design principles, utilizing SAP SAP Fiori design system colors.
These enhancements encompass a comprehensive realignment of SAP SAP Fiori for iOS color styles to better adhere to the hierarchy of Apple’s system-provided colors. Notable adjustments include refinements to Label, Fill, and Background colors, as well as the introduction of Material Chrome for navigation bars, tab bars, and toolbars.
Data Table Enhancement¶
A new property, isReadonly
, is added for FUITableRowItem
, FUITableColumnAttribute
and FUITableItem
, to make a row, a column, or a cell not editable.
semibold
Font Style¶
New font styles, semibold
and semiboldDuplex
are added to the 72 Font Family for SAP SAP Fiori.
Offline OData Library for SAP BTP SDK for iOS Version 24.4¶
- Added support for OData singleton
- Added support for the default value of key properties
- Added support for the
Date
function for theEdm.DateTimeOffset
data type in OData queries - Enabled propagation of updated back-end metadata annotations to client devices
What's New in Version 10.0¶
SAP BTP SDK for iOS version 10.0 supports iOS 16+ and Xcode 15.
Restrict Print Data¶
SAP Mobile Services allows you to enable a Print Data Restriction Policy that disables printing functionality in the application. You will need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep
onboarding step from the SAPFioriFlows framework to your onboarding steps to enable this functionality. When the policy is enabled in SAP Mobile Services, SAPcpmsSecurityPolicyApplyStep
prevents the printing of an app's content.
Note that the SAP BTP SDK Assistant for iOS allows you to create a new project with a Print Data Restriction Policy and automatically adds the necessary onboarding step.
Restrict Opening URLs¶
SAP Mobile Services allows you to enable an Open URL Restriction Policy which disables opening of URLs within your application. You also need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep
onboarding step from the SAPFioriFlows framework to your onboarding steps. When the policy is enabled in SAP Mobile Services, SAPcpmsSecurityPolicyApplyStep
prevents the opening of URLs in external applications.
Note that the SAP BTP SDK Assistant for iOS allows you to create a new project with an Open URL Restriction Policy and automatically adds the necessary onboarding step.
OAuth2 Login Support for Action Extensions¶
SAP BTP SDK for iOS now provides SAPFoundation
APIs for OAuth2 authentication in Action extensions.
Improvements for Using Xcode 15¶
- Debugger Console: SAP BTP SDK for iOS has now added support for filtering by log level and logger name in the Xcode 15 debugger console.
- Digitally-signed Binary Frameworks: SAP BTP SDK for iOS provided
.xcframework
files will now include information about the signature such as the author's identity. If the signature has changed, your app's build will fail with an appropriate error message. This allows an app developer to confirm the identity and guarantees that the code has not been altered or tampered with after it was signed. - Privacy Manifests: All SAP BTP SDK for iOS frameworks now bundle a
PrivacyInfo.xcprivacy
file. Privacy manifests are a new way to provide information about SAP Mobile Services privacy practices. This information helps app developers accurately represent privacy in their apps.
Log Upload Improvements¶
SAPFoundation
now exposes a property, thelogUploadEnabled
flag, inSAPcpmsLogUploader.swift
. Setting this value totrue
ensures that the app developer can force upload logs irrespective of the log settings in mobile services cockpit. However, the configuration to upload the logs needs to be enabled in SAP Mobile Services for the operation to be successful.SAPFoundation
has added a new case inSAPcpmsLogUploaderError
with the name,.configurationNotEnabled
.
Breaking Changes: SAPFoundation
Since this is a new error which will be thrown when configuration to upload logs is not enabled in SAP Mobile Services, existing applications that have written specific code for SAPcpmsLogUploaderError.networkError
will break.
- SAP BTP SDK for iOS splits client logs into multiple files when recording logs but then reassembles them into a single upload file. That assembled file may exceed 64MB and will be rejected by SAP Mobile Services. SAP BTP SDK for iOS can now chunk these logs, respecting the 64MB upload limit when uploading client logs.
Async Functions in SAPFioriFlows.OnboardingSessionManager
¶
Added async support in SAPFioriFlows.OnboardingSessionManager
for the following APIs:
open()
removeSession()
lock()
unlock()
Enhanced CSRF Protection¶
Introduced SAPFioriFlows.SAPcpmsCSRFTokenConfigurationStep
for out-of-the-box support of CSRF Protection configuration in SAP Mobile Services. This is a public OnboardingStep
that app developers can use to register SAPFoundation.CSRFTokenObserver
.
Multi-User Online Project Generation in SAP BTP SDK Assistant for iOS¶
SAP BTP SDK Assistant for iOS now has the capability to generate a shared device (multi user) application with online OData support.
Sync Button for Offline App Generated by SAP BTP SDK Assistant for iOS¶
SAP BTP SDK Assistant for iOS adds a button when generating an offline app. End users can now synchronize offline OData manually and quickly without stopping and restoring the app like before.
Fiori for iOS Version 10.0¶
Form Cells Disabled State¶
- Added disabled state for
OrderPickerFormCell
,SignatureFormCell
, andAttachmentFormCell
- Updated the disabled state style for all types of form cells
Text Input Read-Only State¶
- For the
readonly
state ofFUITextFieldFormCell
,FUINoteFormCell
, andFUIKeyValueFormCell
, the value field bounding box outline is removed. The background color is updated.
New Key Value Component¶
- A new
UITableViewCell
subclass for displaying non-editable key-value pairs is added.
List Picker Form Cell¶
- Improved presentation and search behaviors.
Skeleton Loading¶
Support of showing skeleton loading if the data is not available yet.
Card¶
A new card system is introduced to be adaptable and extendable. The card includes multiple sections for media, main header, extended header, body and footer. While the SDK provides built-in UI components for extended header and body sections, an application can choose to add any type of UIView
to these sections, allowing the card content to be more customizable.
Calendar View Enhancement¶
- Supports three alternate calendars:
Chinese
,Hebrew
, andIslamic
. - Allows developers to add different event indicators.
Error Handling for Form Cells¶
- New style for
FUIInlineValidationView
to show a feedback message as a hint/error message. - API is enhanced to show the feedback message as error, info, or warning.
AttachmentCell
Enhancement¶
Adds three properties (title, subtitle, footnote) for attachment cells. Applications can use these properties to store and show any information, such as file size, etc.
Updated Fiori Icon Library¶
Fiori Icon Library is updated and more icons are included.
OData Library for SAP BTP SDK for iOS Version 10.0¶
- Fixed bug: Failed to download streams with multiple thread
- Fixed bug: iOS
DownloadStream
is not downloading in background completely
Offline OData Library for SAP BTP SDK for iOS Version 10.0¶
- Added support for the containment navigation property in OData
V4
- Added support for the key property reference in OData
V4
What's New in Version 9.2¶
SAP BTP SDK for iOS version 9.2 supports iOS 15+ and Xcode 14.
Multi-User Offline Project Generation in SAP BTP SDK Assistant for iOS¶
SAP BTP SDK Assistant for iOS now has the capability to generate a shared device (multi user) application with Offline OData support. Multiple users can onboard the same application and the pending changes of the previous users are allowed to be uploaded even after the user switch.
This Shared Device option is not available for online applications.
Device Compliance Detection¶
SAP Mobile Services allows you to enable a Compliance Policy to detect compromised devices. You also need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep
onboarding step from the SAPFioriFlows framework to your onboarding steps.
SAP BTP SDK Assistant for iOS allows you to create a new project with a Compliance Policy and automatically adds the necessary onboarding step.
When the policy is enabled, SAPcpmsSecurityPolicyApplyStep
initiates the check and reports the results to SAP Mobile Services. When compromised devices are detected, they are reported as a Mobile Device Security event, and appear on the User Registrations tab and in the Event Log.
Clipboard Protection¶
SAP Mobile Services allows you to enable a Clipboard Protection Policy to limit the exchange of information between apps. You also need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep
onboarding step from the SAPFioriFlows framework to your onboarding steps.
SAP BTP SDK Assistant for iOS allows you to create a new project with a Clipboard Protection Policy and automatically adds the necessary onboarding step.
When the policy is enabled, SAPcpmsSecurityPolicyApplyStep
restricts cut, copy, and paste between apps.
App Attestation: Debug Tokens for Testing¶
The App Attest service is not supported on iOS Simulator and Mac Catalyst. SAP Mobile Services has enhanced the ApplicationAttestationStep
and AttestationObserver
classes to enable development/testing with attestation-enabled applications on these platforms.
A debug token, which can be obtained from the mobile services cockpit is added to the request where App Attest is not supported. By ensuring the requirements on the client for using a debug token are met, your attestation-enabled application can work on iOS Simulator and Mac Catalyst. Using a debug token is also supported on physical devices if the requirements are met.
Client-only Entities in Offline¶
The client-only entities feature is an extension to Offline OData that enables the client application to load client-only metadata and perform OData CRUD operations on entity sets that do not exist in the OData back-end server. The term "client only" or "client-only" means that the entities exist in the client store only, and will never be uploaded to the back-end store.
Better Error Code When User Declines to Re-Authenticate¶
Change your error code handling if you use FioriWKWebViewPresenter
SAPFioriFlows
code returns FioriPresenterError.cancelled
(no longer FioriPresenterError.failed
) when the user declines to re-authenticate (by performing a cancel operation on FUIInfoViewController
) and the app uses FioriWKWebViewPresenter
as the presenter for OAuth2AuthenticationStep
.
Fiori for iOS Version 9.2¶
New Features for List Picker (FUIListPickerFormCell
, FUIListPickerCollectionViewCell
, and FUIListPickerTableViewController
)¶
When modal presenting the FUIListPickerTableViewControllerCell
from FUIListPickerFormCell
or FUIListPickerCollectionViewCell
on iPhone devices, the initial FUIListPickerTableViewController
will be presented in half modal sheet.
An option has been added to display an alert pop-up when isUndoEnabled
is true
and the user tries to cancel the selections.
An anchor button will be shown, as an option, when a user scrolls pass the Selected section of the FUIListPickerTableViewController
. The tableview
will be scrolled to the top when the button is tapped.
A new option has been added to display the selection checkmark on the trailing side (the default) or the leading side of the tableview
.
New Features for FUIDataTable
and FUIDataTableModel
¶
Paging support: when FUIDataTable
is scrolling, a new closure, didScroll
for FUIDataTableModel
, is provided to tell the app the current contentOffset
and the visible indexes of rows and columns. When the scrolling is reaching the end of the FUIDataTable
, developers can append new rows so that the scrolling can continue endlessly.
Update on Filter Feedback Bar (FUIFilterFeedbackControl
)¶
Minimal touchable height was adjusted from 38 to 44.
A new property, keepsItemOrderOnSelection
, was introduced for better accessibility support. When keepsItemOrderOnSelection
is true
, the selected items remain at the locations where the items are located before selection. When keepsItemOrderOnSelection
is false
, the selected items may be moved to the left. The default value of the keepsItemOrderOnSelection
property is false
. By default, the behavior is the same as release 9.1.
Step Progress Indicator¶
The FUIStepProgressIndicator
is a UIView
subclass that enables a developer to present linear step progress with an array of FUIStepItem
using the default Fiori indicator.
Example code:
// Create instances of `FUIStepProgressIndicator`.
let items: [FUIStepItem] = []
let view = FUIStepProgressIndicator(selection: "step id",
stepItems: items)
view.title.text = "step title"
view.primaryAction.setTitle("All Steps: 4)", for: .normal)
view.primaryAction.setImage(UIImage(systemName: "chevron.right"), for: .normal)
view.selectionDidUpdated = { [view] selection in
// handle new title for selected step
}
Accessibility Enhancement for FUIObjectTableViewCell
, FUIObjectCollectionViewCell
, and FUIObjectView
¶
The accessibility enhancement:
- Uses a combined accessibility element for its inner
FUIObjectView
. - Updates the accessibility elements sequence for
FUIObjectView
.
Character Counter for Form Cells¶
The new Character Counter feature is supported for text input in the FUITextFieldFormCell
, FUINoteFormCell
, and FUIKeyValueFormCell
form cells. This feature allows the developer to know how many characters have already been entered into the form cell, as well as enforcing a maximum number of characters allowed. The feature is enabled by setting isCharCountEnabled
and maxTextLength
, as described in the respective topics for FUITextFieldFormCell
, FUINoteFormCell
, and FUIKeyValueFormCell
.
There are two ways to behave when maxValueTextLength
is reached. One way is to allow the user to continue to input characters even after maxValueTextLength
is reached. This generates an error state with an error message and a semantic negative color. The other way is to auto-stop user input when maxValueTextLength
is reached. The allowsBeyondLimit
boolean value determines which behavior is expected.
Text Input Error Handling¶
This new feature supports displaying error messages for text input fields in the FUITextFieldFormCell
, FUINoteFormCell
, and FUIKeyValueFormCell
form cells. It allows the application to validate the user input and show an error message for user correction. The UI component will be shown in error state with title and border in the semantic negative color when the error flag has been set by an API or the character counter. The error message will be shown in the errorView
or validation message based on API settings.
Update Text Input Readonly
Design¶
This UX improvement has been applied to the text input field in FUITextFieldFormCell
, FUINoteFormCell
, and FUIKeyValueFormCell
. The outline around the bounding text box for readonly
state has been removed.
OData Library for SAP BTP SDK for iOS Version 9.2¶
- Support media/stream operations in
changeSet
within a batch.
Offline OData Library for SAP BTP SDK for iOS Version 9.2¶
- Added support for client-only entities and local drafts.
- Added support for media requests in
ChangeSet
. - Added support for Geography and Geometry types in OData 4.0.
- Added a new API to set the cache size for local databases.
What's New in Version 9.1¶
SAP BTP SDK for iOS version 9.1 supports iOS 15+ and Xcode 14.
Breaking Changes: SAPFioriFlows
If you are using the SAPFioriFlows framework, then you are affected by minor incompatible changes to the ApplicationUIManaging
protocol.
You must add a new argument, scene sessionID: String?
, to your implementation of functions:
- showApplicationScreen(completionHandler:)
- hideApplicationScreen(completionHandler:)
Example of your previous application code:
class ApplicationUIManager: ApplicationUIManaging {
func showApplicationScreen(completionHandler: @escaping (Error?) -> Void) {
// your code
}
}
You have to add scene sessionID: String?
as a new function argument:
class ApplicationUIManager: ApplicationUIManaging {
func showApplicationScreen(scene sessionID: String?, completionHandler: @escaping (Error?) -> Void) {
// your code (no changes required unless you want adopt Multi-Window support)
}
}
Project Generation in SAP BTP SDK Assistant for iOS With Async/Await APIs¶
SAP BTP SDK Assistant for iOS version 9.1 will generate Xcode projects with code that leverages the new, modern Swift async/await APIs that SAPOData and SAPOfflineOData frameworks have adopted.
For new projects, we recommend that you use async/await APIs, and therefore this is now the default behavior.
Adopting async/await for existing offline applications requires additional changes in your application code as OfflineDataServiceAsync
introduces new/changed APIs.
Opt-out if you are not ready to adapt your existing code
You will be able to opt-out if you need to generate projects and OData proxy classes using the legacy completionHandler
-based APIs.
App Attestation¶
SAP Mobile Services allows a provider to integrate with Apple's App Attest service. This helps the server to identify whether requests have come from a legitimate instance of an application. Access to back-end resources can be granted or rejected based on this determination.
When using the ApplicationAttestationStep
onboarding step from the SAPFioriFlows framework, the application interacts with the SAP Mobile Services's provider to obtain an attestation of the app or device's authenticity.
Apps implementing user onboarding without SAPFioriFlows can leverage the underlying AttestationObserver
from the SAPFoundation framework.
You can enable the app attestation feature in the SAP Mobile Services app configuration during app creation using the SAP BTP SDK Assistant for iOS. The attestation settings in the cockpit are then used in the generated Xcode projects.
Push Topic Subscription¶
Applications created using the SAP BTP SDK for iOS can subscribe to specific push notifications based on a user's topics of interest, such as patches, new features, or security, for example. Topics may be considered to be part of the relationship between mobile apps and the notification producer for those given topics. The SDK supports customizing this relationship by allowing users to subscribe to certain topics while ignoring others. This helps app users remain interested in device notifications.
Use SAPFoundation.SAPcpmsRemoteNotificationClient
to subscribe/unsubscribe to topics, as well as get all active subscriptions.
Multi-Window Support Using SceneDelegate
¶
Beta
The multi-window support feature is presently in beta mode and may undergo incompatible changes in terms of APIs and generated code in subsequent releases. With this early access, developers can prototype and provide feedback before the feature gets finalized.
Multi-window support using SceneDelegate
provides the ability to make use of SceneDelegate
to create and manage multi-window apps. This feature enhances and introduces new APIs in SAPFoundation, SAPFioriFlows, and appropriate code changes in the generated code as well.
Projects generated by the SAP BTP SDK Assistant for iOS version 9.1 will use these APIs correctly out-of-the-box.
During onboarding, a single scene will be responsible for the onboarding process, while other scenes, if any, will wait until the onboarding process is completed successfully. If the current onboarding scene gets closed or terminated, one of the other scenes will assume the responsibility and restart the onboarding process. Similarly, a single scene will be responsible for handling the passcode screen, while other scenes if any, will wait until the passcode has been entered. If the current passcode scene gets closed or terminated, one of the other scenes will assume the responsibility and display the passcode screen.
After onboarding/entering the passcode successfully, each scene will have its own view of the app.
Fiori for iOS Version 9.1¶
FUIToolbar
¶
FUIToolbar
is supported as a subclass of 'UIToolbar', which displays the UIBarButtonItem
array in the Fiori style.
FUITimelinePreviewTableViewCell
, FUITimelineCell
, and FUITimelineMarkerCell
¶
Timestamp and content have been repositioned to improve look and feel. Also, there are new icons for the node type.
A new property, version
, allows you to render according to the behavior of the previous release.
FUIDataTableCardCollectionViewCell
¶
UI styles, including font and size, have been updated. In addition, the layout has been updated for certain font sizes to support better accessibility. If the font is xxxLarge
or higher, the layout will be changed from two columns to one column.
FUIEmptyStateView
¶
FUIEmptyStateView
is added to support a view that does not contain actual data. Developers can define this view's properties (title, body, image, etc.) to display
more meaningful messages to end users. Also, a button is available to allow developers to define what action can be taken on this view.
FUIPrivacyNoticeViewController
¶
FUIPrivacyNoticeViewController
is added to display a permission screen to show the user the reason for requesting permission.
FUIDataTable
¶
FUIDataTable
is enhanced to support editing the data table cell. Refer to FUIDataTable
for information on the data types that can be edited.
Fiori Icons¶
A new set of Fiori-based icons are added to this release. These icons are designed based on SAPUI5 SDK icons and provide a consistent user experience between mobile and Web apps.
New UICollectionViewCell
Components¶
The following components are added to be used as UICollectionViewCell
: FUIFilterFormCell
, FUITitleFormCell
, FUIDurationPickerFormCell
, FUIDatePickerFormCell
, FUIAttachmentsFormCell
,
and FUIValuePickerFormCell
.
Offline OData Library for SAP BTP SDK for iOS Version 9.1¶
- Added support for not populating the relationship data for a referential constraint. For a navigation property with a referential constraint, there is no need to download the relationship data, as the relationship can be determined through the referential constraint in the client SDK. This can help to decrease the database size and improve the speed of the initial download.
- Added upload and download failure events into the
EventLog
entity set. - Added support for
async
styleOfflineDataService
APIs.
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 .nss
file.
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
andOfflineODataException
. - 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()
andgetLastUploadTime()
APIs forOfflineODataProvider
.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 inSAPCommon
for securing the storage and transmission of secret keys (API keys) in the application code. - Introduced
SecurityManager
andAuxiliaryCommunication
components inSAPFoundation
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
andAuxiliaryCommunication
components inSAPFoundation
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 classOfflineODataProvider
, 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
- OData Atom (
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
andV4
. -
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).