Realm Mobile Platformがリリースされて、色々使ってみましたのでご紹介します。

Realm Mobole Platformとは

Realm Mobile Platformは今までと何が違うかというと下記のような事ができるようになりました。

  • サーバサイドのデータベースを構築でき、クライアントサイト(iOS、Androidアプリ)と連携を実現
  • クライアントとサーバとのリアルタイム同期

つまりは、今まではiOS、Androidのクライアントサイドのデータベースエンジンとして使われていたRealmがサーバサイドの範囲まで拡張したものといえます。

詳しくは公式サイトの紹介も御覧ください。

公式サイトの説明

環境構築

まずは環境構築の仕方について紹介します。下記のURLにアクセスしてRealm Object Server、デモサンプル、その他開発ツールがバンドルされているファイル一式をダウンロードします。(260MBほどです。)

https://realm.io/docs/realm-mobile-platform/get-started/

ダウンロードしたios-realm-mobile-platform.zipファイルを解凍すると下記の構成です。

これからこの解凍したフォルダからサーバサイドを起動したりします。適当な場所に移動しておいてください。

Realm Object Serverの起動

ダウンロードしたzipファイルを解答して、ターミナルで解凍先のフォルダに移動してstart-object-server.commandを実行します。

ターミナルで実行

cd 解凍先ディレクトリ
./start-object-server.command

コマンドを実行すると下記のメッセージが表示されるはずです。

それと同時に自動でブラウザが開き、下記の画面が表示されます。管理者ユーザを登録する画面ですのでEmail Adress、(管理者のメールアドレス)Password(パスワード)、Confirm passwofd(確認パスワード)を入力して、I agree...の箇所のチェックをしてComplete Setupボタンをクリックします。

Setup Complete! Please login.のメッセージが表示されたログイン画面が表示しますので、今作った管理者でログインします。

このようにrealmのサーバの管理画面のダッシュボードが表示されます。これでサーバサイドの環境が整ったという事ですね。

続いてサンプルコードを使って動作確認してみましょう。

サーバの動作確認

それではサーバの動作確認をしてみましょう。下記のGithubのURLよりサンプルコードがダウンロードできます。ダウンロードしましょう。

https://github.com/realm/RealmTasks

ダウンロードしたら下記のとおりApple(iOS、Mac)用、Android用のサンプルプロジェクトが存在します。
今回はiOSアプリを使って動作確認します。ビルドするにはCocoapodsを実行してライブラリをダウンロードしてこないといけないので、RealmTasks Appleフォルダの場所にターミナルで移動してpod installを実行します。

cd [RealmTasks Appleの場所]
pod install

下記のようなエラーが出る場合はCocoapodsのバージョンが古いせいでエラーになっています。

CocoaPodsをバージョンアップさせるためにpod repo updateを実行してリポジトリをアップデートします。

pod repo update

次にgem install cocoapods --preを実行して最新版のCocoaPodsをインストールします。

gem install cocoapods --pre

再度、pod installしてみましょう。Pod installation complete!が出ればOKです。

次に、RealmTasks.xcworkspaceをダブルクリックしてXcode開きます。

適当にシュミレータの端末を選んで、Runボタンをクリックします。

シュミレータが起動してアプリが表示されると最初はログイン画面が表示されます。先程サーバ側で登録したユーザとパスワードでログインします。

次の画面でプルダウン操作をしてアイテムを追加します。

このように追加していきましょう。

実はもうすでに起動したRealm Object Serverと接続されていてデータが保存できています。
保存された事をRealm Browserで確認してみましょう。
realm-mobile-platformフォルダにRealm Browserが入っているので起動します。

Connect to Object Serverのボタンをクリックします。

Server URLrealm://127.0.0.1:9080を入力します。
そしてAdmin Access Tokenは、さきほど実行した./start-object-server.commandコマンドを実行して出力されたYour admin access token is:の文字列をコピーします。

Connectボタンを押したら下図の画面がでます。選択してOpenをクリックします。

このように先程iOSシュミレータで登録したデータがサーバ側にも保存されている事がわかります。

しっかりとリアルタイムでサーバ側とアプリ側でデータが同期していることが確認できます。

このように簡単にサーバサイドとリアルタイムに連携したアプリケーションを確認する事ができます。
まだ、サーバサイド側で、PHPやRubyなどからデータベース操作はまだ対応していなさそうですが、今後非常に期待できるプラットフォームなので随時、キャッチアップしていきたいと思います。

iOSのサンプルコードを見てもても非常に簡単なコードでデータの取得・更新などができるようですので、実際のアプリを作って紹介しようと思います。