Eureka Engineering
Published in

Eureka Engineering

Pairs グループトークはどのように作られたか

2012年10月にリリースした「Pairs」は、国内累計登録者数1,500万人(*1)を超える日本で最も使われている(*2)恋活・婚活マッチングアプリです。これまで60万人以上(*3)からの交際・入籍報告が届いています。

「質の高い会員層と交際・結婚実績」真剣な交際・パートナーを求める多くの方にご利用いただき、現在、日本で一番多く使われている恋活・婚活マッチングアプリです。

新しい機能 「グループトーク」

Pairsは新しい機能「グループトーク」を公開しました。

「グループトーク」は、いいね!やマッチングの前にみんなで会話ができるので、プロフィールなど文字だけではわからない人柄や雰囲気を知ることができ、より自分に合った人を探すことができます。

また、最大8人まで会話に参加できるので、いろいろな人と話すチャンスが広がり、飲み会に参加して出会った時のように、より自然体に近い相手を知ることができます。

この記事は私たちがどのように、この新しい機能をPairs iOS版の中に作ることができたかを紹介します。

Hyperconnectによる通話機能の技術を活用

グループトークの中心的な機能であるビデオ音声通話はエウレカが所属するMatch GroupのメンバーであるHyperconnectが提供する技術により実現させています。

HyperconnectはAzarHakuna Liveといった動画コンテンツを主体としたアプリケーションを提供し、WebRTC, AI, ARの技術領域から課題解決に取り組んでいます。

Azar / Hakuna Live / Pairs

彼らは通話機能をライブラリとして提供し、それをPairsのクライアントアプリケーションに組み込み、私たちが開発するユーザーインターフェースと統合します。

機能を抽象的に扱いライブラリとして提供する形にとって、再利用性を高く保つことは重要な指標であり、当然ながらすべてのリクエストに応えることはできません。しかし、グループ間でのコミュニケーションは迅速に進めることができるため、必要な改善のリクエストやニーズを満たすための代替案などを話し合うことができることは強みのひとつです。

加えて、機能提供にあたり、利用者のプライバシーや関連するデータの制御をMatch Groupとしての方向性に合わせて進めることができることです。

機能面に非常に優れた製品であっても私たちが求めているプライバシー水準に達していないという判断になれば、それは私たちの選択肢からは除外せざるを得ないでしょう。

楽しさの演出

ゲームではないアプリケーションでは多くの場面でツールとしての使い心地を追求したUIの表現にフォーカスされます。

それがビジネスとして成立するのは利用者がその機能を使うモチベーションを持っている時であり、 成熟したサービスの中で新しい価値を利用者に認知、体験をしてもらうためには新しいモチベーションを発生させることがポイントとなります。

表現の手法は様々であり、アプリケーションが実行できる手段として、ツール系UIの表現の中にゲーミフィケーションの要素を取り入れており、これにはいくつかのチャレンジが伴います。

  • 単純なグリッドベースのレイアウトでは表現できないケース
  • 加えてデバイスの画面サイズに基づくレスポンシブ・アダプティプなレイアウトの実現
  • アニメーションの付加による状態管理の複雑化
  • 装飾を表現するためのレイヤー数の増加に対するパフォーマンス対策
  • 実現するコードに対して持続可能性(Maintainability)を与えること

これはモバイルクライアントアプリケーション開発としては新しい挑戦であり、今までのアプリケーション開発の技術と豊かなビジュアル表現の技術の連携を持続可能性を保持しつつ進めていくことです。

UIKitやCoreAnimationには十分なパワーがありますが、今後の発展のケースによってはSpriteKit、SceneKitとの統合、SwiftUIが持つビジュアル表現のAPIの活用など新しい手法を考えることが出来ます。

滑らかな動作

Picture-in-Picture

アプリケーションの利用者はグループトークの通話機能と並行して別の機能を利用することが可能としており、アプリケーション内に限定されたPicture-in-Pictureを通じて通話状態が保持されます。

Picture-in-Pictureは0から構築されたコンポーネントであり、Appleの提唱するFluid-Interfaceを尊重したユーザーインタラクションを提供します。

  • 画面の角に張り付く振る舞い
  • ジェスチャーの加速度に応じたアニメーション

加えて、対象のビューをジェスチャーによりドラッグする際にも僅かなアニメーションを動作させることで指の動きに対し僅かな遅れが生じ、指の動きに対し吸い付くような感触を生み出します。

このようなドラッグ時のアニメーションはiOS標準のアプリケーションの中でも至る所で見ることができます。

