LINEのエコシステムを外部の会社が利用できる「Developer Product」

伊藤暢章氏:ではさっそくですが始めようと思います。今日はDP2チームについて紹介します。あらためまして伊藤と申します。入社当時は、各種のLINE BotやLINE@アプリ(2019年にLINE公式アカウントとサービス統合)のバックエンド、またLINE公式アカウントのプロフィールページのバックエンドなどをやっていました。ここ数年は、LINE Developers Centerの開発リードをしていて、またDP2チームのマネージャーもしています。

まずはじめに、DP2チームとは何かについて説明します。DP2と言われても、よくわからないですよね。DP2チームは、Developer Product Team 2の略称です。組織図的には、開発4センターの中にDeveloper Product室があり、その下にDP2チームがあります。

では、そもそもDeveloper Productとは何かという話ですが、Developer Productとは、LINEアプリを中心としたLINEのエコシステムを、外部の会社がサービスを開発する際に、プラットフォームとして利用できるプロダクトのことです。

外部の会社のBtoCサービスやBtoBサービスで、LINEアプリやLINEアカウントを活用するためのプロダクトです。ちなみに外部の会社とは言いましたが、もちろん個人の開発者にも開放しています。今回の説明会は、BtoBプロダクトと銘打っていますが、Developer Product室はちょっとそこからは外れる感じです。

開発者向け管理ツール「LINE Developers Center」

それでは、Developer Productを開発しているDP2チームの仕事について説明します。DP2チームは、現在おおまかに言って4つのプロダクトの開発を行っています。LINE Developers Center、LINE Login、LIFFおよびLINE MINI App、そしてIoT Platformです。

最初に、LINE Developers Centerについて。先ほどDeveloper Productについては簡単に説明しましたが、具体的にどのようなプロダクトがあるかについて説明します。実はほかにもあるのですが、ざっくり言ってここに挙げた4つのプロダクトが存在します。

1つ目はMessaging APIです。これは簡単に言うと、APIを使ってLINEのチャットボットを作成できるものです。

次にLINE Loginです。これも簡単に言うと、LINEのアカウントを使ったログインを可能にするものですが、のちほど独立したプロダクトとして説明します。

3つ目のLIFFについても、のちほど説明します。また、LINE CLOVAというスマートスピーカーのためのアプリ、一応これにはClova Skillという名前があるのですが、これもDeveloper Productの一種です。LINE Developersでは、こういったプロダクトを管理する単位をチャネルと呼んでいます。

さて、LINE Developers Centerの話に戻りますが、結局のところLINE Developers Centerは、今説明したさまざまなアプリ、チャネルの開発者向けの管理コンソールです。開発しているアプリの動作設定や権限設定を行うことができます。DP2チームでは、このコンソールのバックエンドの開発を担当しています。ちなみに、フロントエンドは別拠点の専門のチームに任せています。

さらに外部向けのコンソールだけではなく、内部向けの管理ツールの開発も行っています。こちらのフロントエンド部分については、Vue.jsを使って自分たちで書いています。以上、LINE Developers Centerについて簡単に説明しました。

トップクラスの認証認可プロバイダ「LINE Login」

次にLINE Loginについてです。LINE Loginは、国内でもトップクラスの利用実績がある認証認可プロバイダです。コンテンツプロバイダの目線としては、LINEのアカウントをすでにもっているユーザーに、自社サービスを展開できます。また、ログインしたLINEのアカウント情報も活用できます。

一方開発者目線としては、日常的に大規模なアクセスがあるので、それに対して安定したサービスを提供する必要があります。またOAuth 2.0やOpenID Connecといったオープンな企画に準拠しているので、スペックを公式ドキュメントから読み取って、正しく実装することが求められます。以上が、LINE Loginの説明でした。

「LINE Front-end Framework」と「LINE MINI App」

