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提供分段控制項。它保持泛型選取ID、再次點擊、拖曳取消、輔助使用識別碼與降低動態效果行為一致,並在可用時使用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` 兩種長條圖。套件負責繪製、模式切換、點擊判定,以及資料較多時的橫向捲動。選取狀態、數值格式、色彩、資料來源與頁面導覽由整合端App管理。

  • 平面與投影視圖共用資料模型
  • 切換模式時維持外部版面不變
  • 選取與取消選取由整合端App控制

KLReadingOrder

v0.1.0

根據座標將OCR結果重新排列為橫向或直向閱讀順序。

KLReadingOrder接收文字、信心值、正規化矩形、頁碼與原始順序,回傳依閱讀順序分組的行,並保留整合端App提供的候選ID。套件不執行OCR,也不分析文件內容。

  • 橫排由上至下、行內由左至右
  • 直排按欄由右至左、欄內由上至下
  • 每頁獨立自動判斷方向

維護方式

維護與整合說明

測試範圍

每個程式碼庫都以回歸測試檢查公開API的行為。

整合邊界

儲存、在地化、導覽與產品邏輯由整合端App負責。

API文件

文件會說明排序、失敗處理、幾何計算與並行行為。

wondays: 是使用這些元件的Nuancery App,元件與App分別維護。