O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Core Data の概要と NSIncrementalStore

4.469 visualizações

Publicada em

第47回Cocoa勉強会関西(2012/12/01)の発表資料です。

Publicada em: Tecnologia
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Core Data の概要と NSIncrementalStore

  1. 1. Core Data の概要とNSIncrementalStore かねうちてつや Cocoa勉強会関西 2012/12/01
  2. 2. 自己紹介かねうちてつや @kanizaフェンリル所属 http://www.fenrir-inc.com/ Sleipnir for Mac, Sleipnir Mobile for iPhone / iPad 等好きなもの: Emacs, オブジェクト指向, ビール嫌いなもの: Singleton
  3. 3. 近況開発に復帰してそろそろ2ヶ月 バグの原因を特定してることが多い Mac の開発がメインApp Store 申請時に LAN が重くなる事態が発生iPhone 4S の Wi-Fi が死亡
  4. 4. 今日のお題Core Dataの概要 何がうれしいの? 構成ざっくり解説 ちょっと高度な話Core Data の新しい機能: NSIncrementalStore
  5. 5. Core DataOS X / iOS のデータ管理フレームワーク2005年 Mac OS X 10.4 Tiger とともに登場2009年 iOS 3.0 に搭載多くのアプリで採用される主要機能のひとつ表には出ないながらも着実に機能強化されている
  6. 6. 何をしてくれるのかデータ設計設計したデータのセーブ・ロード いわゆる永続化実行中のデータ変更管理UndoとかRedo
  7. 7. Core Data よく聞く声むずかしそうよくわからん遅い速くない
  8. 8. Core Dataよく聞く声複雑なことを扱うので複雑なのはしょうがない洗練された設計機能が充実自分で書くよりは速い遅いのはチューニングできる
  9. 9. 他の手法User DefaultsProperty ListSQLiteXML, JSONなど
  10. 10. Core Data の長所大量のデータを扱える バックエンドに SQLite を利用できるかなり高度なことが比較的簡単にできるデータをオブジェクトとして扱えるApple純正 AppKit や UIKit などと親和性が高い
  11. 11. Core Data の短所関連クラスが多く覚えることが多いどうしてもチューニングできないところがあるOS X / iOS でしか動かない
  12. 12. とはいえ、Apple 純正
  13. 13. ぜひ活用したい
  14. 14. デモ
  15. 15. デモの中身都道府県+氏名のデータ5000件(ダミー)特定の都道府県の氏名だけをアイウエオ順に表示実機でも十分なパフォーマンス表示時は20件ずつ取得
  16. 16. 登場人物
  17. 17. コンテキスト Pref Person Y Fetch Xアプリ Request Person Person Y Z Pref X データモデル 永続化ストア
  18. 18. データモデルCore Data におけるデータ構造を表現したものNSManagedObjectModel クラスデータオブジェクトのインスタンスに対する「クラス」に近い概念
  19. 19. コンテキスト Pref Person Y Fetch Xアプリ Request Person Person Y Z Pref X データモデル 永続化ストア
  20. 20. マネージド・オブジェクトデータモデルにもとづくインスタンス つまりアプリに関連するデータオブジェクト 1つのクラスで様々なデータモデルに対応NSManagedObject → 管理されてるオブジェクト 生成、保存、メモリ管理などがCore Dataの管理下 アプリ側はあんまり管理しない
  21. 21. NSManagedObject vs サブクラス//  NSManagedObject  をそのまま使う場合NSManagedObject  object  =  ....;NSString  *name  =  [object  valueForKey:@”name”];//  サブクラスを作れば...。必要ならロジックも実装可Person  *person  =  ....;NSString  *name  =  person.name;
  22. 22. コンテキスト Pref Person Y Fetch Xアプリ Request Person Person Y Z Pref X データモデル 永続化ストア
  23. 23. 永続化ストアマネージドオブジェクトを保存しておくところNSPersistentStoreとNSPersistentStoreCoordinatorの組合せで実現
  24. 24. コンテキスト Pref Person Y Fetch Xアプリ Request Person Person Y Z Pref X データモデル 永続化ストア
  25. 25. コンテキストマネージドオブジェクトが存在する場所保存とか検索とかの操作対象となるNSFetchRequest を通じてマネージド・オブジェクトを検索して取得
  26. 26. コード見てみる
  27. 27. NSFetchedResultsControlleriOS の Table View のデータソースに Core Data を使う時に便利なクラス特定条件でのマネージド・オブジェクト取得・変更の監視などを効率的に実行データの変更を簡単に Table View に反映できる使い方がパターン化しており再利用性が高い
  28. 28. ちょっと高度な話
  29. 29. Core Data と並列処理コンテキストとその中のマネージド・オブジェクトは「生成したスレッド」でのみアクセスする スレッドごとに複数のコンテキストを作って、保存 時にマージできる スレッド間でやりとりする場合は ObjectID を使うLion / iOS 5 以降は非同期処理対応が改善
  30. 30. 最近困っていること某アプリでMac を起動後はじめての起動で、ある特定の fetch が恐ろしいほど遅い 数十秒以上かかるケースも 2回目以降は(アプリ再起動しても)速い pread で刺さっている。バックグラウンドでも刺さ ってメインスレッドがほぼ止まる
  31. 31. NSIncrementalStore
  32. 32. NSIncrementalStoreNSPersistentStore の抽象サブクラス SQLite や XML の代わりに使える兄弟クラス: NSAtomicStore CSVファイルなどをデータストアに使う
  33. 33. NSIncrementalStoreちょっとずつアクセスするストア主に Web サービスを想定 Core Data のバックエンドに Web サービス!Incremental Store Programming Guide を読むしか! でも実質1ページしかない!よくわからん!!
  34. 34. でも注目している人はいる
  35. 35. http://sealedabstract.com/code/nsincrementalstore-the-future-of-web-services-in-ios-mac-os-x/
  36. 36. http://nshipster.com/nsincrementalstore/
  37. 37. AFIncrementalStore
  38. 38. AFIncrementalStoreAFNetworking ライブラリの拡張として提供AFRESTClient のサブクラスを実装すれば HTTP ベースのウェブサービスを利用するNSIncrementalStoreが(ほぼ)完成!SQLite も補助的なバックエンドとして使う 裏でもうひとつコンテキストを管理している
  39. 39. <AFIncrementalStoreHTTPClient> AFHTTPClientAFIncrementalStore AFRESTClientMyIncrementalStore MyRESTClient
  40. 40. MyRESTClient でやることFetch Request を HTTP Request に変換レスポンスから対象となる配列を抽出レスポンス内のデータをデータモデルのデータにマッピングその他ごにょごにょ
  41. 41. Incremental Store のすすめIncremental Store は将来性のある機能 でもあんまり話題にはなっていない定評ある AFNetworking 方面で実装が登場次回勉強会テーマにピッタリ!
  42. 42. まとめCore Data は面倒だけど便利です 「マネージド」な快感がわかったら勝ちIncremental Store 面白そうなのでおすすめですpread で刺さって困ってる人いませんか?

×