SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
MagicalRecord
                   h_mori




13年2月16日土曜日
自己紹介
              • 森 英寿(プログラマ)
                 hidetoshi.mori
                 @h_mori

               SOICHA/TweetMe
               ATND暦/生存連絡



13年2月16日土曜日
MagicalRecord
              https://github.com/magicalpanda/MagicalRecord



              • iOS5以上、MacOS10.7以上
              • ARC
              • MIT License


13年2月16日土曜日
特徴

              • CoreDataのORマッパ (ActiveRecord風)
              • マルチスレッド上での操作が楽
              • iCloudをサポート


13年2月16日土曜日
NSArray *people = [Person MR_findAll];

              Person *newPerson = [Person MR_createEntity];

              Person *person = ...;
              [MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext
              *localContext){
                  Person *localPerson = [person MR_inContext:localContext];
                  localPerson.firstName = @"John";
                  localPerson.lastName = @"Appleseed";
              }];




13年2月16日土曜日
メリット
              • CoreData, iCloudとの親和性が高い
              • ManagedObjectContextが管理されている
              • 普通のモデルと同じ感覚で扱える
                 • 後で永続化しやすい

13年2月16日土曜日
mogenerator

              • ジェネレーションギャップパターン
               • ManagedObjectは自動生成モデル
               • 編集した場合はマージが必要になる


13年2月16日土曜日
仕組み
              •   ツールで_modelと派生のmodelクラスが生成

              •   _modelは触らず、modelのみを編集する

              •   CoreDataモデルを変更した場合はツールで_model
                  のみが更新される




13年2月16日土曜日
コマンド
                http://rentzsch.github.com/mogenerator/


              • mogenerator --template-var arc=true -m ./
                Resources/CoreData/main.xcdatamodeld/
                main.xcdatamodel/ -O ./Classes/




13年2月16日土曜日
CoreData怖くないよ\(^o^)/




13年2月16日土曜日

Más contenido relacionado

La actualidad más candente

さくらのクラウドAPIをsacloudつかってさわってみた
さくらのクラウドAPIをsacloudつかってさわってみたさくらのクラウドAPIをsacloudつかってさわってみた
さくらのクラウドAPIをsacloudつかってさわってみたTak Nishikori
 
OSC 2016 Nagoya - MineOSのすすめ -
OSC 2016 Nagoya - MineOSのすすめ -OSC 2016 Nagoya - MineOSのすすめ -
OSC 2016 Nagoya - MineOSのすすめ -roamer7038
 
pieniというFWを作ってみる。
pieniというFWを作ってみる。pieniというFWを作ってみる。
pieniというFWを作ってみる。Kenta Saito
 
さわってみよう Couchbase Lite
さわってみよう Couchbase Liteさわってみよう Couchbase Lite
さわってみよう Couchbase Litessd kfk
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしyamanekko
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道Shigeru UCHIYAMA
 
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~Ryunosuke SATO
 
はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~Ryunosuke SATO
 
社内勉強会 - 書籍管理Webシステム
社内勉強会 - 書籍管理Webシステム社内勉強会 - 書籍管理Webシステム
社内勉強会 - 書籍管理WebシステムNemoto Yusuke
 
Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)
Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)
Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)純生 野田
 

La actualidad más candente (11)

さくらのクラウドAPIをsacloudつかってさわってみた
さくらのクラウドAPIをsacloudつかってさわってみたさくらのクラウドAPIをsacloudつかってさわってみた
さくらのクラウドAPIをsacloudつかってさわってみた
 
Effective flutter
Effective flutterEffective flutter
Effective flutter
 
OSC 2016 Nagoya - MineOSのすすめ -
OSC 2016 Nagoya - MineOSのすすめ -OSC 2016 Nagoya - MineOSのすすめ -
OSC 2016 Nagoya - MineOSのすすめ -
 
pieniというFWを作ってみる。
pieniというFWを作ってみる。pieniというFWを作ってみる。
pieniというFWを作ってみる。
 
さわってみよう Couchbase Lite
さわってみよう Couchbase Liteさわってみよう Couchbase Lite
さわってみよう Couchbase Lite
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
 
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
もっとはじめる Ember.js !! ~ Getting started with Ember.js more ~
 
はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~はじめる Ember.js!! ~ Getting started with ember.js ~
はじめる Ember.js!! ~ Getting started with ember.js ~
 
社内勉強会 - 書籍管理Webシステム
社内勉強会 - 書籍管理Webシステム社内勉強会 - 書籍管理Webシステム
社内勉強会 - 書籍管理Webシステム
 
Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)
Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)
Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)
 

Destacado

プロジェクト管理しないという提案
プロジェクト管理しないという提案プロジェクト管理しないという提案
プロジェクト管理しないという提案Hidetoshi Mori
 
コンシューマアプリを作るということ
コンシューマアプリを作るということコンシューマアプリを作るということ
コンシューマアプリを作るということHidetoshi Mori
 
Framerで始めるプロトタイプコーディング
Framerで始めるプロトタイプコーディングFramerで始めるプロトタイプコーディング
Framerで始めるプロトタイプコーディングmasaaki komori
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (12)

20130216 小ネタ集
20130216 小ネタ集20130216 小ネタ集
20130216 小ネタ集
 
