LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog

Blog


LINEアプリにおける複数人トークとグループトークの統合

LINEアプリは1対1の会話だけでなく、複数ユーザーでの会話にも対応しています。

これまでLINEにおける複数ユーザーでの会話には、用途に応じてと複数人トークグループトークの2種類がありました。

複数人トークは一時的な会話の用途で設計されています。複数人トークを作るときに、名前を付けることはできません。友だちをトークに招待する際に相手の承認を待つ必要はなく、「招待」ボタンをタップすると自動的にトークルームに追加されます。すべては、すぐに会話を始めるために設計されています。

一方、グループトークは長期的な利用を目的に設計されています。同級生、同僚、スポーツクラブの友人など、多くのグループトークに所属している方もいると思います。それらのグループトークには名前が付いているので、見つけやすく、その目的を思い出すことができます。友だちをグループトークに招待する場合、参加時にその友だちの承認が必要です。

グループトークは長期間使用されるものとして設計しているため、メンバーの体験を改善し、より親密な関係を構築しやすいように、グループトークの機能は年を重ねるごとに徐々に強化されてきました。グループトークのメンバーであれば、旅行中の写真をグループトークのアルバムにアップロードして他のメンバーと共有できます。重要なメモをグループトークのノートに書き留めることもできます。

これらの機能は重宝されていますが、グループトークでしか使えず、複数人トークでは使えませんでした。なぜでしょうか? 複数人トークは一時的な会話に使われるものなので、グループトークの機能のほとんどは複数人トークの参加者にとっては不要であると想定したためです。

複数人トークとグループトークの統合とは

複数人トークとグループトークを統合することで、利便性を高め、サーバーやクライアントのリソースを節約することを目指します。複数人トークとグループトークでは仕様が若干異なります。また、API、ストレージレベルについても住み分けがなされています。統合後は、トークルームへの参加方法を除き、同じ仕様に統合される予定です。この統合された新しいモデルを、この記事では新グループトークと呼びます。

統合が必要だった理由

利便性の問題

1:1のトーク、複数人トーク、グループトークでは機能が異なります。この機能の違いは、使い慣れていないユーザーには知られていません。ユーザーは、アルバム、ノートなどが使えないことを知らずに複数人トークを作成し、アルバムなどが必要になるとグループの使用に切り替えますが、会話履歴はすべて複数人トークのトークルームに残ってしまいます。(既存の複数人トークのトークルームの変換機能はありません)。

サーバーとクライアントのリソースに関する問題

複数人トークは一時的に使用するものですが、日々、そのデータはサーバーに蓄積されていきます。同じメンバーで構成された複数人トークが多く存在しています。ユーザーが同じメンバーで構成された複数人トークがすでに存在することを知らずに作成してしまうからです。そのため、不要な複数人トークが蓄積しています。

これらの問題を解決するために、複数人トークとグループトークを新グループトークとして統合することにしました。

グループトークと複数人トークの比較

  • 統合前
  • 統合後

グループトークから新グループトークへの移行

新グループトーク用API

  • 新グループトークのための新しいAPIを設計しました。
  • 互換性維持のために、データ更新のための新旧APIでは新旧のストレージへの二重読み出しを行います。
  • 移行のステップ

1.当初、新グループトークのAPIはグループストレージに対応しました。ルーターは、従来のグループトークのAPIと新グループトークのAPIのAPIの違いを吸収する役割を果たします。

2.徐々に新グループトークをロールアウトします

3.最後に、新グループトークのみ作成します

移行

  • すべてのグループトークのデータは、MapReduceを利用したバッチ処理によって新グループトークのデータに移行しました。
  • 移行後は古いストレージへの読み出しを停止し、新グループトークのみを使用しています。

複数人トークから新グループトークへの移行

複数人トークとグループトークの違い

前述の通り、目的が異なるため、複数人トークとグループトークにはいくつかの違いがあります。

招待の仕組み

1つ目の違いは、友だちを会話に招待する方法です。

選択した友だちでグループトークを作成するか、既存のグループトークに友だちを招待しても、すぐにはトークルームに追加されません。招待したユーザーは招待を承認するかどうかを選択でき、承認後にトークルームに追加されます。一方、複数人トークの場合は、複数人トークを作成するか、友だちを招待すると、すぐに友だちがトークルームに追加されます。

ユーザーの中には、複数人トークを使ってすぐに会話を開始できるのが便利だという意見もありましたが、トークルームに参加するかどうかは招待された側が決める方がよりユーザーニーズに沿うと考えるユーザーもいました。

機能セットの違い

2つ目の違いは、グループトークに比べて複数人トークの方が対応している機能が少ないことです。

複数人トークは短期間の会話を目的に設計されているため、アルバムのような機能があっても使い勝手が悪いと考えられていました。グループトークには毎年多くの機能が次々と追加されていきましたが、そのほとんどは複数人トークには追加されませんでした。

新しい統合モデル

統合プロジェクトでは、新しい統合モデルを導入しました。従来のグループトークモデルをベースに、複数人トークモデルも取り入れた新グループトークです。

招待メカニズムの変更

新グループトークを作成する際、LINEアプリのワークフローでは、複数人トークとグループトークの区別がなくなりました。その代わり、作成UI上で、相手を自動的にトークルームに追加するか、参加する前に承認/拒否を選択できるようにするかを選べるようになりました。

既存のトークルームに関するヒント

ユーザーが特定のトピックについて話すために何人かの友だちと複数人トークを立ち上げ、話が終わると、各メンバーのトークリストにその複数人トークが残ったまま、二度と使われなくなることがあります。ユーザーは次に同じメンバーで別の会話を始めようというときは通常、(ずいぶん長くなっている)トークリストから以前の会話を見つけるのではなく、新しい複数人トークを作成しています。メンバーが同じなのに使われないトークルームが蓄積されていき、トークリストはどんどん長くなる一方です。それによって、ユーザーエクスペリエンスが損なわれ、サーバーやクライアントのリソース消費も無駄に増えていました。

新グループトークの作成ワークフローでは、既存のトークルームと同じメンバーで新規作成しようとすると、LINEが既存のメンバーから過去のトークルームをヒントとして表示します。そのため、簡単にそのトークルームにジャンプして、新しい会話を始めることができます。

すべてのトークルームがフル機能に対応しました

新しいモデルはグループトークモデルをベースにしているため、すべての新しいトークルームがフル機能に対応しています。また、今後の新機能は、統合以降のすべてのトークルームに適用される可能性があります。

今後の予定:既存の複数人トークから新グループトークに移行

現在、最新(ver10.17.0以降)のバージョンのLINEで作成されたトークルームはすべて、新グループトークです。統合以前のバージョンを使用している場合、作成したグループトークはサーバー側でユーザーが知らないうちに新グループトークになります。次の目標は、複数人トークを新しいモデルに移行して、ユーザーが複数人トークでもフル機能を使えるようにすることです。

おわりに

このプロジェクトは数年に渡る複数人トークとグループトークを改善する長期的なプロジェクトとなっています。ユーザへ急な変化でストレスを与えないため、可能な限り違和感なく、利便性を下げないように進めています。

このプロジェクトの結果、従来の複数人トークでは既存のトークルームとまったく同じメンバーで新たにトークルームが生成される割合が約15%ありましたが、承認不要タイプの新グループトークにおいては0.78%ほどに減らす事ができました。

このプロジェクトでは上記で触れてない部分も多く改善に取り組んいます。ユーザーへの利便性とより良いシステムのため、日々たゆまぬ努力を続けていきます。

ありがとうございます。