はじめに
この記事はあくまで公式のチュートリアルをやってみようというものであって、既存のアプリにRealm Mobile Platformを導入する手順を示したものではないことをご了承ください。
完成コードはコチラです。
またこちらはmacOS Sierraでの流れですので他のOSで多少の差異があるかもしれないことはあらかじめご了承ください。
準備
まず始めに、RealmBrowser、RealmMobilePlatform、最新のRealmなどが入ったファイルをダウンロードします。
このページからダウンロード&解凍しましょう。
触ってみる
① Realmのオンラインデータベースを起動する
チュートリアルではRealmのオンラインデータベースをローカルで立ち上げてそこにアクセスすることで進めていきます。
ターミナルを開いたら
$ cd 解凍したフォルダ
$ ./start-object-server.command
とコマンドを打ちましょう。するとRealmのサーバーが立ち上がり自動的にWebブラウザで管理画面にアクセスされます。初回起動時にはメールアドレスやパスワードを入力して登録してください(以降はそのアカウント情報を用いてアクセスすることになります。)
② 公式のサンプルを見てみる&Realm Browserを使ってみる
チュートリアルでつくるアプリのデザインに凝ったサンプルが解凍したフォルダの中には入っています。realm-mobile-platform>demo>RealmTasks
の中に入っているのでRealmTasks.xcworkspace
を開いて立ち上げてみましょう。
アプリのUIは少しわかりにくいですが下にスワイプするとタスクを追加することができます。
次にこれがしっかりサーバー側にも登録されていることを確認するためにRealm Browserを用います。解凍したフォルダにRealm Mobile Platformに対応したRealm Browserが入っているので立ち上げてください。するとメニュー画面が現れるので一番下のConnect to Object Server
をクリックしましょう。するとどのサーバーにアクセスするかの設定画面が現れます。
サーバーURLにはなにもいじってなければrealm://127.0.0.1:9080
を入力します。そしてAdmin Access Tokenに関してはさきほどコマンドを実行したターミナルを遡るとYour admin access token is:
の後に長ったらしい英数字列があると思うのでそれを==
までコピーしてはりつけます。
入力し終えたあとすすめると見慣れたRealm Browserの画面が開きます。少しいじってみるとしっかりとリアルタイムでRealm Browserで見ているデータとアプリのデータが同期していることが確認出来ると思います。
③ チュートリアルで手を動かしてみる
ここまでできたらサンプルと同じようなアプリを、自分の手でつくれるチュートリアルがあるのでそちらを進めましょう。
デモに関してはAndroidもあるようですが残念ながらチュートリアルはiOS(Swift3/Xcode8)のみでした。
手順などはもちろん公式のものをよんでもらうとして少しはまったところをあげておきます。
usernameとpasswordは一番最初に登録したもので
途中コードにusernameとpasswordを入力するところがあるのですが、それは必ずさきほどデモを見ているときに登録したものにしましょう。ブラウザからあとで追加したユーザーでやってみたのですがデータがうまく反映されませんでした。
時々文章の中に入力すべきことが書かれている
これは英語母国話者なら問題ないのでしょうが、途中で文章中の中だけでどこそこにどれを書くといったことが指示されていることがあるので気をつけましょう笑
所感
まずチュートリアルに関してはこれはかなり有用で、Realm社の中で培われたSwift3の洗練された書き方を学ぶことが出来、Realm Mobile Platformを使う気がないとしてもこれをしっかり手で入力していくことはいい勉強になると思いました。
そして肝心の使い心地という点では、競合となるFirebaseやNifty Cloudと比較してみると五分五分といったところです。まず、一見これらのサービスは似ているように思えますがRealm Mobile PlatformはあくまでSQLiteの代替というポジションなのでサーバーに関しては自分で立てる必要があります(今までの流れで十分気付いているとは思いますが...)
ですので完全無料というのもサーバー費を差し引くとそこまで魅力となるものではないかもしれません。
一方で使い勝手としてはかなりいいです。特に今までRealmを使ってきていた人にとってはとても導入が簡単です。チュートリアルを見ればわかりますがネットワークの設定はログインのところのみであとは普通にローカルのRealmを触るのと同じように書いていれば勝手にサーバーにアップ&管理してくれます。これは紹介文でもかなり推されていたポイントですが、実際書いてみても確かに沿う感じました。
結論今回のリリースはいままでローカルはRealmで、オンラインは自作データベースでとやってた人たちに一番嬉しいものかもしれません。もし興味があれば是非試してみましょう!