Evernote連携
Evernote連携Evernote連携
Evernote連携
 
Photo mosaic 検証
Photo mosaic 検証Photo mosaic 検証
Photo mosaic 検証
 
プロジェクト管理しないという提案
プロジェクト管理しないという提案プロジェクト管理しないという提案
プロジェクト管理しないという提案
 
Blocksの活用法
Blocksの活用法Blocksの活用法
Blocksの活用法
 
コンシューマアプリを作るということ
コンシューマアプリを作るということコンシューマアプリを作るということ
コンシューマアプリを作るということ
 
Facebook api for iOS
Facebook api for iOSFacebook api for iOS
Facebook api for iOS
 
Storyboard
StoryboardStoryboard
Storyboard
 
Framerで始めるプロトタイプコーディング
Framerで始めるプロトタイプコーディングFramerで始めるプロトタイプコーディング
Framerで始めるプロトタイプコーディング
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a 20130216 magical record

mongodbの簡易ストレージ化
mongodbの簡易ストレージ化mongodbの簡易ストレージ化
mongodbの簡易ストレージ化Hidetoshi Mori
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7Hiroshi Oyamada
 
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる智之 大野
 

Similar a 20130216 magical record (6)

mongodbの簡易ストレージ化
mongodbの簡易ストレージ化mongodbの簡易ストレージ化
mongodbの簡易ストレージ化
 
Code injectiontool
Code injectiontoolCode injectiontool
Code injectiontool
 
2012.02.28 IAMAS GeekLab #037 MyScripts
2012.02.28 IAMAS GeekLab #037 MyScripts2012.02.28 IAMAS GeekLab #037 MyScripts
2012.02.28 IAMAS GeekLab #037 MyScripts
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7
 
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
 
Scala conf2013
Scala conf2013Scala conf2013
Scala conf2013
 

Más de Hidetoshi Mori

20130515 diary euglena_en
20130515 diary euglena_en20130515 diary euglena_en
20130515 diary euglena_enHidetoshi Mori
 
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作るUITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作るHidetoshi Mori
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向Hidetoshi Mori
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察Hidetoshi Mori
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向Hidetoshi Mori
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程Hidetoshi Mori
 
ゲリラ的サービスの育て方
ゲリラ的サービスの育て方ゲリラ的サービスの育て方
ゲリラ的サービスの育て方Hidetoshi Mori
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察Hidetoshi Mori
 
Presentation of TapkuLibrary
Presentation of TapkuLibraryPresentation of TapkuLibrary
Presentation of TapkuLibraryHidetoshi Mori
 

Más de Hidetoshi Mori (12)

Git超入門
Git超入門Git超入門
Git超入門
 
20130515 diary euglena_en
20130515 diary euglena_en20130515 diary euglena_en
20130515 diary euglena_en
 
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作るUITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作る
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
ゲリラ的サービスの育て方
ゲリラ的サービスの育て方ゲリラ的サービスの育て方
ゲリラ的サービスの育て方
 
インタラクションデザインの考察
インタラクションデザインの考察インタラクションデザインの考察
インタラクションデザインの考察
 
Presentation of TapkuLibrary
Presentation of TapkuLibraryPresentation of TapkuLibrary
Presentation of TapkuLibrary
 
Facebook API for iOS
Facebook API for iOSFacebook API for iOS
Facebook API for iOS
 
FacebookAPI for iOS
FacebookAPI for iOSFacebookAPI for iOS
FacebookAPI for iOS
 

20130216 magical record

  • 1. MagicalRecord h_mori 13年2月16日土曜日
  • 2. 自己紹介 • 森 英寿(プログラマ) hidetoshi.mori @h_mori SOICHA/TweetMe ATND暦/生存連絡 13年2月16日土曜日
  • 3. MagicalRecord https://github.com/magicalpanda/MagicalRecord • iOS5以上、MacOS10.7以上 • ARC • MIT License 13年2月16日土曜日
  • 4. 特徴 • CoreDataのORマッパ (ActiveRecord風) • マルチスレッド上での操作が楽 • iCloudをサポート 13年2月16日土曜日
  • 5. NSArray *people = [Person MR_findAll]; Person *newPerson = [Person MR_createEntity]; Person *person = ...; [MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext *localContext){ Person *localPerson = [person MR_inContext:localContext]; localPerson.firstName = @"John"; localPerson.lastName = @"Appleseed"; }]; 13年2月16日土曜日
  • 6. メリット • CoreData, iCloudとの親和性が高い • ManagedObjectContextが管理されている • 普通のモデルと同じ感覚で扱える • 後で永続化しやすい 13年2月16日土曜日
  • 7. mogenerator • ジェネレーションギャップパターン • ManagedObjectは自動生成モデル • 編集した場合はマージが必要になる 13年2月16日土曜日
  • 8. 仕組み • ツールで_modelと派生のmodelクラスが生成 • _modelは触らず、modelのみを編集する • CoreDataモデルを変更した場合はツールで_model のみが更新される 13年2月16日土曜日
  • 9. コマンド http://rentzsch.github.com/mogenerator/ • mogenerator --template-var arc=true -m ./ Resources/CoreData/main.xcdatamodeld/ main.xcdatamodel/ -O ./Classes/ 13年2月16日土曜日