マーケターのプログラミング日記

東京、シンガポールを経てシリコンバレーで働く、マーケター。英語、プログラミング、データ分析は次世代マーケターの必須スキルだと信じて進む。

Core Data

GAエントリーからの課題、今日は、Core Data です。

背景

SQLiteは、アプリにデータベース機能を提供するということで、非常に有効。同時にSQLのステートメントを書いたり、データベースの構造を管理しないといけない、などオブジェクト指向ではないというSQLite(relational型)の特性からくる複雑さがあるのも事実。そこを踏まえて、Appleが、Core Data Frameworkを提供した。

Core Dataは、SQLiteなどのデータ保存のwrappperを保有する、データベースに関する知識を必要としないFramework。

とのことです。実際に使ってる。

詳しい説明

アップル公式Core Data 日本語解説

 

Step by Step

1) New projectを作成するときに、"Use Core Data"にチェック。

ここを気づかずに、少しハマりました。

f:id:yuyutata:20150524165304p:plain

すると、".xcdatamodeld"ファイルがプロジェクトに追加さています。

2) Entity editorから、アトリビュードを追加する

ここは、SQLiteと比べるとわかりやすいですね。

f:id:yuyutata:20150524165450p:plain

3) ManagedObjectサブクラスを作成

データモデルは、NSManagedObjectクラスのサブクラスとしてrepresentedされるので、NSManagedObjectサブクラスを作成します。

Entity Editor-->Editor-->Create NSManagedObject Subclass

f:id:yuyutata:20150524165945p:plain

これで、作成したEntityのためのNSManagedObjectのサブクラスクラスができました。

f:id:yuyutata:20150524170244p:plain

4) Entityのクラスの名前を変更

Classには、アプリケーションの名前をEntityの名前の前に入れるように変更する。ちなみに、入れなくても動いた。。

f:id:yuyutata:20150524170737p:plain

5) 準備完了。コーディング。

Step.1) Obtain the managed object context

Step.2) Get an Entity Description

Step.3) Generate a managed Object Subclass

Step.4) Set the attrbutes of a managed object

Step.5) Save a Managed Object

 

雑感

Core Dataについての理解が深まりました。コードに関してはもうこういうもの!とひとまず腹をくくって進みます。。いろいろ調べてみると、”Use Core Data"のチェックボックスは、x-codeの古いバージョンにはないようで、その時点の解説では、”Link Binary With Librarires"から”coredata.framework"を入れていました。

また、プロジェクト作成時にチェックボックスが出てくるので、Google Analytics SDKのようにすでに完成されているアプリに入れる場合は、”Link Binary With Librarires"からCore Dataを追加する必要がありそうです。

つまりGoogle Analyticsは、SQLiteとCore Dataフレームークを両方使って計測ログをローカルに保存している。ということでしょう。両方使う必要はないんじゃないかな。。バージョンの進化の名残?どういうことでしょう。