Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする

  • 1,437 views
Uploaded on

Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする

Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,437
On Slideshare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
1
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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