eight meets realm

Post on 23-Jan-2018

2.394 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Eight meets Realm2015/08/25 Realm Meetup

Sansan株式会社 坂本和大

自己紹介

https://github.com/kazu0620

坂本 和大( @kazu0620 )Sansan株式会社 Eight事業部所属

過去に個人で開発したアプリ- ヒミツのアルバム( 35万DL! )- にゃんこタウン( 15万DL! )

AgendaEight について

Realmの良さ

RealmのTipsなど

Realmに今後期待すること

Copyright © Sansan, Inc. All rights reserved.

Copyright © Sansan, Inc. All rights reserved.

v6.2.8 Previous Version

v6.3 Current Version

Copyright © Sansan, Inc. All rights reserved.

名刺をデジタル管理リコメンドでつながる

アプリ同士の名刺交換

検索してつながる

Copyright © Sansan, Inc. All rights reserved.

なぜRealmなのか従来の実装ではFMDBで実装されていた

2015年 4月 一部の機能でRealmを試験的に導入 

メリット / デメリットあるが、

主要機能でも導入すべきと判断

良さ

はやい

良さ

シンプルなIF = 学習コストが低い

オブジェクトを定義して 永続化!

良さ

Realm Browser

良さ

サポートが超手厚い。

slackのrealmチームで質問を投げると、 めっちゃ丁寧に教えてくれる。 realmを利用するならjoinしておくべき。

というわけで

Realmの本格導入

7月にリリースしたフィード機能で利用

サーバーから取得したフィード情報のキャッ

シュにRealmを利用している

Tips / ハマった点など

リレーション

RLMObject(1 to 1)

RLMObject(1 to many)

かんたん!

が、カスケーディングはまだ未対応。紐づくオブジェクトは自分で手動で削除する必要が有ることに注意。

デフォルト値 / PKの設定

PKRealm管理下に置かない

プロパティも設定できる

デフォルト値

現時点ではまだNullがサポートされていないことに注意!

スレッド間でのオブジェクトの扱い

スレッドをまたいでオブジェクトを利用することはできない

PKを渡して、スレッド内で再度objectForPrimaryKeyする

RLMResultは最新の状態が自動で反映される(便利

更新の通知を受け取ることも可能

通知など

RLMResultは更新されてもnowは固定の値のまま (あたりまえ)

時間でselectするクエリの場合はRLMResultsを取得し直そう

PromiseKit(便利)

addOrUpdate(便利)

マイグレーションスキーマの変更があった場合、マイグレーション処理をせずにRealmにアクセスしよ

うとするとExceptionが吐かれる。

新規のモデル追加の場合はマイグレーションしなくとも問題ない。既存のモデルのス

キーマが変わった場合にはマイグレーション必須。

Eightではまだ既存のモデルのスキーマ変更を行ったことはないのでマイグレーション

対応はまだ行っていない。

が、マイグレーション処理がなくともスキーマversionを上げておくのはアリ

Unit Testdebugとは切り分けたデータを使いたい。

テスト毎にデータをtruncateしたい。

Unit TestAPI通信 -> データ生成のテストにはOHHTTPStubsを利用

Fixture通りのデータが正しく格納されていることと、データを正しく引けてる

ことをことをテストする。

Realmに今後期待すること

Nullサポート

モデル毎のデータ変更通知

※いずれも絶賛対応中とのこと!

Copyright © Sansan, Inc. All rights reserved.

0

Sansanは一緒に新しい価値を作っていく 仲間をさがしています。

Ruby, Ruby on Rails (Webアプリケーション)

C#,ASP.NET MVC (Webアプリケーション)

iOS / Android アプリ

-  個人向け名刺管理アプリ「Eight」 -  名刺データ化分散処理システム

-  法人向け名刺管理サービス「Sansan」

-  法人向け名刺管理サービス「Sansan」

-  個人向け名刺管理アプリ「Eight」

エンジニア募集中

Sansan 採用 検索

recruit@sansan.com まで お気軽にご連絡ください。

興味のある方は

top related