ダウンロード サンプルファイル (25.9 KB)
本連載では、SwiftUIの基本的なプログラムができる読者を対象に、SwiftUIの新しい機能の基本的な事柄を解説します。iOS16で追加された機能やSwiftUI 4で実装された新しい機能の使い方を、サンプルを作成しながら説明します。
はじめに
対象読者をSwiftUIの基本的な事柄が分かる方としている関係上、SwiftUIの仕様やXcodeの使い方については解説を割愛する場合があることをご了承ください。同様にSwift自体の説明も必ずしも十分でない場合があります。そのような場合は末尾の参考文献などを参照してください。
対象読者
本記事は、次の方を対象にしています。
- SwiftUIの基本的なプログラムができる方
- Xcodeを使える方
iOS16とSwiftUI 4
WWDC 22で発表されたiOS16の公開に伴って、SwiftUIのバージョンアップも発表されました。SwiftUIの4回目のバージョンアップという意味で、iOS16以降のSwiftUIはSwiftUI 4.0または単にSwiftUI 4と呼ばれています。iOS16は2022年9月13日に公開されました。
今回扱うSwiftUI 4の範囲
iOS16で追加されたSwift Chartsフレームワークの具体的な使い方について紹介します。Swift Chartsフレームワークについては、本連載第1回でも紹介していますので、Swift Chartsフレームワーク自体についてはそちらの記事でご確認ください。また本記事の趣旨は、iOS16/SwiftUI 4で利用できる新機能の紹介です。機能別にクラスやメソッドなどの詳細な説明は割愛することもありますので、その点を了承した上で読み進めてください。
サンプルデータを用意する
Chartsフレームワークの利用例として、日々の売り上げデータをグラフ化してみます。日々の売り上げデータを表す構造体を DailyAmountの名前で次のように定義します。
struct DailyAmount: Identifiable {
var id = UUID() // ユニークなIDを生成
var date: Date // 日付
var amount: Double // 売り上げ
}
var examples: [DailyAmount] { // 2023年1月分のデータを生成
get {
let calendar = Calendar(identifier: .gregorian)
return Array(1...31).map({ calendar.date(from: DateComponents(year: 20223, month: 1, day: $0))! })
.map({ DailyAmount(date: $0, amount: .random(in: 1500...10000)) })
}
}
Chartsで表示する構造体は、グラフ上の各点を区別するためにidプロパティを備えるIdentifiableプロトコルを実装することを忘れないようにしてください。
サンプルデータとして2023年1月分のデータをランダムに生成して利用します。ランダムに生成したサンプルデータを利用するため、サンプルの実行結果は必ずしも本記事のキャプチャと同じにならないことをご了承ください。
この記事は参考になりましたか?
- iOS16の新機能に触れてみよう連載記事一覧
-
- iOS16のWeatherKitで気象データに触れてみよう
- iOS16で追加されたChartsフレームワークで日々の売上データをグラフ化してみる
- iOS16/SwiftUI4で高度になった地図機能に触れてみよう
- この記事の著者
-
WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
