見出し画像

SwiftDataをシンプルにためす

割引あり

WWDC2023で発表された SwiftData をためしています。
まず最もシンプルに iOS アプリで試す方法をご紹介します、いっしょにためしましょう。
永続化されたデータがどこに保存されているかなども調べました。
【2023年11月18日加筆:SwiftData公式サンプルの追加された解説ページについて加筆しました】
【2023年11月11日加筆:「SwiftDataの検索・絞り込みと並べ替え」のリンクを追加しました】
【2023年10月5日:SwiftData公式サンプルについて加筆しました】
【2023年9月20日:Xcode 15 正式版リリースに伴い加筆修正しました】
【2023年9月9日:SwiftDataの追加されたサンプルについて加筆しました】
【2023年8月24日:Xcode 15 Beta 7 の変更点について加筆しました】

⚠️注意:
実行には Xcode 15 と macOS 環境が必要です。
現在 Xcode 15はベータ版のため入手するには Apple Developer Program に登録が必要です。
WWDCのセッションビデオ、Appleのドキュメント、サンプルコードなどを元に Xcode 15 で調査・確認した範囲を記事にしています。正式リリース時に変更になる可能性があります。

執筆時点の環境:
Xcode 15 Beta 6
macOS 13.5
(※ Beta 5 から Beta 6 でもいくつか変更がありました。)
【2023年8月24日:Xcode 15 Beta 7 の変更点について加筆し対応しました】

この記事は『SwiftData を iOS アプリでためす』マガジンで読むことができます。

SwiftData を iOS アプリでためす』マガジンで読める記事:
SwiftDataをシンプルにためす
(この記事)
CSVファイルデータを読みSwiftDataで使う
アプリ起動時の表示情報にSwiftDataを使う
マクロ と オブザベーション
SwiftDataの検索・絞り込みと並べ替え
--- そのほかも準備中 ---



  • 画像クリックで拡大表示できます

  • 画像を拡大表示中は画像の左右をクリックで画像だけを順に表示できます

  • ソースコード部分は左右にスクロールできます

  • リンクしているドキュメントは英文が多いですが、翻訳機能を活用してください




まずはサンプル、が普通ですが

新技術を確認するには『サンプルコード』が最適です。
しかし最近のサンプルコードはけっこう大規模なコードで、いろいろ盛りだくさん状態のものが多い印象です。

サンプルコードは無料でダウンロードでき、Xcode 15 など適切な環境を用意するだけで実行しためすことができます。
コードの規模が大きくなるほど SwiftData 関連部分を見つけ出し理解するハードルは高くなります。

現在 SwiftData ページからリンクしている公式サンプルコードは次の二つ四つです。(解説ページは六つ七つありますが、ダウンロードされるサンプルが同じものが二組あります)

WWDC 2023 の「Build an app with SwiftData」セッションに対応するサンプルです。
ドキュメントベースのアプリで保存に SwiftData を使うものです。
プロジェクトも Start と End があります。


Core Data を採用しているアプリで SwiftData を採用するサンプルです。
Trips-Coexistence、Trips-CoreData、Trips-SwiftData の三つのプロジェクトがあります。
上記ダウンロードページに説明(英文)があります。


【2023年9月9日加筆】SwiftDataページはまだベータですが、サンプルの解説が4ページ追加されました。(追加されたサンプルは二つです)

サンプルは iOS・iPadOS・macOS・tvOS に対応したプロジェクトです。
リンクからダウンロードできる「SwiftDataAnimals」プロジェクトの永続データの追加と編集を解説しています。

「Adding and editing persistent data in your app」と同じサンプル「SwiftDataAnimals」の解説で、SwiftDataを使用して永続的なデータを削除する方法を説明しています。

【2023年11月18日加筆】サンプルコードの解説ページが追加になっていました。
リンクからダウンロードできる「SwiftDataAnimals」プロジェクトは「Adding and editing persistent data in your app」「Deleting persistent data from your app」と同じです。

