Submit Search
Core Data の概要と NSIncrementalStore
15 likes
3,264 views
Tetsuya Kaneuchi
第47回Cocoa勉強会関西(2012/12/01)の発表資料です。
Technology
Read more
1 of 43
Download now
Downloaded 10 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
More Related Content
PDF
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
PPTX
これからはNo sqlの時代って本当ですか
yumi_chappy
PPTX
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
PPTX
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
PDF
Spring Data in a Nutshell
Tsuyoshi Miyake
PDF
[db tech showcase OSS 2017] A27: Talend + MariaDB(SpiderEngine)+ TableauでBI基盤...
Insight Technology, Inc.
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
これからはNo sqlの時代って本当ですか
yumi_chappy
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Spring Data in a Nutshell
Tsuyoshi Miyake
[db tech showcase OSS 2017] A27: Talend + MariaDB(SpiderEngine)+ TableauでBI基盤...
Insight Technology, Inc.
Viewers also liked
(20)
PDF
Adventures in Multithreaded Core Data
Inferis
PDF
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
CocoaHeads
PPT
Dicom standard-of-china 2011-03
Jay Thakkar
PDF
Survival Kit to Asian Business Culture
Hanuman Consulting
PDF
Dyna 2011
mapple2012
PDF
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
Khemjira_P
PDF
Armageddon great war- end of times
Arsalan Mazhar
PDF
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Healthcare Experience Design Conference
PPTX
Pythagoras
visserassen
PDF
M.Phil Computer Science Network Security Projects
Vijay Karan
PPTX
Modal verbs for giving advice
ipasipas
PDF
Double page spread analysis
jlimbmedia
PDF
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
Ibrahimia Church Ftriends
PPTX
Nick Huseman
Nhuseman
PDF
Nasza gminastepnica1
Nowa Stepnica
PDF
كتاب و قرار
Ibrahimia Church Ftriends
PPT
Vinomio Presentation Fw2011
mgt_mcwine
PPT
Gurullos
amjordan22
PPT
Beryllium (pembuatan)
901120125712
PPTX
Adapting cities to climate variability and change bob
Bob Eko Kurniawan
Adventures in Multithreaded Core Data
Inferis
Встреча №8. NSIncrementalStore, или как заставить Core Data варить ваш собств...
CocoaHeads
Dicom standard-of-china 2011-03
Jay Thakkar
Survival Kit to Asian Business Culture
Hanuman Consulting
Dyna 2011
mapple2012
เนื้อหาเรื่อง โครงงานคอมพิวเตอร์
Khemjira_P
Armageddon great war- end of times
Arsalan Mazhar
Jessica Floeh - Transformative Fashion for Diabetes Technologies
Healthcare Experience Design Conference
Pythagoras
visserassen
M.Phil Computer Science Network Security Projects
Vijay Karan
Modal verbs for giving advice
ipasipas
Double page spread analysis
jlimbmedia
الحياه المسيحيه رغم التحديات الكنيسه الانجيليه بالابراهيميه
Ibrahimia Church Ftriends
Nick Huseman
Nhuseman
Nasza gminastepnica1
Nowa Stepnica
كتاب و قرار
Ibrahimia Church Ftriends
Vinomio Presentation Fw2011
mgt_mcwine
Gurullos
amjordan22
Beryllium (pembuatan)
901120125712
Adapting cities to climate variability and change bob
Bob Eko Kurniawan
Ad
Similar to Core Data の概要と NSIncrementalStore
(11)
PDF
僕がやったXaml戦略
Hiroyuki Mori
PPTX
Windows ストア アプリの上手な作り方
一希 大田
PPT
Big data解析ビジネス
Mie Mori
PDF
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
KEY
Core Data
Kosuke Matsuda
PDF
backbone.jsの使用例 その1
Makoto Haruyama
PDF
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
PDF
金魚本読書ノート JPA編
Kazuyoshi Kamitsukasa
PDF
「モダンな」可視化アプリケーション開発とはどのようなものか?
Keiichiro Ono
PDF
ちいさなオブジェクトでドメインモデルを組み立てる
増田 亨
KEY
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
僕がやったXaml戦略
Hiroyuki Mori
Windows ストア アプリの上手な作り方
一希 大田
Big data解析ビジネス
Mie Mori
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
Core Data
Kosuke Matsuda
backbone.jsの使用例 その1
Makoto Haruyama
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
金魚本読書ノート JPA編
Kazuyoshi Kamitsukasa
「モダンな」可視化アプリケーション開発とはどのようなものか?
Keiichiro Ono
ちいさなオブジェクトでドメインモデルを組み立てる
増田 亨
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
Ad
More from Tetsuya Kaneuchi
(7)
PDF
いま OS X アプリがアツい
Tetsuya Kaneuchi
PDF
いまさら NSArray
Tetsuya Kaneuchi
PDF
Dependency Injection FAQ
Tetsuya Kaneuchi
PDF
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
PDF
Core Animation と View
Tetsuya Kaneuchi
KEY
WebViewでエラーページを表示する話
Tetsuya Kaneuchi
KEY
MVCもやもや話
Tetsuya Kaneuchi
いま OS X アプリがアツい
Tetsuya Kaneuchi
いまさら NSArray
Tetsuya Kaneuchi
Dependency Injection FAQ
Tetsuya Kaneuchi
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
Core Animation と View
Tetsuya Kaneuchi
WebViewでエラーページを表示する話
Tetsuya Kaneuchi
MVCもやもや話
Tetsuya Kaneuchi
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 を通じてマネージド・オブジェクト を検索して取得
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