Skip to main content
FioriSwiftUICore is the SwiftUI implementation of the UIKit-based components from SAPFiori. It gives you a migration path from UIKit projects to SwiftUI while preserving the Fiori design language and user experience.
FioriSwiftUICore targets iOS 17.0+ and visionOS 2.0+. Add it to your project via Swift Package Manager using the FioriSwiftUI umbrella product or the FioriSwiftUICore product directly.

Component availability

The table below lists all components currently available in FioriSwiftUICore.
ComponentAvailable
ObjectItem
ObjectHeader
KPIItem
FioriButton
ListPickerItem
DimensionSelector
SideBar
DataTable
WelcomeScreen
ActivationScreen
InfoView
User Consent Form
KPIProgressItem
EULAView
ContactItem
KPIHeader
Signature Capture
DurationPicker
StepProgressIndicator
Text Input
Validation View
Card
Toolbar
Search
Tab Bar
Navigation Bar
Stepper
Switch
Tag
Avatar
Toast Message
KeyValueItem
LinearProgressIndicator
Information View
TextFieldFormView
NoteFormView
KeyValueFormView
TitleFormView
Rating Control
RatingControlFormView
SortFilter
Menu Selection
ProfileHeader
TimelineItem
SegmentedControlPicker
TimelinePreviewItem
DateTimePicker
Illustration Message
Slider (single and range)
Attachment
FilterFeedbackBar
Switch FormCell
Onboarding Scan View
Section Header
BarcodeScanner
Skeleton Loading
Value Picker
Hierarchy View
Calendar
Progress Indicator
Processing Indicator
Checkout Indicator
Loading Indicator
ChartFloorplan
CollectionItem
PasscodeView
MultiUserPasscodeView
TouchIDErrorView
Search To Select
Feedback Screen
Map

Initializer patterns

Every component in FioriSwiftUICore supports two kinds of initializers:
  • ViewBuilder (ResultBuilder) initializer — pass closures for each field. Use this when you need full control over the appearance of individual fields, or when a field should display something other than text (for example, an image as a title).
  • Type-based initializer — pass plain Swift values such as AttributedString, Image, and TextOrIcon. Use this for straightforward data binding from your model layer.
See Initialization patterns for a detailed explanation and side-by-side examples.

Styling

Every component and every sub-component within it is independently styleable via the .fioriStyle() modifier and per-component style protocols such as ObjectItemStyle and CardStyle. See Styling components for a full walkthrough.

Component categories

ObjectItem

Display structured object data with title, status, images, icons, and tags.

KPI components

Present key performance indicators with KPIItem, KPIHeader, and KPIProgressItem.

Card

Composite card layout with media, header, body, and footer sections.

Form views

Data-entry components including text fields, note editors, key-value rows, and switches.

DataTable

Grid and list table view for structured tabular data.

Charts integration

Embed FioriCharts chart views inside FioriSwiftUICore components.

Onboarding

Welcome screen, activation, EULA, user-consent, and scan views for app onboarding flows.

Timeline

Timeline items, preview items, and now-indicator for chronological event display.

Build docs developers (and LLMs) love