FioriSwiftUI

4.0.0

SwiftUI implementation of the SAP Fiori for iOS Design Language.
SAP/cloud-sdk-ios-fiori

What's New

4.0.0

2024-04-11T23:38:32Z

4.0.0 (2024-04-11)

⚠ BREAKING CHANGES

  • Model-based initializer is removed from ObjectItem. In the future, all components will only have two types of initializers: ViewBuilder-based and type-based initializers.
  • The type of action parameter in ObjectItem's type-based initializer is changed from Action to FioriButton.

Features

  • [HCPSDKFIORIUIKIT-2504]Color updates for Dimension Selectors (#654) (1da6a93)
  • [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (fa72d55)
  • [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (db508b6)
  • [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (547a9cc)
  • [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (8b5c87c)
  • [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (18c33a4)
  • [JIRA: HCPSDKFIORIUIKIT-2488] SwiftUI InformationView (ValidationView) (#636) (96b6220)
  • [JIRA: HCPSDKFIORIUIKIT-2497] [New Color System] Search Bar (#657) (27a1aef)
  • [JIRA: HCPSDKFIORIUIKIT-2508] [New Color System] Sort & Filter Form (#663) (9a6b56e)
  • 🎸 [HCPSDKFIORIUIKIT-2452] Add vertical layout style modifier to Illustrated Message (#655) (4b268b6)
  • 🎸 [HCPSDKFIORIUIKIT-2452] Illustrated Message (#641) (09ad197)
  • 🎸 [HCPSDKFIORIUIKIT-2452] Make image size selectable from a list of options (#661) (2ff2d40)
  • 🎸 [HCPSDKFIORIUIKIT-2481] new mobile card (#648) (6bbb9d4)
  • 🎸 [HCPSDKFIORIUIKIT-2481] New Mobile Card (#665) (df4a0b9)
  • 🎸 [HCPSDKFIORIUIKIT-2503] [New Color System] Contact Item (#675) (e4af6df)
  • 🎸 [jira: FIORIUIKIT-2409] [New Color System] Data Table (#653) (9300a74)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2224] New FioriButtonStyle support (#603) (4890872)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (a2ce7c5)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2444] Update to include more icons (1198da1)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2447] navigation bar migration (#615) (26ae03e)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2453]DataTable readonly support (#626) (05b5a86)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2458] Linear Progress Indicator (#668) (32bcec9)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2459] Tab Bar (#621) (ba03a23)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2480] masonry layout (#676) (09df111)
  • 🎸 [JIRA: HCPSDKFIORIUIKIT-2559] list style configurable (#674) (376fdb1)
  • 🎸 [JIRA:0] TextInputInfoView for TextInput (#645) (674ccd9)
  • 🎸 [JIRA:HCPSDKFIORIUIKIT-2458]Linear Progress Indicator and TextInputInfoView (#639) (a6c77ea)
  • 🎸 [JIRA:HCPSDKFIORIUIKIT-2460] SwiftUI NoteFormView (#656) (90e8de7)
  • 🎸 [JIRA:HCPSDKFIORIUIKIT-2540] Filter Feedback (#666) (a214ead)
  • 🎸 [JRIA:HCPSDKFIORIUIKIT-2460] TextInput form cells (#669) (20e62c7)
  • 🎸 HCPSDKFIORIUIKIT-2505 Update PageIndicator Color (#650) (23a99f1)
  • 🎸 jira 2286 sort & filter (#606) (6b3eef6)
  • 🎸 jira HCPSDKFIORIUIKIT-2297, add chrome and chrome2 colors (#640) (ed61fc5)
  • 🎸 styleable helper text and more action in toolbar (#658) (8a55277)
  • 🎸 support 72 semibold style (#652) (3cbb1f2)
  • 🎸 toolbar migration (#634) (d859007)
  • jira HCPSDKFIORIUIKIT-2461 SwiftUI Migration: Search (#623) (e1fe82c), closes #622
  • merge visionOS branch into main (#622) (d7f3978)

Bug Fixes

  • 🐛 [bcp: 0] fix crashes on VisionOS caused by strokeBorder (#601) (44de9bd)
  • 🐛 [bcp: 0] fix DataTable's sizeThatFits() for dynamic type (12759ee)
  • 🐛 [bcp: 0] fix ObjectItem bug in a widget view (4c3e275)
  • 🐛 [bcp: 0] remove background in ObjectHeader (#614) (f1763fc)
  • 🐛 [bcp: 2370136916] fix width mode for DimensionSelector (#610) (088aef8)
  • 🐛 [BCP:0] Adding back sr-Latn-RS.lpoj folder (#673) (046c2e7)
  • 🐛 [BCP:0] try to fix project folder name (#672) (eb66672)
  • 🐛 [BCP:2370082757] Fix SignatureCaptureView VO issues (#602) (6d09d0f)
  • 🐛 [IOSSDKBUG-67]DataTable blinks redline when toggling mod (#643) (41309df)
  • 🐛 adding missing constants to allCases (#627) (41e3f8d)
  • 🐛 fix a selectin ui bug and update doc in DataTable (#629) (19a945f)
  • 🐛 simultaneous gesture is not triggered in voice over (#599) (24ca365)
  • adding missing macro back (#628) (27e9466)
  • re-arrange color definition sequence, asked by designer (#635) (772e488)
  • update icon image name to fiori.text.colour (#616) (67b64dd)

Logo
SwiftUI implementation of the SAP Fiori for iOS Design Language


Installation   |   Examples   |   API Documentation   |   Changelog


Build and Test Status Check Maintainability Rating CII Best Practices Conventional Commits Commitizen friendly REUSE status


This project is the SwiftUI implementation of the SAP Fiori for iOS Design Language, and is meant to augment and in some cases replace the UIKit-based implementation contained in the SAPFiori framework of the SAP BTP SDK for iOS.

alt text

This project currently contains three modules: FioriThemeManager, FioriSwiftUICore, and FioriCharts.

FioriThemeManager

FioriThemeManager platform support: iOS, visionOS, watchOS

This module provides a color palette and a new font family SAP 72 that conform to Fiori Design Language. It is adopted by all the Fiori components in both this package and SAPFiori.

All Fiori Colors are dynamic colors, which means they will adjust based on iOS Appearance settings (Light/Dark). Accessing Fiori Color using Color.preferredFioriColor(forStyle:).

72 is a SAP patent typeface that delivers great reading experience to our users. You can get these fonts using Font.fiori(forTextStyle:) or Font.fioriCondensed(forTextStyle:). Note that these fonts support Dynamic Type out of the box. If you want the fonts with fixed size, use Font.fiori(fixedSize:) or Font.fioriCondensed(fixedSize:) instead.

Custom fonts need to be loaded and registered during App's runtime. Make sure you call Font.registerFioriFonts() inside application(_:didFinishLaunchingWithOptions:) of your AppDelegate.

FioriSwiftUICore

FioriSwiftUICore platform support: iOS and visionOS

This module contains SwiftUI implementation for those UIKit-based components existing in SAPFiori. It provides you with an easy way to migrate your UIKit project to SwiftUI while delivering the same experience as before.

We plan to progressively bring more Fiori UI components into this module in the future releases. Check the table below for the components that are currectly available and those in the roadmap.

Refer to this document for different ways of initializing the component.

FioriSwiftUICore
ObjectItem
ObjectHeader
KPIItem
FioriButton
ListPickerItem
DimensionSelector
SideBar
DataTable
WelcomeScreen
ActivationScreen
InfoView
User Consent Form
KPIProgressItem
EULAView
ContactItem
KPIHeader
Signature Capture
DurationPicker
StepProgressIndicator
KeyValueItem
TimelineItem
TimelinePreviewItem
ChartFloorplan
ProfileHeader
CollectionItem
BarcodeScanner
PasscodeView
MultiUserPasscodeView
TouchIDErrorView

FioriCharts

FioriCharts platform support: iOS and visionOS

The FioriCharts module replaces the RoambiChartKit charting library which was already embedded in SAPFiori. Migrating to SwiftUI gives the ability to easily add new chart components (donut, bullet, stocks, etc.) while modernizing the existing supported charts with pinch-to-zoom, pan, and new design features.

SAPFiori 4.0.x, 5.0.x FioriCharts
Area
Line
Column
Stacked Column
Bar
Stacked Bar
Bubble
Scatter
Waterfall
Combo
Donut
Bullet
Stacked Bullet 🔜
Harvey Ball
Radial
Stocks (line)

The API is designed for backwards compatibility to the existing SAPFiori charting APIs, but is optimized for SwiftUI.

API Reference

Requirements

  • iOS 15 or higher
  • Xcode 14 or higher
  • Swift Package Manager

Download and Installation

The package is intended for consumption via Swift Package Manager.

  • To add to your application target, navigate to the File > Swift Packages > Add Package Dependency... tab, then add the repository URL.
  • To add to your framework target, add the repository URL to your Package.swift manifest.

In both cases, xcodebuild tooling will manage cloning and updating the repository to your app or framework project.

Configuration

Three products are exposed by the Package.swift manifest.

FioriSwiftUI as umbrella product will contain everything the package has to offer in the future.

If you are concerned about bundle size you can use either one of the individual products, e.g. FioriCharts or FioriThemeManager

Limitations

Several functional limitations exist at present, which are planned for resolution in future releases. Please check the Issues tab for an up-to-date view of the backlog and issue status.

Key gaps which are present at time of open-source project launch:

  • FioriCharts requires design specifications to improve UI

Known Issues

See Limitations.

How to obtain support

Support for the modules is provided through this open-source repository. Please file Github Issues for any issues experienced, or questions.

When SAPFiori integrates FioriCharts productively, customers should continue to report issues through OSS for SLA tracking. However, developers may also report chart-related issues directly into the Github Issues; SAP will mirror FioriCharts-related issues reported through OSS into Github Issues.

Contributing

If you want to contribute, please check the Contribution Guidelines

To-Do (upcoming changes)

See Limitations.

Examples

Functionality can be further explored with a demo app which is already part of this package (Apps/Examples/Examples.xcodeproj).

Demo app with examples

Description

  • Swift Tools 5.7.0
View More Packages from this Author

Dependencies

  • None
Last updated: Thu Dec 19 2024 11:51:25 GMT-1000 (Hawaii-Aleutian Standard Time)