Swiftパッケージ · v0.1.0

KLCharts

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

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

対応OS
iOS 17+ · macOS 14+
開発環境
Swift 6.0+
ライセンス
MIT
外部依存
なし

できること

  • 2種類の表示で共通のデータモデルを使用
  • 表示を切り替えても周囲のレイアウトを維持
  • 選択状態と選択解除はアプリ側で管理
  • 立体表示のドラッグ操作、視点のリセット、タップ判定

このパッケージがしないこと

このパッケージは、アプリ側で準備したデータの描画だけを行います。集計処理、ローカライズ、テーマの決定、選択状態の保存、凡例、棒グラフからの画面遷移はアプリ側で実装してください。

SwiftPMで追加

Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLCharts.git", from: "0.1.0")

使い方

最小構成Swift
KLDimensionalBarChart(
    data: data,
    mode: mode,
    emptyText: "No data",
    selectedID: selectedID,
    onSelect: { selectedID = $0.id }
)
.frame(height: 300)
KLDimensionalBarChart

2つの描画方式を保持したまま、透明度とタップ受付の切り替えで表示モードを変更します。

KLDimensionalBarDatum

棒、グループ、系列を識別する安定したIDと、表示名、値、色を保持します。

KLFlatBarChartLayout

描画を行わず、横方向に必要な幅を計算します。

デモアプリ

Geometry Gallery

2種類の表示で共通のデータモデルを使用 · 表示を切り替えても周囲のレイアウトを維持

Interaction Lab

選択状態と選択解除はアプリ側で管理 · 立体表示のドラッグ操作、視点のリセット、タップ判定