Submit Search
Upload
Core Data の概要と NSIncrementalStore
•
15 likes
•
3,252 views
Tetsuya Kaneuchi
Follow
第47回Cocoa勉強会関西(2012/12/01)の発表資料です。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 43
Download now
Download to read offline
Recommended
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
これからはNo sqlの時代って本当ですか
これからはNo sqlの時代って本当ですか
yumi_chappy
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Spring Data in a Nutshell
Spring Data in a Nutshell
Tsuyoshi Miyake
[db tech showcase OSS 2017] A27: Talend + MariaDB(SpiderEngine)+ TableauでBI基盤...
[db tech showcase OSS 2017] A27: Talend + MariaDB(SpiderEngine)+ TableauでBI基盤...
Insight Technology, Inc.
Recommended
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
これからはNo sqlの時代って本当ですか
これからはNo sqlの時代って本当ですか
yumi_chappy
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Spring Data in a Nutshell
Spring Data in a Nutshell
Tsuyoshi Miyake
[db tech showcase OSS 2017] A27: Talend + MariaDB(SpiderEngine)+ TableauでBI基盤...
[db tech showcase OSS 2017] A27: Talend + MariaDB(SpiderEngine)+ TableauでBI基盤...
Insight Technology, Inc.
Adventures in Multithreaded Core Data
Adventures in Multithreaded Core Data
Inferis
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
CocoaHeads
Dicom standard-of-china 2011-03
Dicom standard-of-china 2011-03
Jay Thakkar
Survival Kit to Asian Business Culture
Survival Kit to Asian Business Culture
Hanuman Consulting
Dyna 2011
Dyna 2011
mapple2012
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
Khemjira_P
Armageddon great war- end of times
Armageddon great war- end of times
Arsalan Mazhar
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Healthcare Experience Design Conference
Pythagoras
Pythagoras
visserassen
M.Phil Computer Science Network Security Projects
M.Phil Computer Science Network Security Projects
Vijay Karan
Modal verbs for giving advice
Modal verbs for giving advice
ipasipas
Double page spread analysis
Double page spread analysis
jlimbmedia
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
Ibrahimia Church Ftriends
Nick Huseman
Nick Huseman
Nhuseman
Nasza gminastepnica1
Nasza gminastepnica1
Nowa Stepnica
كتاب و قرار
كتاب و قرار
Ibrahimia Church Ftriends
Vinomio Presentation Fw2011
Vinomio Presentation Fw2011
mgt_mcwine
Gurullos
Gurullos
amjordan22
Beryllium (pembuatan)
Beryllium (pembuatan)
901120125712
Adapting cities to climate variability and change bob
Adapting cities to climate variability and change bob
Bob Eko Kurniawan
僕がやったXaml戦略
僕がやったXaml戦略
Hiroyuki Mori
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
More Related Content
Viewers also liked
Adventures in Multithreaded Core Data
Adventures in Multithreaded Core Data
Inferis
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
CocoaHeads
Dicom standard-of-china 2011-03
Dicom standard-of-china 2011-03
Jay Thakkar
Survival Kit to Asian Business Culture
Survival Kit to Asian Business Culture
Hanuman Consulting
Dyna 2011
Dyna 2011
mapple2012
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
Khemjira_P
Armageddon great war- end of times
Armageddon great war- end of times
Arsalan Mazhar
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Healthcare Experience Design Conference
Pythagoras
Pythagoras
visserassen
M.Phil Computer Science Network Security Projects
M.Phil Computer Science Network Security Projects
Vijay Karan
Modal verbs for giving advice
Modal verbs for giving advice
ipasipas
Double page spread analysis
Double page spread analysis
jlimbmedia
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
Ibrahimia Church Ftriends
Nick Huseman
Nick Huseman
Nhuseman
Nasza gminastepnica1
Nasza gminastepnica1
Nowa Stepnica
كتاب و قرار
كتاب و قرار
Ibrahimia Church Ftriends
Vinomio Presentation Fw2011
Vinomio Presentation Fw2011
mgt_mcwine
Gurullos
Gurullos
amjordan22
Beryllium (pembuatan)
Beryllium (pembuatan)
901120125712
Adapting cities to climate variability and change bob
Adapting cities to climate variability and change bob
Bob Eko Kurniawan
Viewers also liked
(20)
Adventures in Multithreaded Core Data
Adventures in Multithreaded Core Data
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
Dicom standard-of-china 2011-03
Dicom standard-of-china 2011-03
Survival Kit to Asian Business Culture
Survival Kit to Asian Business Culture
Dyna 2011
Dyna 2011
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
Armageddon great war- end of times
Armageddon great war- end of times
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Pythagoras
Pythagoras
M.Phil Computer Science Network Security Projects
M.Phil Computer Science Network Security Projects
Modal verbs for giving advice
Modal verbs for giving advice
Double page spread analysis
Double page spread analysis
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
Nick Huseman
Nick Huseman
Nasza gminastepnica1
Nasza gminastepnica1
كتاب و قرار
كتاب و قرار
Vinomio Presentation Fw2011
Vinomio Presentation Fw2011
Gurullos
Gurullos
Beryllium (pembuatan)
Beryllium (pembuatan)
Adapting cities to climate variability and change bob
Adapting cities to climate variability and change bob
Similar to Core Data の概要と NSIncrementalStore
僕がやったXaml戦略
僕がやったXaml戦略
Hiroyuki Mori
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
Big data解析ビジネス
Big data解析ビジネス
Mie Mori
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
Core Data
Core Data
Kosuke Matsuda
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Makoto Haruyama
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
金魚本読書ノート JPA編
金魚本読書ノート JPA編
Kazuyoshi Kamitsukasa
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
Keiichiro Ono
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
増田 亨
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
Similar to Core Data の概要と NSIncrementalStore
(11)
僕がやったXaml戦略
僕がやったXaml戦略
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
Big data解析ビジネス
Big data解析ビジネス
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Core Data
Core Data
backbone.jsの使用例 その1
backbone.jsの使用例 その1
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
金魚本読書ノート JPA編
金魚本読書ノート JPA編
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
More from Tetsuya Kaneuchi
いま OS X アプリがアツい
いま OS X アプリがアツい
Tetsuya Kaneuchi
いまさら NSArray
いまさら NSArray
Tetsuya Kaneuchi
Dependency Injection FAQ
Dependency Injection FAQ
Tetsuya Kaneuchi
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
Core Animation と View
Core Animation と View
Tetsuya Kaneuchi
WebViewでエラーページを表示する話
WebViewでエラーページを表示する話
Tetsuya Kaneuchi
MVCもやもや話
MVCもやもや話
Tetsuya Kaneuchi
More from Tetsuya Kaneuchi
(7)
いま OS X アプリがアツい
いま OS X アプリがアツい
いまさら NSArray
いまさら NSArray
Dependency Injection FAQ
Dependency Injection FAQ
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Core Animation と View
Core Animation と View
WebViewでエラーページを表示する話
WebViewでエラーページを表示する話
MVCもやもや話
MVCもやもや話
Recently uploaded
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Recently uploaded
(11)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Core Data の概要と NSIncrementalStore
1.
Core Data の概要と NSIncrementalStore
かねうちてつや Cocoa勉強会関西 2012/12/01
2.
自己紹介 かねうちてつや @kaniza フェンリル所属 http://www.fenrir-inc.com/
Sleipnir for Mac, Sleipnir Mobile for iPhone / iPad 等 好きなもの: Emacs, オブジェクト指向, ビール 嫌いなもの: Singleton
3.
近況 開発に復帰してそろそろ2ヶ月 バグの原因を特定してることが多い Mac
の開発がメイン App Store 申請時に LAN が重くなる事態が発生 iPhone 4S の Wi-Fi が死亡
4.
今日のお題 Core Dataの概要 何がうれしいの?
構成ざっくり解説 ちょっと高度な話 Core Data の新しい機能: NSIncrementalStore
5.
Core Data OS X
/ iOS のデータ管理フレームワーク 2005年 Mac OS X 10.4 Tiger とともに登場 2009年 iOS 3.0 に搭載 多くのアプリで採用される主要機能のひとつ 表には出ないながらも着実に機能強化されている
6.
何をしてくれるのか データ設計 設計したデータのセーブ・ロード いわゆる永続化 実行中のデータ変更管理 UndoとかRedo
7.
Core Data よく聞く声 むずかしそう よくわからん 遅い 速くない
8.
Core Dataよく聞く声 複雑なことを扱うので複雑なのはしょうがない 洗練された設計 機能が充実 自分で書くよりは速い 遅いのはチューニングできる
9.
他の手法 User Defaults Property List SQLite XML,
JSONなど
10.
Core Data の長所 大量のデータを扱える
バックエンドに SQLite を利用できる かなり高度なことが比較的簡単にできる データをオブジェクトとして扱える Apple純正 AppKit や UIKit などと親和性が高い
11.
Core Data の短所 関連クラスが多く覚えることが多い どうしてもチューニングできないところがある OS
X / iOS でしか動かない
12.
とはいえ、Apple 純正
13.
ぜひ活用したい
14.
デモ
15.
デモの中身 都道府県+氏名のデータ5000件(ダミー) 特定の都道府県の氏名だけをアイウエオ順に表示 実機でも十分なパフォーマンス 表示時は20件ずつ取得
16.
登場人物
17.
コンテキスト
Pref Person Y Fetch X アプリ Request Person Person Y Z Pref X データモデル 永続化ストア
18.
データモデル Core Data におけるデータ構造を表現したもの NSManagedObjectModel
クラス データオブジェクトのインスタンスに対する「クラ ス」に近い概念
19.
コンテキスト
Pref Person Y Fetch X アプリ Request Person Person Y Z Pref X データモデル 永続化ストア
20.
マネージド・オブジェクト データモデルにもとづくインスタンス つまりアプリに関連するデータオブジェクト 1つのクラスで様々なデータモデルに対応 NSManagedObject
→ 管理されてるオブジェクト 生成、保存、メモリ管理などがCore Dataの管理下 アプリ側はあんまり管理しない
21.
NSManagedObject vs サブクラス //
NSManagedObject をそのまま使う場合 NSManagedObject object = ....; NSString *name = [object valueForKey:@”name”]; // サブクラスを作れば...。必要ならロジックも実装可 Person *person = ....; NSString *name = person.name;
22.
コンテキスト
Pref Person Y Fetch X アプリ Request Person Person Y Z Pref X データモデル 永続化ストア
23.
永続化ストア マネージドオブジェクトを保存しておくところ NSPersistentStoreとNSPersistentStoreCoordinatorの組 合せで実現
24.
コンテキスト
Pref Person Y Fetch X アプリ Request Person Person Y Z Pref X データモデル 永続化ストア
25.
コンテキスト マネージドオブジェクトが存在する場所 保存とか検索とかの操作対象となる NSFetchRequest を通じてマネージド・オブジェクト を検索して取得
26.
27.
コード見てみる
28.
NSFetchedResultsController iOS の Table
View のデータソースに Core Data を使う 時に便利なクラス 特定条件でのマネージド・オブジェクト取得・変更 の監視などを効率的に実行 データの変更を簡単に Table View に反映できる 使い方がパターン化しており再利用性が高い
29.
ちょっと高度な話
30.
Core Data と並列処理 コンテキストとその中のマネージド・オブジェクトは 「生成したスレッド」でのみアクセスする
スレッドごとに複数のコンテキストを作って、保存 時にマージできる スレッド間でやりとりする場合は ObjectID を使う Lion / iOS 5 以降は非同期処理対応が改善
31.
最近困っていること 某アプリでMac を起動後はじめての起動で、ある特 定の fetch
が恐ろしいほど遅い 数十秒以上かかるケースも 2回目以降は(アプリ再起動しても)速い pread で刺さっている。バックグラウンドでも刺さ ってメインスレッドがほぼ止まる
32.
NSIncrementalStore
33.
NSIncrementalStore NSPersistentStore の抽象サブクラス SQLite
や XML の代わりに使える 兄弟クラス: NSAtomicStore CSVファイルなどをデータストアに使う
34.
NSIncrementalStore ちょっとずつアクセスするストア 主に Web サービスを想定
Core Data のバックエンドに Web サービス! Incremental Store Programming Guide を読むしか! でも実質1ページしかない!よくわからん!!
35.
でも注目している人はいる
36.
http://sealedabstract.com/code/nsincrementalstore-the-future-of-web-services-in-ios-mac-os-x/
37.
http://nshipster.com/nsincrementalstore/
38.
AFIncrementalStore
39.
AFIncrementalStore AFNetworking ライブラリの拡張として提供 AFRESTClient のサブクラスを実装すれば
HTTP ベー スのウェブサービスを利用するNSIncrementalStoreが (ほぼ)完成! SQLite も補助的なバックエンドとして使う 裏でもうひとつコンテキストを管理している
40.
<AFIncrementalStoreHTTPClient>
AFHTTPClient AFIncrementalStore AFRESTClient MyIncrementalStore MyRESTClient
41.
MyRESTClient でやること Fetch Request
を HTTP Request に変換 レスポンスから対象となる配列を抽出 レスポンス内のデータをデータモデルのデータにマッ ピング その他ごにょごにょ
42.
Incremental Store のすすめ Incremental
Store は将来性のある機能 でもあんまり話題にはなっていない 定評ある AFNetworking 方面で実装が登場 次回勉強会テーマにピッタリ!
43.
まとめ Core Data は面倒だけど便利です
「マネージド」な快感がわかったら勝ち Incremental Store 面白そうなのでおすすめです pread で刺さって困ってる人いませんか?
Download now