このトークでは、オープンソースのRealm Mobile Databaseを紹介し、サーバーサイドコンポーネントと合わせてRealm Mobile Platformsがどのように完成したかを示します。これを利用すると、テクノロジスタックの実装詳細として同期とネットワークを扱うことができます。 これまで大仕事だったライブコラボレーションのような機能を、不意にすべての開発者が簡単に利用できるようになったのです。このトークでは、残りのデータベースの部分をベースとしてリアクティブにアプリを構築する方法を示します。
Realmを使ってコラボレーションアプリを作る
コラボレーションアプリとは
複数ユーザーが同じ作業を出来るようなアプリのことです。
Realm Mobile Databaseについてお話しますがその前に知っている人手を挙げて下さい、沢山、ありがとうございます。
Realmとは何か、何ではないか
ORMではなく、DBそのものです。
モバイルのために最適化されています。 SQLiteはミサイル駆逐艦の制御に使われていたんです。
固定スキーマで多くのパフォーマンス・スピードを出来る限り重視してという形になっています。
オブジェクト指向でSchemeの定義です。コードの中でしか定義しません。
昨年末RealmMobilePlatformが登場
クロスプラットフォームアプローチもサポート。ReactNativeやXamarinも対応。
お望みのクラウドを選ぶことも出来る。Node.jsフレームワークと統合できる。
このプラットフォームで何が出来るのか
異なるデバイス間で、買い物リストを作り、買う、買い残しがないかを確認ということが出来る。
複数の人間が同時に編集する
このアプリケーションは非常に便利
感じの書き順を先生と一緒に学んだり出来る。
Picture in Pictureで先生が教えてくれる。
Canvas上に構築された記入データが先生のCanvasに反映される
先生が何か書き込んだり、自分も書き込んだり。
同期がコンフリクトした時解決してくれます。
クラッシュ・オフライン状態もサポートするので気にしなくて良いです、私の場合はそうでした。
私の方は同期が取れているが先生はローカルに貯めている、という状態でも、接続が回復した段階で同期が取られます。
本当に素晴らしいですね。
アプリからJSONを排除するということができます。
オブジェクトリレーションミスマッチを排除出来る。
皆さんの貴重な時間をJSONをやり取りするために時間を潰すということがなくなります。 苦労しないで複数のプラットフォーム上で実現できる。
通知
オブジェクトプロパティの監視、各オブジェクト、コレクションの変更を監視することが出来る。
RealmDBのグローバルな監視、
すべてのRealmDBの監視が出来る。
クーポンを使うようなことが出来る。
クーポンコードを入力しサーバーにSync
サーバーでは通知がトリガーされて、検証をすることが出来る。
しかし複数のRealmが関わる時どのように動くのでしょうか
アクセス権の管理が必要だとすると、REST APIと思うかもしれません。しかし使う必要はありまあせん。Realmを使います。
権限管理に関する特別なRealmがあります。
特定のユーザーに対してPermissionをミラーリング出来る。
権限の変更
もっと詳しく知りたければ土曜日のワークショップへ来て下さい
Q&A
今後RealmのモバイルプラットフォームをPHPから操作するような機能を追加する予定はありますか
サポートチームの方でモバイルプラットフォームのサポートチームで、幾つかの言語をサポートしようと考えています。何がほしいか希望を出していただければ、沿っていきたいです。PHPは具体的には決まっていないと思います。言語の追加は決まっています。