Labs に戻る

Swiftコンポーネント

Swift パッケージ一覧

Nuancery Labs が公開しているパッケージを、ソースコード、API ドキュメント、デモ、責任範囲とともに確認できます。

Swiftコンポーネント

小さく切り出し、責任範囲は明確に

どのコンポーネントも役割を一つに絞り、挙動をテストで固め、APIを文書化しています。単体で動くデモアプリも2本ずつ用意しています。

KLRichTextEngine

v0.1.0

リッチテキストを編集しても、文書の構造を保ちます。

KLRichTextEngineは、リッチテキスト、チェックリストの意味、実行時メタデータ、未対応の値を安全に扱うための文書コーデックと編集ルーティングを提供します。

  • 構造化されたリッチテキスト文書のエンコード
  • 編集可能な属性付き文字列への変換
  • チェックリストの意味と実行時メタデータ

KLLazyGallery

v0.1.0

ギャラリーの状態を保ちながらメディアを段階的に読み込みます。

KLLazyGalleryは、画像と動画の遅延読み込み、キャンセル、終了、プレイヤーの解放、UIKitのフォトブラウザ連携を調整します。

  • 画像と動画の段階的な読み込み
  • キャンセルとリクエスト識別子
  • 決定的な終了処理とプレイヤー解放

KLOCRPipeline

v0.1.0

画像のジオメトリとモデルの境界を明確にしたOCRパイプラインです。

KLOCRPipelineは、画像の前処理、Visionによる文字認識、読み順の復元、任意のPaddleOCR Core ML推論を段階的に実行します。

  • 明確に分かれた前処理と認識の段階
  • 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

共有された文章から、必要な公開リンクだけを安全に取り出します。

KLShareLinkは、共有シートから渡されるURLや文章を解析する、外部ライブラリ不要のSwiftパッケージです。明示的なURL、文章中の複数リンク、サービスごとのドメイン、旧形式の識別文字列を順番に確認し、安全なHTTP(S) URLとサービス名を返します。

  • 安全な明示URLがあれば、最初に採用
  • 文章中のHTTP(S) URLを出現順に検出
  • 設定したサービスのドメインに一致するURLを優先

KLSubjectVision

v0.1.0

画像から正方形のサムネイルを生成します。被写体を切り抜けるときはApple Visionを使い、抽出できない場合は元画像を使った表示へ自動で切り替えます。

KLSubjectVisionは、被写体の切り抜きと正方形への配置をまとめたSwiftパッケージです。`.subject` は切り抜いた被写体全体を透明な正方形の中に収め、抽出できなかった場合は元画像を正方形いっぱいに配置します。`.room` は、場所や室内写真など、画面全体を残したい画像向けです。

  • Apple Visionによる前景の切り抜き
  • 余白を指定できる、被写体全体を収める配置
  • 場所写真とフォールバック時は正方形いっぱいに配置

KLCharts

v0.1.0

同じデータを、Swift Chartsの平面表示と、操作できる立体的なCanvas表示で切り替えられます。表示を変えても周囲のレイアウトは動きません。

KLChartsは、`.flat` と `.dimensional` の2種類の棒グラフを提供します。選択状態、数値の書式、色、元データ、画面遷移はアプリ側で管理し、パッケージは描画、モード切り替え、タップ判定、項目が多い場合の横スクロールを担当します。

  • 2種類の表示で共通のデータモデルを使用
  • 表示を切り替えても周囲のレイアウトを維持
  • 選択状態と選択解除はアプリ側で管理

KLReadingOrder

v0.1.0

OCRの認識結果が順不同でも、座標情報を使って人が読む順番に並べ直します。

KLReadingOrderは、文字列、信頼度、正規化した矩形、ページ番号、元の並び順を受け取り、読み順にまとめた行を返すSwiftパッケージです。OCR自体や文章の意味解析は行わず、認識結果を読みやすい順番へ並べる処理だけを担当します。

  • 横書きは上から下、同じ行では左から右
  • 縦書きは右の列から左へ、同じ列では上から下
  • ページごとに横書きか縦書きかを自動判定