• Like
Realmについて
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Realmについて

  • 159 views
Published

・Realmとは …

・Realmとは
・Realmの簡単な使い方
・Realmの内部構造

Published 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
159
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
0
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. 浅野 友希 について
  • 2. Who am I? 浅野 友希 (Asano Yuki) @yuuki1224st 京都工芸繊維大学 工芸科学部 電子システム工学課程 5回生 書ける言語: Objective-C 一応歩んできた道.. C→VisualBasic→Java(Android)→PHP→Ruby→Objective-C
  • 3. で、今日発表することは..
  • 4. 今日は、Realmの話をしようと思います。 面白いかどうかわかりませんが.. 1. Realmとは 2. 使い方 3. Realmの内部的な話(ソースコード)
  • 5. とは.. ・Mobileの データベース+ORM (Cocoa/Android) 似たようなのだと.. SugarRecord / MagicalRecord FMDB / CoreData / sqlite / Mantle
  • 6. Realmの使い方
  • 7. RealmModelクラスの定義 関連付け(1対1) 関連付け(1対多)
  • 8. オブジェクトの追加 Realmモデルクラスのインスタンス作って Realmインスタンス作って ここでトランザクション使って、 Realmにオブジェクトを保存してる
  • 9. オブジェクトの取り出し ここで取り出してる NSPredicateを使ってフェッチ
  • 10. JSONデータ こんな感じで合わせておけば.. Contact Location Venue
  • 11. JSON → RLMObject が簡単!! (Mantleみたい)
  • 12. スレッド スレッド間でインスタンスの受け渡しはできない RLMRealmインスタンス RLMRealmインスタンス
  • 13. realm-cocoaの内部的な話 (ソースコード)
  • 14. realm-cocoa tightdb(C++) RLMRealm RLMSchema RLMObjectSchema Group Table Dog : RLMObject RLMResults Table(検索結果) OSSじゃない!OSS RLMProperty RLMProperty RLMProperty RLMObjectSchema RLMProperty RLMProperty RLMProperty RLMObjectSchema RLMProperty RLMProperty RLMProperty Person: RLMObject Food : RLMObject Row (Realmモデルクラスのインスタンスと対応) Row (Realmモデルクラスのインスタンスと対応) Row (Realmモデルクラスのインスタンスと対応)
  • 15. [RLMRealm defaultRealm]で、Realmインスタンスが作られる時 このタイミングになる
  • 16. RLMSchema.mmに + (void)initialize; 1. 全てのクラスを objc_copyClassList() でとってきて、 RLMObject継承のものだけを調べる 2. Realmモデルクラスのものだけ、class_copyPropertyList()し てRLMPropertyインスタンスを作って, RLMObjectSchemaイン スタンスを作る RLMSchema RLMObjectSchema Dog : RLMObject RLMProperty RLMProperty RLMProperty RLMObjectSchema RLMProperty RLMProperty RLMProperty RLMObjectSchema RLMProperty RLMProperty RLMProperty Person: RLMObject Food : RLMObject RLMSchemのグローバル変数_sharedSchema
  • 17. アクセッサクラスが作られる Userクラス RLMStandalone_UserクラスRLMAccessor_Userクラス アクセッサがMethod Swizzlingされてて C++のAPIからゲット/セットできる
  • 18. なんでSQLiteより速いのか? 1. そもそもtightdbがsqliteより薄い 2. RLMResultsの遅延させる仕組み Sqlitetightdb CoreData realm-cocoa SQL C++API fetch結果のTableRLMResults fetch要求 RLMResultsが返ってくる 結論
  • 19. ご静聴ありがとうございました!!