2023.09.28スポンサーリンクSwiftUIのアプリ開発で、CoreDataを利用してデータを保存する方法を、サンプルアプリのコードと一緒にまとめます。新たに作成するSwiftUIViewファイル/ModelファイルNextスポンサーリンクCoreDataとはiPhoneアプリの開発で、メモアプリやTodoアプリなど、ユーザーが入力したり選択したデータは、そのままでは保存されずにアプリを閉じるとリセットされてしまいます。そのためアプリを閉じてもデータを残しておきたい時には、データを永続化するための処理を組み込むことが必要です。アプリの設定など一度設定したら増えないようなデータであれば、UserDefaultというメモリに保存することで事足りるのですが、UserDefaultは使用すればするほど増えていくようなデータの保存には向きません。そこで使えるのが、CoreDataです。iCloudとの連携もかんたんですし、個々のユーザーのiOS端末の容量を利用するので、アプリ開発者がサーバーなどの保存場所を用意する必要もなし。保存されるデータはSQLのようなデータベース形式で保存されていってくれるので、使い勝手も良い感じ。CoreDataについてもっと詳しく知りたい方はAppleの公式ドキュメントをご確認ください。カード型で一覧表示するアプリのサンプルコードここからは早速コードと共にCoreDataの使い方を見てみましょう。サンプルアプリは、テキスト日付(選択式)お気に入りマークというデータを入力画面(シート)で入力して保存、カード形式で表示、カードの長押しから編集・削除できるアプリです。(カメラロール写真の取り扱いについては別記事にまとめるのですが、データの保存先と処理だけ今回一緒に用意してしまってます。)編集で開いたシートでは既存のデータが表示されて変更できます。11.5.2CoreDataのデータベースを設定するプロジェクト開始時にCoreDataにチェックを入れると、自動でファイルとコードが追加された状態で開始されます。[SwiftUI]Xcodeでのプロジェクトの始め方XcodeでSwiftUIアプリを作ろうという場合の、プロジェクトのはじめ方です。チェック項目に迷ったときなどの参考にどうぞ。design.aoziso.com2023.09.28早速、データベースのテーブル的なやつ(Entity)を設定しましょう。「AddEntity」をクリックEntity名を編集(データテーブル名)最初からあった「item」Entity名をクリックし「delete」キーで削除Attributeに保存したいデータ名とType(データ型)を追加するここで追加したAttributeが、SQLでいうところのカラムになります。「Persistence.swift」の3つのファイルが作成されていることを確認CoreData用のファイルを編集CoreData用のファイルが自動作成されました。このままだとちょっと使えないので、コードを編集しましょう。Persistence.swift一部削除して一部追加します。}}Entity名+CoreDataProperties.swiftCoreDataのデータ型はオプショナルになるので、nilの場合の処理を追加しています。その時々で設定する場合は元のまま何も追加しなくていいです。{}Entity名+CoreDataClass.swiftそのままでOK。新たに作成するSwiftUIViewファイル/ModelファイルCoreDataを使う準備ができたので、見た目の部分と動的にデータを作成・編集・保存するためのファイルを作ります。全部一つのファイルにコードを書くとごちゃごちゃしてしまうので、いくつかファイル分けします。編集・作成したファイル[編集]ContentView.swiftデータをリスト表示/新規作成ボタンを備えたトップページ[作成]SampleCardVIew.swiftデータをリスト表示するための雛形のSwiftUIViewファイル[作成]SheetView.swiftデータを入力するSheetのSwiftUIViewファイル[作成]SampleModel.swift入力したデータの処理をまとめたModelファイルフォルダ分けしてこんな感じのファイル構造になってます。ファイルとフォルダはXcode左下の「+」から作成できますよ。それぞれのファイルのコードを載せますね。データの保存と編集処理まずは入力されたデータの保存と、既存データがある場合は入力画面に表示して編集できるように、モデルを作成します。データ入力画面データを入力する画面のViewです。保存されたデータをカード型で表示するための雛形ContentViewで使う、CoreData表示用カードの雛形を作ります。保存されたデータをカードの雛形に載せて順番に表示し、入力用シートを開くボタンを設置。意外とかんたんではないかと思います。Nextこんな感じで、CoreDataを使用したアプリができました。次はこのアプリにプラスする形で、PHPickerViewControllerで複数枚の写真をカメラロールから追加する方法をまとめます。本ブログはConohaWingを利用しています。早いしWordPressで使いやすいのでおすすめ。レンタルサーバー『エックスサーバー』こちらも高機能なレンタルサーバーです。WordPressブログ運営に使っている人もよく見かけるので、困った時に情報が探しやすくおすすめです。クラウド型レンタルサーバー【ColorfulBox】クラウド型レンタルサーバー。必要な容量で選べるプランが魅力。★こちらも高機能でコスパよしです。お安くはじめたい方におすすめ。satoITとは遠いOL▷独学でHTML,CSS,JavaScript,Swiftを学び、ホームページ制作運営&iOSアプリ開発。現在はフリーランスとしてWEB制作・アプリ制作をしています。備忘録も兼ねつつ、同じように0からWEB開発を始めようという方の参考になれば嬉しいです。本ブログはConohaWingを利用しています。早いしWordPressで使いやすいのでおすすめ。レンタルサーバー『エックスサーバー』こちらも高機能なレンタルサーバーです。WordPressブログ運営に使っている人もよく見かけるので、困った時に情報が探しやすくおすすめです。クラウド型レンタルサーバー【ColorfulBox】クラウド型レンタルサーバー。必要な容量で選べるプランが魅力。★こちらも高機能でコスパよしです。お安くはじめたい方におすすめ。コメント目次へトップサイドバータイトルとURLをコピーしました。