SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

iOS16の新機能に触れてみよう

iOS16/SwiftUI 4の新機能の使い方──Chartsフレームワーク、Navigation、Advanced controls

iOS16の新機能に触れてみよう 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

グラフの生成が容易に──Swift Chartsフレームワーク

 SwiftUIの仕様としてグラフを描画する機能がChartsフレームワークの名前で追加されました。

Swift Chartsの紹介(出典:What's new in SwiftUI)
Swift Chartsの紹介(出典:What's new in SwiftUI

 Swift自体の機能でグラフを描画できるため、Apple以外のライブラリなどに依存する必要はなくなります。Chartsフレームワークは既定で棒グラフ/面グラフ/折れ線グラフ/点グラフ/矩形グラフをサポートしています。

棒グラフを表示する

 Chartsフレームワークを利用して棒グラフを表示してみます。グラフに表示するサンプルデータとして月あたりの売り上げデータを作成し、X軸に月/Y軸に売り上げの棒グラフを作成します。

[リスト1]ChartsSample/ContentView.swift抜粋
import SwiftUI
import Charts // Charts framework をインポート

struct MonthAmount: Identifiable {       // グラフに表示するデータを定義
    var id = UUID()
    var month: String
    var amount: Double
}

extension MonthAmount {
    static let examples: [MonthAmount] = [  // サンプルデータ
        .init(month: "1月", amount: 100.00), .init(month: "2月", amount: 70.00),
        .init(month: "3月", amount: 90.00), .init(month: "4月", amount: 110.00),
        .init(month: "5月", amount: 130.00), .init(month: "6月", amount: 60.00)
    ]
}

struct ContentView: View {
    var body: some View {     // 画面にチャートを表示
        Chart {       // (1) 
            ForEach(MonthAmount.examples) { item in       // (2)
                BarMark(
                    x: .value("Month", item.month), y: .value("Amount", item.amount)
                ).foregroundStyle(.blue)
            }
        }.padding()
    }
}
棒グラフの表示
棒グラフの表示

 グラフを表示するCharts構造体を呼び出します。その中で棒グラフを表示するBarMark構造体のx、yに対して配列のデータを割り当てます(2)。これだけで棒グラフを表示できます。

折れ線グラフを表示する

 前項のサンプルで表示した棒グラフを折れ線グラフで表示したい場合は、次のようにBarMark構造体を折れ線グラフを表示するLineMark構造体に変更します。

[リスト2]ChartsSample/ContentView.swift抜粋
struct ContentView: View {
    var body: some View {
        Chart {
            ForEach(MonthAmount.examples) { item in
                LineMark(    // LineMark構造体を利用
                    x: .value("Month", item.month), y: .value("Amount", item.amount)
                ).foregroundStyle(.blue)
            }
        }.padding()
    }
}
折れ線グラフの表示
折れ線グラフの表示

 書式としては、Chartsブロックの中で、各グラフを表示する構造体にデータを割り当てるイメージです。

 上記のサンプルのように、短いコードで目的のグラフを表示することができます。

次のページ
画面遷移とウィンドウの扱いがよりわかりやすく──Navigation and window

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
iOS16の新機能に触れてみよう連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16580 2022/11/15 14:48

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング