こんにちは.
Sadmachineです.
いまさらながら,このすばを見始めました.
めぐみんかわいい.
この記事ではアプリ開発の基礎...
Xcodeプロジェクトの開始〜CoreDataの初期設定までをわかりやすく解説します!
スクリーンショットも適宜つけるので参考にしてください!
CoreDataのことだけ知りてえよ! っていう君はSection 2から見るといいと思うよ.
LGTMたくさんしてね!!!
そもそも「CoreData」ってなに?
CoreDataとは...
Xcode上から簡単にDBのようにデータ構造を設定できたり,アプリ上で扱うデータを保存,削除,更新するプログラムを簡単に書けるようになる仕組み
参考記事:やっとわかったSwift/CoreData入門 【part1:概念編】
とのこと.
もっと簡単に言うと...
アプリのデータをiPhoneの端末本体内のストレージに保存して永続化するために必要なもの!
って感じでしょうか.
ざっくりすぎたかな...
とりあえず,詳しいことは参考記事を見てみてね!
目次
- [0. 開発環境](## 0. 開発環境)
- [1. プロジェクトを作ろう](## 1. プロジェクトを作ろう)
- [2. CoreDataの初期設定をしよう](## 2. CoreDataの初期設定をしよう)
- [まとめ](## まとめ)
0. 開発環境
筆者の開発環境をめっちゃ簡単に紹介します.
- Xcode 12.3
- SwitfUI
以上.
もっと詳しく知りたい人はTwitterに凸して,どうぞ.
1. プロジェクトを作ろう!
以下の項目はXcodeをインストールしてある前提で話していきます.
1-1 Xcodeの起動&プロジェクトファイルを作る
Xcodeを起動すると上のような画面が出てくるので,Create a new Xcode Projectを押してください. そうするとこんな画面が出るので[App]を選択してNext. Product Nameとかは適当につけます.白抜きの部分も適当な名前をつけてください.
重要なのは赤く囲まれたUse CoreDataのチェックマークです.
忘れずにつけましょう.
↑MugenMemoというプロジェクト名になっていますが,これがProduct Nameです.
人によって違います.
プロジェクトの作成は完了です.
1-2 ContentView.swiftの修正
1-1の最後の画像の通り,エラーが吐かれています.
とりあえず「ContentView.swift」の中身を以下のようにすればOKです.
import SwiftUI
import CoreData
struct ContentView: View {
var body: some View {
NavigationView {
List {
Text("TEST")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
これでSection 1 プロジェクトを作ろうは完了です!
2. CoreDataの初期設定をしよう
CoreDataの初期設定を進めていきます.
2-1 Entityの新規追加
MugenMemo.xcdatamodeldを開いて,↑図のようにEntityを作ります.Entityを作るには,Add Entityを選択して適当な名前をつけます.
今回はMemoにしました.
Entityを作ったら,Attributeを追加します.
Attributes下の+を押して,Attribute:title Type:String にします.
2-2 Entityのclass変更
ENTITESのMemoを押してDatamodelInspecter(右側の帯のいろいろな設定でるやつ)を表示させます.
↑図の赤く囲った部分Class CodegenのClass DefinitionをManual/Noneに変更します. こんな感じになってればOKです.2-3 CoreDataの管理に必要なコードを手動生成
Entity名+CoreDataClass.swift
Entity名+CoreDataProperties.swift
がないとCoreDataは使えないので手動で生成します.
import Foundation
import CoreData
@objc(Memo)
public class Memo: NSManagedObject {
}
import Foundation
import CoreData
extension Memo {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Memo> {
return NSFetchRequest<Memo>(entityName: "Memo")
}
@NSManaged public var title: String?
}
extension Memo : Identifiable {
}
以上でSection 2 CoreDataの初期設定をしよう は完了です.
2-* もしもEntityにAttributeを追加したら...
Entityに別の属性のAttributeを追加した場合はEntity名+CoreDataProperties.swiftを編集します.
例えば,MemoにAttribute:text Type:Stringを追加した場合は以下のように編集しましょう.
import Foundation
import CoreData
extension Memo {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Memo> {
return NSFetchRequest<Memo>(entityName: "Memo")
}
@NSManaged public var title: String?
@NSManaged public var text: String? // ここを追加
}
extension Memo : Identifiable {
}
「@NSManaged public var text: String?」を追加することで完了です.
まとめ
プロジェクトの開始〜CoreDataの初期設定までをわかりやすく解説しました.
長くなりそうだったので今回はここまで.
次回は,
CoreDataの読み書きをしてみよう!
の予定です.
実際にSwiftUIを使いながらCoreDataに適当な文字列を追加し,保存するという一連の流れをやってみます.
備忘録的なまとめですが,誰かの参考になれば嬉しいです.
少しでも参考になりましたらLGTMやフォロー,Twitterでの拡散をしていただければ幸いです.
次回の記事:この素晴らしいSwiftUIにCoreDataを!【CoreData読み書き編】
参考サイト