サンプルプロジェクトで使っている、アプリに保存する静的データと動的データの関係付けに関する解説です。
ダイナミックデータの削除ルールの設定についても説明しています。
【2023年11月18日加筆ここまで】


リンクからダウンロードできる「SwiftDataLocalDataCacheSample」プロジェクトはオンラインの地震データをダウンロードしSwiftDataで管理するサンプルです。
iOS・iPadOS・macOS に対応したプロジェクトです。
地震データはマグニチュードとタイムスタンプと座標を持ち、地図上に表示する機能もあります。
【2023年10月5日加筆:このサンプルはコードが修正されました。
上記ページからダウンロードしなおすと Xcode 15 と Xcode 15.1 Beta で正常実行可能です。】

【2023年9月20日加筆:Xcode 15 正式版・RC版でこのサンプルはビルドエラーが発生します。Beta 8 を使うとビルド・実行可能です。】

ダウンロードされる「SwiftDataLocalDataCacheSample」プロジェクトのコードで選択した日の地震のみ表示したり、マグニチュードまたは時刻でソートしたり、地名でフィルタリングする方法を解説しています。
【2023年9月9日加筆ここまで】
【2023年11月11日加筆:「
SwiftDataの検索・絞り込みと並べ替え」を公開しました。SwiftDataで動的に検索絞り込みや並べ替えの方法を解説しています。】


テンプレートは最小規模

Xcode の新規プロジェクトで保存されるテンプレートはアプリとして最小規模です。
サンプルとして提供されるプロジェクトよりシンプルです。

シンプルですが最小限の選択肢があります。
Interface:   SwiftUI / Storyboard
Language:   Swift / Objective-C
Storage:   None / SwiftData / Core Data

Xcode 15 では Storage の選択肢に SwiftData が加わりました

Storage を SwiftData にして保存すると SwiftData の最小構成のサンプルが得られます
ちゃんとアプリとして動作します。が、残念ながらコードの説明はありません。

この記事ではテンプレートについて解説しながら SwiftData をためします。
【この記事では Core Data との比較ではなく、SwiftData 部分だけを説明します】


SwiftData は SwiftUI だけ

Xcode 15 Beta のテンプレートで Storage に SwiftData を選べるのは Interface が SwiftUI の場合だけです。
Storyboard にすると Language を Swift にしても SwiftData の選択肢は消えます。

Storyboard では SwiftData は選べない


新規プロジェクトを保存し実行する

さっそく SwiftData をためすために新規プロジェクトを保存しましょう。
そのためには Xcode 15 が必要です。


Xcode 15 Beta のダウンロード

【2023年9月20日加筆:Xcode 15 正式版はAppStoreから誰でもダウンロード可能になりました。】
Xcode 15 は2023年8月現在 Beta 版がデベロッパー登録しているメンバーだけに提供されています。
Xcode 15 Beta の実行に必要な macOS 環境も確認してください。
必要な環境はリリースノート(英文)で確認できます。

Xcode 15 Beta のダウンロードにはデベロッパーとしてログインが必要です。
デベロッパーサイトの「ソフトウェアリリース」から Xcode 15 を探して View downloads > をクリックしてください。


新規保存

iOS アプリ用のプロジェクトを保存するには Welcome Xcode 画面で「Create New Project…」をクリック、または File > New > Project… メニューを選びます。

Welcome Xcode 画面で「Create New Project…」をクリック

次に Choose a template for your new project: で iOS の App を選び

iOS の App テンプレートを選ぶ

Choose options for your new project: で SwiftUI・Swift・SwiftData を選び Product Name: を設定し保存します。

Language を Swift、Interface を SwiftUI を選ぶ

Storage は None / SwiftData / Core Data の選択肢があります。(デフォルトは前回の設定です)

Storage で SwiftData を選ぶ

Product Name を入力した状態はこのようになります。

Product Name を入力し Next をクリック

保存するフォルダを決めて保存すると、Xcode でプロジェクトウインドウが開きます。


ここから先は

12,286字 / 9画像
この記事のみ ¥ 300〜

今後も記事を増やすつもりです。 サポートしていただけると大変はげみになります。