はじめに
こんにちはsuzukiです。本日はSwiftUIで、Chartライブラリを使う方法についてまとめました。
Chartsライブラリについて
Swift UIでChartsを利用してチャートを書きます。
以前の記事で何度か触れている、無料でチャート描画が可能なライブラリです。
サンプルはiOSはGitHub上のdemoから確認できます。
ライブラリの導入
今回はCocoaPodsを利用しインストールしました。
pod 'Charts'
上記をPodfileに記述し、pod installを行います。
wrapper structの作成
SwiftUIでChartライブラリを利用する手順はこちらでも説明がございます。
SwiftUIでチャートの描画を行うためにラッパークラスを作成します。※structなので、クラスという表現は間違っているかもしれませんが、ラッパーストラクトとかラッパー構造体に違和感があり、ラッパークラスと表現してます。
今回はCandleStickChartViewというローソク足のラッパークラスを作成します。
描画のための準備
下記手順で描画するための準備を行います。
1、クラスファイルの追加
今回はCandleという名前でファイルの追加
2、ライブラリのインポート分の描画
3、Candleという構造体を定義
4、makeUIViewでCandleStickChartViewを返却
ここまででSwiftUIで画面上に配置する準備ができました。試しにCandle()を呼び出すと、No chart data availableと表示されます。
データの取得と更新
データの取得と更新について、詳細は以前のSwift ChartsライブラリとCryptowatchAPIでローソク足を描画してみる。の記事で行ったことを元に移植しています。
1、通信のレスポンス用の構造体を定義
2、CryptowatchAPIでからOHLCデータを取得
3、OHLCデータからローソク足用のデータを作成
チャートの描画用の範囲などは要調整です。
4、updateUIViewで上記を使用
5、Candle()を使用してチャートを表示
表示領域が調整が微妙ですが、拡大すると下記のスクショのようにローソク足が表示されています。
コード全体
さいごに
最後までありがとうございます。想像していたよりは簡単に、ライブラリのViewを元にSwiftUIが利用できました。
実際に使うとなると更新タイミングどうしようとかまだ考えることはありますが、今回の記事は以上となります。XCodeのBetaがもう少しうまく動いたら、またwidget周りを触っていこうと思います。