SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Eight meets Realm 2015/08/25 Realm Meetup
Sansan株式会社 坂本和大
自己紹介
https://github.com/kazu0620
坂本 和大( @kazu0620 )
Sansan株式会社 Eight事業部所属
過去に個人で開発したアプリ
- ヒミツのアルバム( 35万DL! )
- にゃんこタウン( 15万DL! )
Agenda
Eight について
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の設定
PK
Realm管理下に置かない
プロパティも設定できる
デフォルト値
現時点ではまだNullがサポートされていないことに注意!
スレッド間でのオブジェクトの扱い
スレッドをまたいでオブジェクトを利用することはできない
PKを渡して、スレッド内で再度objectForPrimaryKeyする
RLMResultは最新の状態が自動で反映される(便利
更新の通知を受け取ることも可能
通知など
RLMResultは更新されてもnowは固定の値のまま
(あたりまえ)
時間でselectするクエリの場合はRLMResultsを取得し直そう
PromiseKit(便利)
addOrUpdate(便利)
マイグレーション
スキーマの変更があった場合、マイグレーション処理をせずにRealmにアクセスしよ
うとするとExceptionが吐かれる。
新規のモデル追加の場合はマイグレーションしなくとも問題ない。既存のモデルのス
キーマが変わった場合にはマイグレーション必須。
Eightではまだ既存のモデルのスキーマ変更を行ったことはないのでマイグレーション
対応はまだ行っていない。
が、マイグレーション処理がなくともスキーマversionを上げておくのはアリ
Unit Test
debugとは切り分けたデータを使いたい。
テスト毎にデータをtruncateしたい。
Unit Test
API通信 -> データ生成のテストには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 まで
お気軽にご連絡ください。
興味のある方は
Eight meets Realm

Más contenido relacionado

Destacado

iOS AntiPatterns & Refactoring
iOS AntiPatterns & RefactoringiOS AntiPatterns & Refactoring
iOS AntiPatterns & RefactoringKazuhiro Sakamoto
 
Facebook Parseの世界
Facebook Parseの世界Facebook Parseの世界
Facebook Parseの世界maruyama097
 
誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方666oh666
 
自己紹介
自己紹介自己紹介
自己紹介kan
 
Windows 8 sansan 名刺管理
Windows 8   sansan 名刺管理Windows 8   sansan 名刺管理
Windows 8 sansan 名刺管理Yuki Motoyama
 
【会社概要】ソラド会社紹介
【会社概要】ソラド会社紹介【会社概要】ソラド会社紹介
【会社概要】ソラド会社紹介Solad
 
「自己紹介/家族紹介」のコミュニケーション活動例
「自己紹介/家族紹介」のコミュニケーション活動例「自己紹介/家族紹介」のコミュニケーション活動例
「自己紹介/家族紹介」のコミュニケーション活動例ch4station
 
自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124
自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124
自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124ebina yohichi
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編infinite_loop
 
JAM就活キックオフ pdfプレゼン
JAM就活キックオフ pdfプレゼンJAM就活キックオフ pdfプレゼン
JAM就活キックオフ pdfプレゼンKengo Muraguchi
 
(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう
(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう
(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えようschoowebcampus
 
サイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチームサイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチームRyo Mitoma
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid SystemKeiji Ariyama
 
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかたエンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかたAkira Kubo
 

Destacado (17)

iOS AntiPatterns & Refactoring
iOS AntiPatterns & RefactoringiOS AntiPatterns & Refactoring
iOS AntiPatterns & Refactoring
 
Facebook Parseの世界
Facebook Parseの世界Facebook Parseの世界
Facebook Parseの世界
 
誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方
 
自己紹介
自己紹介自己紹介
自己紹介
 
Windows 8 sansan 名刺管理
Windows 8   sansan 名刺管理Windows 8   sansan 名刺管理
Windows 8 sansan 名刺管理
 
【会社概要】ソラド会社紹介
【会社概要】ソラド会社紹介【会社概要】ソラド会社紹介
【会社概要】ソラド会社紹介
 
「自己紹介/家族紹介」のコミュニケーション活動例
「自己紹介/家族紹介」のコミュニケーション活動例「自己紹介/家族紹介」のコミュニケーション活動例
「自己紹介/家族紹介」のコミュニケーション活動例
 
自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124
自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124
自己紹介| 新春プレゼン道セミナー・2015年版「自己紹介プレゼン」 |20150124
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
JAM就活キックオフ pdfプレゼン
JAM就活キックオフ pdfプレゼンJAM就活キックオフ pdfプレゼン
JAM就活キックオフ pdfプレゼン
 
(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう
(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう
(授業後)人気アプリのマーケティングの現場から学ぶ - 効果的なPR施策を考えよう
 
Correct answers, free money
Correct answers, free moneyCorrect answers, free money
Correct answers, free money
 
サイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチームサイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチーム
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
 
Realm meet up #17
Realm meet up #17Realm meet up #17
Realm meet up #17
 
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかたエンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
 

Similar a Eight meets Realm

rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41thrablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41thKoichiro Sumi
 
そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)輝 子安
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。Sho Yoshida
 
Soracom gateによるルータの向こう側
Soracom gateによるルータの向こう側Soracom gateによるルータの向こう側
Soracom gateによるルータの向こう側Ishikawa Shogo
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Hirokazu Egashira
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザインAtsushi Kojima
 
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない -
RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない -CData Software Japan
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件今城 善矩
 
JAWS-UG山形 AWSのきほん 2016/11/12
JAWS-UG山形 AWSのきほん 2016/11/12 JAWS-UG山形 AWSのきほん 2016/11/12
JAWS-UG山形 AWSのきほん 2016/11/12 Gyori Nagafuchi
 
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会株式会社クライム
 
Rails環境に最適なVue.js構成を探る
 Rails環境に最適なVue.js構成を探る Rails環境に最適なVue.js構成を探る
Rails環境に最適なVue.js構成を探る虎の穴 開発室
 
Dockerで始める開発環境構築
Dockerで始める開発環境構築Dockerで始める開発環境構築
Dockerで始める開発環境構築虎の穴 開発室
 
最新ゲームを支える文言
最新ゲームを支える文言最新ゲームを支える文言
最新ゲームを支える文言miki koganei
 
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkSho Yoshida
 
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Yahoo!デベロッパーネットワーク
 

Similar a Eight meets Realm (20)

rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41thrablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
 
そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)そろそろLambda(CI/CD編)
そろそろLambda(CI/CD編)
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。
 
Soracom gateによるルータの向こう側
Soracom gateによるルータの向こう側Soracom gateによるルータの向こう側
Soracom gateによるルータの向こう側
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
 
AWS Proton を使ってみた
AWS Proton を使ってみたAWS Proton を使ってみた
AWS Proton を使ってみた
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザイン
 
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない -
RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -RPAツールでもできるWeb API 連携  - もう画面変更でロボットが壊れるとは言わせない -
RPAツールでもできるWeb API 連携 - もう画面変更でロボットが壊れるとは言わせない -
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
 
Phpconf2010
Phpconf2010Phpconf2010
Phpconf2010
 
JAWS-UG山形 AWSのきほん 2016/11/12
JAWS-UG山形 AWSのきほん 2016/11/12 JAWS-UG山形 AWSのきほん 2016/11/12
JAWS-UG山形 AWSのきほん 2016/11/12
 
Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ
 
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
 
20150315 realmlt
20150315 realmlt20150315 realmlt
20150315 realmlt
 
Rails環境に最適なVue.js構成を探る
 Rails環境に最適なVue.js構成を探る Rails環境に最適なVue.js構成を探る
Rails環境に最適なVue.js構成を探る
 
Dockerで始める開発環境構築
Dockerで始める開発環境構築Dockerで始める開発環境構築
Dockerで始める開発環境構築
 
Yahoo! JAPAN の Ambari 活用事例 #yjdsnight
Yahoo! JAPAN の Ambari 活用事例 #yjdsnightYahoo! JAPAN の Ambari 活用事例 #yjdsnight
Yahoo! JAPAN の Ambari 活用事例 #yjdsnight
 
最新ゲームを支える文言
最新ゲームを支える文言最新ゲームを支える文言
最新ゲームを支える文言
 
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
 
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
Apache Kafkaによるログ転送とパフォーマンスチューニング - Bonfire Backend #2 -
 

Eight meets Realm