「kintone」は自分からは話しかけられないシャイなヤツ?

江田篤史氏:本日は「リアルタイムkintone」というテーマについて、kintoneに潜むラグとその解決策についてお話しします。

まずは普通のkintoneの動きをおさらいしましょう。例えば、こんな2つのレコードを持ったkintoneアプリがあったとします。そこにレコード一覧を見たいAさんが現れました。Aさんが「レコード一覧をください」とkintoneにお願いすることで、kintoneはレコード一覧情報を渡します。

この時はもちろん、kintoneとAさんが同じレコード一覧情報を持っています。そこへ、レコード追加をしたいBさんが現れました。Bさんが「レコード追加して」とkintoneにお願いすると、kintoneはレコードを保存したうえで、Bさんに対して「レコードを追加しましたよ」とお返事します。

ここでkintoneはレコードを3つ持っていることになりますが、Aさんはレコードが2つのままです。kintoneからAさんに「レコードが追加されましたよ」とお知らせできればいいんですけど、kintoneは自分からAさんに話しかけることができません。

kintoneは聞かれれば何でも教えられるエリートなんですけど、自分から話しかけられないシャイさがあります。しばらくレコードが増えたことに気付かなかったAさんは、浦島太郎状態になってしまうかもしれません。このように、kintoneからユーザーへの情報反映にはラグがあります。

聞かれなくても教えてくれる“親切なおばちゃん”の登場

そこで私は「リアルタイムkintone」をご提案します。自分から話しかけられないkintoneに代わって、WebSocketという技術を導入します。これは、聞かれなくても何でも話しかけてくれる、親切なおばちゃんをイメージしていただけるといいと思います。

では、先ほどのBさんがレコードを追加する場面に戻ります。Bさんが「レコード追加して」と、今度はkintoneに加えておばちゃん(WebSocket)にもお願いします。すると、kintoneは先ほどと同様レコードの保存をし、おばちゃんも新しいレコード情報を知ります。

新しい情報を仕入れたおばちゃんは、Aさんにも「レコードが増えたよ」とお知らせします。新しい情報を知ったAさんはレコード一覧情報を更新し、kintoneとAさんは常に同じレコード情報を持ち続けて、Aさんはハッピーになります。

「リアルタイムkintone」が持っている、4つの機能

それではデモを4つご用意しましたので、順番にご覧ください。1つ目は「リアルタイムView機能」です。自動で更新する一覧。左のAさんはレコード一覧情報を見ています。右のBさんがレコード追加をすると、Aさんの一覧が自動で更新されます。

同様にBさんがレコードの編集を行った場合も、Aさんのビューが自動で更新されます。このように、Aさんは開いているだけで自動で情報が入ってくるビューを見ることができます。

続いて「共同編集機能」です。左のAさんと右のBさん、同じレコード詳細画面を見ています。先にAさんがレコード編集を開始します。画面右下では、現在編集中のユーザーが「なし」と確認できます。Aさんが試しに数値を「10」から「999」に変更しておきます。

この状態で、Bさんも同じレコードを編集開始してみましょう。Bさんの画面上ではAさんが編集中であること、Aさんの画面上ではBさんが編集中であることが確認できます。また、先ほどAさんが変更した数値の「999」も反映されています。

文字列「hoge」を「fuga」に変更してみましょう。すると、Aさんの画面でも「fuga」が即時反映されます。サブテーブルであっても、サイボウズ公式のJavaScriptカスタマイズで編集することができます。もちろんBさんが足した行を、Aさんが変更することもできます。

先にAさんがレコードを保存すると、Bさんの画面上で「ページを更新します」というアラートが出ます。このアラートに従うことで、Bさんが続けて編集を行う場合も問題なく保存を行うことができます。このように複数人で効率良くレコードの編集が可能になります。

3つ目は「分報アプリ」。日報ならぬ分報です。日報のように日ごとにタスクを書き込むのではなく、タスクができるたびにどんどん書き込んでいくようなアプリです。Aさんも試しに自分のタスクを書き込んでみます。すると、Bさんの画面上でもAさんのタスクが即時反映されます。

たまたま見ていたBさんがアドバイスなどをあげることで、Aさんがスピーディーにタスクをこなすことができます。所属組織で絞り込んだり、個人で絞り込んだり。また、先頭にアスタリスクを付けて投稿してみると、ToDoリストのように扱えるようにしたり。ボタンを押してみると、別アプリの日報アプリを開いて分報に書き込んだタスクを自動で反映してくれるような、kintoneならではのカスタマイズも可能です。

そして4つ目が「Excel風共同編集」。複数のレコードを複数人で一斉に編集するような機能です。このように他のユーザーが今どこを編集しているか(が見え)、また編集した過程がすぐ反映されるようなアプリも作れます。一気にレコードを更新したい時などに役立つと思います。

ではまとめになります。「kintoneからユーザーへの情報反映にはラグがある」という課題がありました。そこで、WebSocketという技術を用いて「リアルタイムkintone」を作りました。リアルタイムkintoneでは、作れるアプリの幅が広がりますので、みなさんもぜひお試しください。ご清聴ありがとうございました。