【DroidKaigi 2017】Android リアルタイム通信アプリ作成Tips
発表者
- Fumihiko Shiroyama
- Mikkei Inc.
- github: srym
Realtimeについて
いいところ
- リッチ
悪い点
- 難しい
- 一瞬ネット切れたときどうするんだ
- Proxyの中ではどうするんだ
Realtime Libaries
- WebSocket
- Firebase Raltime Database
- Realtime Mobile Pratform
WebSocket
- WebSocket Server <-> WebSocketClient
- Httpの拡張
- 軽く効率が良い
- 最小2kb Header + Payload
- 双方向通信
OkHttp Supports WebScoket
- 有名なHtppClientが対応した
Tips
- WebSocketは軽くて薄い文ユーザーがやらないといけないことが多い
- ブロードキャストやルーム作成など
Good Points
- Simple and Open Free
- Server Hook point
- binary suport
- can scale
- Redis Pub/Sub
- ある程度確立されている
Bad Points
- 繋がってない時に送られたものは全て失われる
Firebase Realtime Database
- Remote Database <-> Local Database <-> Client
- クライアントはローカルのDBに書き込み、リモートとローカルが同期される
- by Google
- ローカルDBがあるのでオフラインで動かせる
- Google基盤なのでスケールについても心配する必要がない
Data Structure
- json
- リレーションがない
- Joinもないので重複したデータで管理
- まぁ仕方ない
Security Rule
- 非常に簡単に書ける
- 公式にサンプルいっぱいある
Instapp Plugin
- Plugin入れれば使える
firebase Realtime Database
- ぽちぽちでok
Firebase Console
- ここでどんなデータが書き込まれているのか簡単に見れる
Listeners
- 基本使うのは2種類だけ
- ValueEventListenr
- ChildEventListner
Tips
- Pull-to-Refresh
- Desc Ordering
- 逆順ソートができない
- やりたいなら、タイムスタンプを判定させる
setPriprituy(timestamp * -1)
Good
- Offline Support and Sync
- 簡単にセキュリティルールを設けられる
- 他のfirebase,Googleのサービスとの連携
- スケールもきにする必要ない
Bad
- バイナリサポートしていない
- サーバーのフックポイントがない
- 定期巡回できない
- 卑猥なもの送れてしまう
- トリッキーなーオーダーに限度がある
RealmMobilePlatform
- ORMapper
- Cross Platform
使い方
- 資料見て
メモ
- firebaseと同じようにローカルDBと同期できるようになった
- サーバー立てて使う
- 認証
- Realmの認証もあるしGoogleの認証も使える
- Realm3.0がつい先日でた
- ChangeListenerが強化された
- 新しく追加されたデータだけ取れるようになった
- RealmRecycleViewAdapter
- 良いっぽい
Good
- Offline Support and Sync
- Developer Edition Free
- …
Bad
- Developer EditionだとServer hookできない