先日リリースされたRealm Mobile PlatformをiOS(swift)とLinuxサーバ(centOS6.5)で試してみた。
Linuxサーバ側 手順
1.リポジトリの設定
curl -s https://packagecloud.io/install/repositories/realm/realm/script.rpm.sh | sudo bash
2.Realm Object Server のインストール
sudo yum -y install realm-object-server-de
3.サービス起動
sudo chkconfig realm-object-server on
sudo service realm-object-server start
4.admin token の取得
※後でRealm Browserでサーバに接続するのに必要
cat /etc/realm/admin_token.base64
mac側 手順
1.ブラウザを起動し、サーバ管理画面にアクセス
初回起動時にはメールアドレスとパスワードを入力して登録してください。
接続URL:http://{サーバIP}:9080/
2.デモアプリのソースコード入手
git clone https://github.com/realm/RealmTasks.git
3.ビルド準備
cd RealmTasks/RealmTasks\ Apple/
pod repo update #念のためpodのリポジトリ更新
pod install
4.Xcode8でRealmTasks.xcworkspaceを起動
5.ソースコード修正
RealmTasks Shared配下のConstants.swiftのサーバー向け先を修正
Constants.swift
#if os(OSX)
static let syncHost = "127.0.0.1"
#else
// static let syncHost = localIPAddress
static let syncHost = "XXX.XXX.XXX.XXX" // 任意のサーバ
#endif
6.アプリビルド及び実行
アプリではタップもしくは下にスワイプすることでタスクを追加できます。
7.Realm Browserでサーバ側データベースにアクセス
Realm Browserを起動し下記手順でアプリで追加したタスクがサーバ側に同期されていることが確認できます。また、Realm Browserでタスクの完了チェック等を実行するとアプリ側でもタスクがチェックされ即時に同期されることが確認できます。
所感
サーバ側の設定もかなり簡単だったので、使いどころによってはかなり有用だと思う。
個人的にはサーバ側のrealmデータベースをコマンドラインやphp,ruby等のライブラリで簡単に更新できる仕組みが欲しい。(ドキュメントを読み込んでないので、もしかしたらできるのかもしれないが・・)
参考
Realm Mobile Platformを最速で試してみた(チュートリアル)
geelive blog (Realm Mobile Platform を試してみた)