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 inFioriSwiftUICore.
| Component | Available |
|---|---|
| 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 inFioriSwiftUICore 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, andTextOrIcon. Use this for straightforward data binding from your model layer.
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.