HOME > アプリ開発 > [iOS][Swift]Realm Mobile Platformを使ってサーバとのリアルタイム同期を試してみた
Realm Mobile Platformがリリースされて、色々使ってみましたのでご紹介します。
Realm Mobile Platformは今までと何が違うかというと下記のような事ができるようになりました。
つまりは、今まではiOS、Androidのクライアントサイドのデータベースエンジンとして使われていたRealmがサーバサイドの範囲まで拡張したものといえます。
詳しくは公式サイトの紹介も御覧ください。
公式サイトの説明まずは環境構築の仕方について紹介します。下記のURLにアクセスしてRealm Object Server
、デモサンプル、その他開発ツールがバンドルされているファイル一式をダウンロードします。(260MBほどです。)
ダウンロードしたios-realm-mobile-platform.zip
ファイルを解凍すると下記の構成です。
これからこの解凍したフォルダからサーバサイドを起動したりします。適当な場所に移動しておいてください。
ダウンロードした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 URL
にrealm://127.0.0.1:9080
を入力します。
そしてAdmin Access Tokenは、さきほど実行した./start-object-server.command
コマンドを実行して出力されたYour admin access token is:
の文字列をコピーします。
Connect
ボタンを押したら下図の画面がでます。選択してOpen
をクリックします。
このように先程iOSシュミレータで登録したデータがサーバ側にも保存されている事がわかります。
しっかりとリアルタイムでサーバ側とアプリ側でデータが同期していることが確認できます。
このように簡単にサーバサイドとリアルタイムに連携したアプリケーションを確認する事ができます。 まだ、サーバサイド側で、PHPやRubyなどからデータベース操作はまだ対応していなさそうですが、今後非常に期待できるプラットフォームなので随時、キャッチアップしていきたいと思います。
iOSのサンプルコードを見てもても非常に簡単なコードでデータの取得・更新などができるようですので、実際のアプリを作って紹介しようと思います。