iOSが提供するPicture-in-Pictureやホーム画面のスタッキングされたWidgetsの切り替え時、ホームバーによるタスクの切り替え時、など。

非常に細かい部分ではありますが、近年ではアニメーションはサービスの表情を生み出す重要なファクターであり、アニメーションのスピードやニュアンスの強さがサービスの活発さやエレガントさを表現するツールとなっています。また先ほど触れた「楽しさの演出」においても強い関連があり、触覚フィードバックについても同様と言えます。

安定性

通話画面

ほとんどのモバイルアプリケーションはモバイル通信を用いて動作することを前提とし、通信の切断などのエラーに対して適切な対応を取ることがユーザビリティを大きく左右します。

利用者に対しアプリケーションは現在どの状態にあるのかを示し、エラーを利用者に解決してもらう必要があればそれを促します。

通話機能にとってモバイル通信のハードルは非常に高く、いつでも切断される可能性があることを十分に考慮する必要がありました。

利用者の通信が切断された時、もしくは何らかの問題によりアプリケーションが強制終了した場合に利用者が元の操作に復帰できるような対策を施しています。

パフォーマンス

通話機能にはカメラを利用したビデオ通話もサポートします。 アプリケーションにおけるメディアの取り扱いには非常に高いパフォーマンスが要求されることになります。 近年ではカメラ入力に対してリアルタイムにエフェクトを適用するニーズは非常に高く、さらなるパフォーマンス最適化のニーズが高まっています。

現代のスマートフォンデバイスは非常に高速に動作します。しかしながらアプリケーションが実行されるにあたり、想定すべきデバイスは様々であり、十分なパフォーマンスを持たないデバイス上でも実行されることを対応することは可能な限り多くの利用者に機能を提供する上で重要な指標になります。

また、表面上は滑らかに動いたとしても実行時の負荷が高く、デバイスが強く発熱してしまうようであればバッテリーの消費は早くなり、それは利用されづらいものとなり得ます。 これらのことから通話機能利用時のパフォーマンスチューニングはサービスのエンゲージメントに大きな影響を与えます。

いわゆるサーバーが返却する情報を表示するようなクライアントアプリケーションでは強く意識する必要がない、もしくは厳密なチューニングを施したとしても目に見えるインパクトがないこと、それがメディアの取り扱い時には大きくインパクトとなります。

実装したプログラムが実際にコンピュータ上でどのように動作するのかを良く把握し、様々なチューニングを実施することが開発者に今まで以上に求められています。

このような分野では抽象化された場所からのアプローチではなく、より具象的かつ低水準に対する実装テクニックも有利に働くチャレンジとも言えます。

高い開発効率を持つ基盤を活用した開発

グループトークはPairsにとって完全に新しい機能であり、それは既存コードベースが持つ多くの資産の上に構築されたものです。

Pairs iOS版のコードベースは長い期間のメンテナンスによってサービス改善が提供され続けており、2019年に開発における持続可能性を飛躍的に引き上げるべく、コードベース全体の刷新が開始されました。 既存のコードベースに対して部分的な刷新を加えていく手法を採用し、事業成長を止めることなく実行された後、2021年末に完了しています。

高い持続可能性をことを目的とした再設計では、これからサービスに起る可能性があることをできる限り把握しておくことです。

その上で、現時点でどの程度の特殊化を行うか、そのバランスを選択しつつコードベースを再設計していきます。

この改善を通し、アプリケーションは適度に分割された再利用可能なコンポーネントという資産の組み合わせにより機能が実現しています。

そしてグループトークもまた、それらの資産の組み合わせと新しい資産の開発によって実現されました。

未来

エウレカでは今までにない新しい方向に対してもサービスが拡大しており、扱う技術にもリアルタイムなコミュニケーションを提供するという新しい方向性が参加しています。

加えて、エウレカが所属するMatchGroupのなかでの連携は非常にエキサイティングな活動であり、グループ全体を通してそれぞれのプロダクトをより強くしていくことは、すなわち「再利用可能なコンポーネントを作ること」のさらなる発展です。

エウレカでは技術を用いて課題を解決し、事業成長を加速させるエンジニアを募集しています。

(*1)自社調べ。2021年6月時点
(*2)MMD研究所xスマートアンサー「2021年マッチングサービス ・アプリの利⽤実態調査」2021年9月時点
(*3)自社調べ。2022年3月時点

--

--

Learn about Eureka’s engineering efforts, product developments and more.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store