次はLIFFとLINE MINI Appについてです。LINE MINI Appとは、LINEアプリ上で動くWebアプリのことです。LINEのトーク画面から起動可能で、LINEアプリのUIと親和性が高いです。こちらの画面でお見せしているように、さまざまな活用方法があります。Webアプリなので、専用アプリのダウンロードやログインが不要なので、エンドユーザーにとっても利用が簡単です。

一方でLIFFは、LINE Front-end Frameworkのことで、LINEミニアプリを支える開発者向けのフレームワークです。標準的なWebアプリの開発手法を適応可能なため、コンテンツプロバイダ目線としては、開発コストを低減できます。またLINEアプリで動くことから、先ほど説明したLINE Loginと同じように、アプリを利用しているLINEのユーザー情報も取得可能です。

IoT Platformの1つ「LINE Beacon」

最後にIoT Platformのお話をします。IoT Platformの1つとして、LINE Beaconがあります。これは、ビーコンデバイスからのBluetooth信号をトリガーとして、LINEアプリ上でさまざまなアクションを提供できるようにするものです。

このスライドの背景に写っているのは、キリンのTappiness自販機です。対応している自販機にLINEアプリを近づけて操作することで、飲み物を買ったりできます。また自販機以外でも、大型衣服店や大手のコンビニチェーンなどで、お店に近づいたときにLINEのメッセージを受信したことがある方がいるのではないでしょうか? あれもLINE Beaconの応用例です。

DP2チームでは、LINE Beaconのバックエンド部分を開発しています。ビーコンデバイスにLINEアプリが接近すると、LINEのメッセージ基盤から専用のメッセージが飛んできます。これを加工して、あらかじめ登録された動作設定をアプリに送信しなおしたり、またコンテンツプロバイダ向けに、Webhookを送信したりしています。この赤枠で囲んだところがDP2チームが担当している部分です。

以上、DP2チームで担当しているプロジェクトについて説明しました。

開発言語はJavaとKotlin、フレームワークはSpring Boot

続いてDP2チームで開発しているプロジェクトで利用している技術スタックについて説明します。すでにOA開発室の松野からも説明がありましたが、DP2チームでも、バックエンドでは、開発言語としてJavaとKotlinを採用しています。また、Webアプリケーションのフレームワークは、Spring Bootです。

基本的にフロントエンドのコードを書くことはあまりないのですが、先ほど説明したように、一部内部の管理ツール向けには、バックエンドエンジニアがVue.jsを書いています。ただ、内部ツールですし、規模感的にも外部向けのサービスよりも小さいので、たとえ今まで書いたことがない方でも、簡単にキャッチアップできると思います。ミドルウェアは、ほかのプロダクトと同じようにMySQLやRedis、Kafkaなどを利用しています。

開発言語についての話の続きになるのですが、実際にGitHub上での利用率を調べてみました。プロダクトによってだいぶ傾向が違うのですが、ほぼJavaのものや、JavaとKotlinが半分ずつのもの、またKotlinでほとんど書いてあるものなど、いろいろあります。

大規模なアクセスをどうハンドリングするか

最後にDP2チームでの仕事の特徴を説明します。特徴としては、コンシューマー向けに直接提供しているサービスプロダクトというよりは、デベロッパープロダクトのプラットフォームのため、さまざまなサービスを開発している社外や社内とのやりとりがとても多いです。

またLINE LoginやLIFF、LINE Beaconについては、日常的に大規模なアクセスがあるため、それをどのようにハンドリングするのかについて、腕を試されることになると思います。またこれは、プロダクトの特徴ではありませんが、たまたまではあるのですけどもコードベースが若い人が多いです。ですので、設計や利用しているツールチェインも、モダンなものが多いです。

さらに各プロダクトを担当しているユニットの人数が比較的少ないので、大きなプロダクトの一部分を担当するというよりは、担当しているプロダクトのほぼ全域に目を配る必要となります。

以上で、DP2チームの紹介を終わります。デベロッパープロダクトの開発に興味をもっていただけたらいいなと思っています。