Nuancery Labs · Swift组件

从实际产品中整理出的Swift组件

Nuancery Labs收录产品开发中沉淀下来的Swift组件。每个组件都提供清晰的用途说明、API文档、支持平台和示例项目。

Swift组件

组件及其职责

这些组件分别解决链接解析、图像缩略、图表展示和阅读顺序识别等具体问题。

KLRichTextEngine

v0.1.0

在编辑富文本时保留文档原有结构。

KLRichTextEngine为富文本、清单语义、运行时元数据和不支持值的安全处理提供文档编码与编辑路由。

  • 结构化富文本文档编码
  • 可编辑的富文本转换
  • 清单语义与运行时元数据

KLLazyGallery

v0.1.0

渐进加载媒体,同时保持画廊状态可预测。

KLLazyGallery为图片和视频的延迟加载、取消、关闭、播放器释放以及UIKit照片浏览器接入提供协调层。

  • 增量加载图片和视频
  • 处理取消与请求标识
  • 确定性的关闭和播放器释放

KLOCRPipeline

v0.1.0

用明确的几何和模型边界运行OCR流程。

KLOCRPipeline为图像预处理、Vision文字识别、阅读顺序重建和可选的PaddleOCR Core ML推理提供分阶段的OCR流程。

  • 明确的预处理和识别阶段
  • 支持Vision与可选的PaddleOCR路径
  • 通过KLReadingOrder重建阅读顺序

KLPageCurl

v0.1.0

添加支持无障碍和降低动态效果的翻页过渡。

KLPageCurl为SwiftUI提供翻页过渡层,在同一个接入边界内处理翻页呈现、无障碍行为和降低动态效果时的回退。

  • SwiftUI翻页过渡
  • 根据降低动态效果设置调整呈现
  • 面向无障碍的过渡行为

KLGlassSegments

v0.1.2

在原生玻璃效果和材质回退样式之间使用导航类分段控件。

KLGlassSegments为SwiftUI和UIKit提供分段控件。它保持泛型选择标识、再次点击、拖动取消、无障碍标识和降低动态效果行为一致,并在可用时使用iOS原生玻璃效果。

  • 提供绑定式SwiftUI API和基于 `UIControl` 的UIKit API
  • 刷新分段数据时保留稳定的泛型选择ID
  • 支持再次点击、拖动取消和VoiceOver激活

KLAdaptiveSurface

v0.1.0

在图片取色进入界面之前整理成更适合阅读的表面颜色。

KLAdaptiveSurface是同步的颜色策略。它尽量保留来源色相,在颜色过暗或过浓时将其整理到可读范围,并为结果选择前景色。

  • 可配置明度和饱和度边界
  • 用脏色阈值避免改动本来干净的颜色
  • 支持保留色相、中性、冷色和暖色偏好

KLAdaptivePalette

v0.1.2

从宿主容器实际可见的图像区域生成调色板。

KLAdaptivePalette使用 `CGImage`、容器尺寸、内容模式和裁切锚点分析实际显示的图像区域。它返回来源色、候选色、前景色和确定性的缓存键。

  • 支持 `.aspectFill` 与 `.aspectFit` 可见区域分析
  • 返回按权重排序的颜色候选
  • 根据实际背景亮度选择前景色

KLCalendarLanes

v0.1.0

为日历网格中的跨日全天事件条分配确定性的轨道。

KLCalendarLanes是不依赖UI的日历网格布局引擎。它使用提供的 `Calendar` 归一化日期,在行边界拆分事件条,并返回轨道、溢出事件和按天查询的占用信息。

  • 使用 `Calendar` 归一化跨日范围
  • 在行边界生成带首尾标记的片段
  • 确定性地分配轨道并记录溢出事件

KLShareLink

v0.1.0

从显式输入或分享文本中选择HTTP(S) URL。

KLShareLink是同步解析分享输入的Swift软件包,不依赖第三方库。它按固定顺序检查显式URL、文本中的链接候选、服务域名和旧格式标记,返回符合规则的HTTP(S) URL,并在能够确认时附带服务名称。

  • 安全的显式URL优先
  • 按文本出现顺序检测HTTP(S) 候选
  • 优先选择与已配置服务域名匹配的链接

KLSubjectVision

v0.1.0

从CGImage生成正方形主体或场景缩略图。

KLSubjectVision用于生成正方形缩略图。`.subject` 通过Apple Vision提取前景,并将完整主体按比例放入透明画布。提取失败时改用原图。`.room` 不提取主体,直接裁切场景图片。

  • Vision前景实例蒙版
  • 可设置inset的主体等比缩放
  • `.room` 与 `.fallback` 使用居中填充

KLCharts

v0.1.0

用Swift Charts平面模式或Canvas立体模式显示同一组柱状图数据。

KLCharts提供 `.flat` 和 `.dimensional` 两种柱状图。软件包负责绘制、模式切换、点击判定以及数据较多时的横向滚动。选中状态、数值格式、颜色、数据来源和页面跳转由接入应用管理。

  • 平面与投影视图共享数据模型
  • 切换模式时保持外部布局不变
  • 选中和取消选中由接入应用控制

KLReadingOrder

v0.1.0

根据坐标将OCR结果重新排列为水平或垂直阅读顺序。

KLReadingOrder接收文字、置信度、归一化矩形、页码和原始顺序,返回按阅读顺序分组的行,并保留接入应用提供的候选ID。软件包不执行OCR,也不分析文档含义。

  • 横排从上到下、行内从左到右
  • 竖排按列从右到左、列内从上到下
  • 每页独立自动判断方向

维护方式

维护与接入说明

测试覆盖

每个仓库都用回归测试检查公开API的行为。

接入边界

存储、本地化、导航和具体业务逻辑由接入应用负责。

API文档

文档会说明排序、失败处理、几何计算和并发行为。

wondays: 是使用这些组件的Nuancery应用,组件与应用分别维护。