SAP Fiori for iOS 设计语言的 SwiftUI 实现
本项目是 SAP Fiori for iOS 设计语言 的 SwiftUI 实现,旨在增强甚至在某些情况下取代 SAP BTP SDK for iOS 中 SAPFiori 框架基于 UIKit 的实现。
本项目目前包含三个模块:FioriThemeManager、FioriSwiftUICore 和 FioriCharts。
该模块提供符合 Fiori 设计语言的 调色板 和新的字体系列 SAP 72。 该模块已被本项目和 SAPFiori 中的所有 Fiori 组件采用。
所有 Fiori 颜色均为动态颜色,这意味着它们会根据 iOS 外观设置(浅色/深色)进行调整。 使用 Color.preferredFioriColor(forStyle:) 访问 Fiori 颜色。
72 是一种 SAP 专利字体,可为我们的用户提供出色的阅读体验。您可以使用 Font.fiori(forTextStyle:) 或 Font.fioriCondensed(forTextStyle:) 获取这些字体。请注意,这些字体开箱即用地支持动态类型。 如果您想要固定大小的字体,请改用 Font.fiori(fixedSize:) 或 Font.fioriCondensed(fixedSize:)。
自定义字体需要在应用程序运行时加载和注册。请确保在
AppDelegate的application(_:didFinishLaunchingWithOptions:)中调用Font.registerFioriFonts()。
该模块包含 SAPFiori 中现有基于 UIKit 的组件的 SwiftUI 实现。它为您提供了一种简单的方法,可以将 UIKit 项目迁移到 SwiftUI,同时提供与以前相同的体验。
我们计划在未来的版本中逐步将更多 Fiori UI 组件引入到该模块中。查看下表,了解当前可用的组件和路线图中的组件。
请参阅此文档,了解初始化组件的不同方法。
| FioriSwiftUICore | |
|---|---|
| ObjectItem | ✅ |
| ObjectHeader | ✅ |
| KPIItem | ✅ |
| FioriButton | ✅ |
| ListPickerItem | ✅ |
| DimensionSelector | ✅ |
| SideBar | ✅ |
| DataTable | ✅ |
| WelcomeScreen | ✅ |
| ActivationScreen | ✅ |
| InfoView | ✅ |
| 用户同意书 | ✅ |
| KPIProgressItem | ✅ |
| EULAView | ✅ |
| ContactItem | ✅ |
| KPIHeader | ✅ |
| 签名捕获 | ✅ |
| DurationPicker | ✅ |
| StepProgressIndicator | ✅ |
| 文本输入 | ✅ |
| 验证视图 | ✅ |
| 卡片 | ✅ |
| 工具栏 | ✅ |
| 搜索 | ✅ |
| 选项卡栏 | ✅ |
| 导航栏 | ✅ |
| 步进器 | ✅ |
| 开关 | ✅ |
| 标签 | ✅ |
| 头像 | ✅ |
| Toast 消息 | ✅ |
| KeyValueItem | ✅ |
| LinearProgressIndicator | ✅ |
| 信息视图 | ✅ |
| TextFieldFormView | ✅ |
| NoteFormView | ✅ |
| KeyValueFormView | ✅ |
| TitleFormView | ✅ |
| 评分控件 | ✅ |
| RatingControlFormView | ✅ |
| SortFilter | ✅ |
| 菜单选择 | ✅ |
| ProfileHeader | ✅ |
| TimelineItem | ✅ |
| SegmentedControlPicker | ✅ |
| TimelinePreviewItem | ✅ |
| DateTimePicker | ✅ |
| Illustration Message | ✅ |
| 滑块(单滑块和范围滑块) | ✅ |
| ChartFloorplan | ❌ |
| CollectionItem | ❌ |
| BarcodeScanner | ❌ |
| PasscodeView | ❌ |
| MultiUserPasscodeView | ❌ |
| TouchIDErrorView | ❌ |
| Skeleton Loading | ❌ |
| 附件 | ❌ |
| Value Picker | ✅ |
| Hierarchy View | ❌ |
| 日历 | ❌ |
| Search To Select | ❌ |
| Progress Indicator | ✅ |
| Processing Indicator | ✅ |
| Checkout Indicator | ✅ |
| Loading Indicator | ✅ |
| 反馈屏幕 | ❌ |
| 地图 | ❌ |
| UI 组件各个字段的主题支持 | ❌ |
FioriCharts 模块取代了已嵌入在 SAPFiori 中的 *RoambiChartKit* 图表库。 迁移到 SwiftUI 使其能够轻松添加新的图表组件(甜甜圈图、子弹图、股票图等),同时通过捏合缩放、平移和新的设计功能来现代化现有的受支持图表。
| SAPFiori 4.0.x, 5.0.x | FioriCharts | |
|---|---|---|
| 面积图 | ✅ | ✅ |
| 折线图 | ✅ | ✅ |
| 柱状图 | ✅ | ✅ |
| 堆叠柱状图 | ✅ | ✅ |
| 条形图 | ✅ | ✅ |
| 堆叠条形图 | ❌ | ✅ |
| 气泡图 | ✅ | ✅ |
| 散点图 | ✅ | ✅ |
| 瀑布图 | ✅ | ✅ |
| 组合图 | ✅ | ✅ |
| 甜甜圈图 | ❌ | ✅ |
| 子弹图 | ❌ | ✅ |
| 堆叠子弹图 | ❌ | 🔜 |
| Harvey Ball | ❌ | ✅ |
| 径向图 | ❌ | ✅ |
| 股票图 (折线图) | ❌ | ✅ |
API 旨在向后兼容现有的 SAPFiori 图表 API,但针对 SwiftUI 进行了优化。
该软件包旨在通过 Swift Package Manager 使用。
File > Swift Packages > Add Package Dependency...选项卡,然后添加存储库 URL。在这两种情况下,xcodebuild 工具都将管理克隆并将存储库更新到您的应用程序或框架项目。
Package.swift 清单公开了三个产品。
FioriSwiftUI 作为伞形产品将包含该软件包未来必须提供的一切。
如果您担心包大小,则可以使用单个产品之一,例如 FioriCharts 或 FioriThemeManager
目前存在一些功能限制,计划在未来的版本中解决。请查看 Issues 选项卡,以获取积压工作和问题状态的最新视图。
开源项目启动时存在的关键差距
请参阅 限制。
通过此开源存储库提供对模块的支持。请提交 Github Issues,说明您遇到的任何问题或疑问。
当 SAPFiori 生产性地集成 FioriCharts 时,客户应继续通过 OSS 报告问题以进行 SLA 跟踪。 但是,开发人员也可以直接在 Github Issues 中报告与图表相关的问题; SAP 会将通过 OSS 报告的与 FioriCharts 相关的问题镜像到 Github Issues 中。
如果您想贡献代码,请查看 贡献指南
请参阅 限制。
可以使用演示应用程序进一步探索该功能,该演示应用程序已经是该软件包的一部分 (Apps/Examples/Examples.xcodeproj)。