Upload
asakahara
View
1.846
Download
5
Embed Size (px)
DESCRIPTION
Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする
Citation preview
MagicalRecordでCore Dataをシンプルにする
Cocoa 勉強会 関西
2014/4/19 @asakahara
まずは自己紹介
•今年2月からはてなスタッフとして滋賀に移住したばかり •それ以前は広島のECサイト運営会社とフリーランスで
3年ほどiOSアプリ開発に従事
•個人でもiOSアプリを5本ほどリリース
•最近は仕事以外でも夜な夜なアプリ作るのが日課
少し宣伝を・・・是非お試しください!
Core Data って使いやすいですか?
では本題です
•使うための前準備だけでいろいろ書く必要がある
•マルチスレッドの場合、スレッド毎にContextを用意しな
いといけない等の準備が必要 •単純なクエリでもコード量増えがち
•NSUserDefaultsみたいに簡単に使いにくい
機能は充実しているけど・・・
など問題ありますよね・・・
もっと気軽に使いたい!
と思ってたら それらを解決してくれる ライブラリが既に
たくさん作られていました
その中から今日は 以前から開発されていて
情報も多いMagicalRecordについて 簡単に紹介します
MagicalRecordとは?• Active Recordパターンを採用したCore Data のラッパー
• Core Dataの機能もそのまま使える
• Core Data特有の処理を隠蔽してくれる
• Core Dataの知識があれば学習コストは低い
面倒なことを肩代わりしてくれます!
mogeneratorについても紹介Xcodeで作成したモデルファイルから各エンティティ用の NSManagedObject派生クラスを自動生成してくれるユーティリティ
Xcodeでもできるけど・・・ •カスタマイズ専用のサブクラスも一緒に出力してくれる
•固有の処理はサブクラスに書いておけば再出力しても上書きされない等のメリットがある
補足: MagicalRecordとmogeneratorを一緒に使うとリジェクトされるケースがあるらしい
Ver 2.3.0(ベータ)では解決しているとのこと
MagicalRecordの導入
platform :ios, '7.0'pod 'MagicalRecord'
・Podfileの作成
・インストール> pod install
> brew install mogenerator
・mogenerator はHomebrewでインストールするのが簡単
monegeratorの使い方
> mogenerator --template-var arc=true \ -m ./project/Model/DataModel.xcdatamodeld \ -O ./project/Model/
・コマンド
使い方
[MagicalRecord setupCoreDataStackWithStoreNamed:@“データモデル名.sqlite”];
application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
•後処理(applicationWillTerminate:)
[MagicalRecord cleanUp];
•セットアップ
CRUDNSArray *people = [Person MR_findAll];!NSArray *peopleSorted = [Person MR_findAllSortedByProperty: @"LastName" ascending:YES];!
•クエリ
•登録Person *myNewPersonInstance = [Person MR_createEntity];
Person *p = ...;[p MR_deleteEntity];
•削除
[[NSManagedObjectContext MR_defaultContext] MR_saveOnlySelfAndWait];
•保存
詳細な使い方はドキュメントを見ていきましょう !
https://github.com/magicalpanda/MagicalRecord
MagicalRecordを使ったサンプルを 公開してますので参考にしてください
https://github.com/asakahara/ASHatenaBlogReader
今日のまとめ
• MagicalRecordを使うことで開発効率のアップ
•簡単に使える分、Core Dataが裏で何をやってるかを
常に意識しながら開発するのがベスト •気になるところは実際にソースコードを見てみるとよい
面倒で決まりきった処理は ライブラリにまかせて
自分たちが本当に作るべき物を集中して開発できる環境にして
いきましょう!
• iOS Core Data 徹底入門 !日本語のCore Dataに関する書籍は少ないので貴重な一冊です !マルチスレッドで使用する際の情報があればもっとよかった
Core Dataをよりよく 知るために
活動中のSNS、ブログなど
•はてなブログ:http://sakahara.hatenablog.jp/
•個人サイト:http://www.mocology.com/ja/
• Twitter:@asakahara
• qiita:http://qiita.com/asakahara
ご清聴ありがとう ございました!