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
)。