LINE テクノロジー&エンジニアリング大全

UXからWebの世界を広げるLIFFの可能性

インタビュイー

LINE株式会社 京都開発室 UIT1チーム 岡本拓也(左)
LINE株式会社 フロントエンド開発センター UIT1室 Front-end Dev7チーム 佐藤信吾(右)

LINE株式会社 京都開発室 UIT1チーム 岡本拓也(左)/LINE株式会社 フロントエンド開発センター UIT1室 Front-end Dev7チーム 佐藤信吾(右)

LINEはWebアプリのプラットフォームとして、⁠LIFF」⁠LINE Front-end Framework)を提供しています。このLIFFはLINE社内での開発に利用されているほか、外部の開発者にもSDKが提供されており、これを利用することで自身で開発したアプリからLINEプラットフォームの機能にアクセスすることが可能になります。このLIFFの概要や開発者にもたらすベネフィットなどについて、フロントエンド開発組織においてLIFF開発に携わる岡本氏と佐藤氏にお話を伺いました。

LINEミニアプリの基盤としても使われるLIFF

――LINEが提供している「LIFF」とはどういったものでしょうか。

岡本:LIFFは「LINE Front-end Framework」の略で、LINE上で動作するWebアプリケーションを開発するためのプラットフォームです。Webアプリケーションを対象としているため、HTMLやCSS、JavaScriptといったWebのスタンダードな技術で開発することが可能になっています。またLINEプラットフォーム上の情報、あるいはLINEアプリと連携した機能をJS SDKを通じて扱うことが可能になっています。

LIFFを使用したシステム例
画像

引用:https://lineapiusecase.com/ja/usecase/reservation.html

LIFFを使用したシステム例
LIFFを使用したシステム例

引用:https://lineapiusecase.com/ja/usecase/reservation.html

LIFF SDKページ
https://developers.line.biz/ja/docs/liff/

LINE社内における開発では、すでにLINE上で動作するほぼすべてのWebアプリケーションがLIFFを利用しています。また、LINEのプラットフォーム上でアプリを提供できる、LINEミニアプリの基盤としても使われています。

さらにLIFFアプリはLINEに依存しない形で開発することが可能です。LINE上で動くWebアプリケーションを開発するためのSDKではありますが、ターゲットはLINEプラットフォームだけではなく、Google ChromeやSafariなど、一般のWebブラウザでも動作します。PCとスマートフォンのいずれであっても、同様の体験を提供できることを目指しています。

ユーザが必要な機能を最短距離で提供するために

――LINEでは、LIFFの提供を通じてどのような課題を解決したいと考えているのでしょうか。

岡本:LINEにはどのような生活にも寄り添うことを目指す、⁠Life on LINE」というビジョンがあります。当然、LIFFも同じビジョンを共有していて、サービス開発者がそのユーザに対して必要な機能を最短距離で提供できるようにサポートしていきたいと考えています。

その代表的な例がLINEミニアプリです。アプリをダウンロードしたりインストールしたりすることなく、ユーザが使いたいときに最短距離で利用することができる、ユーザが実現したいことをすばやく実現できることがLINEミニアプリであり、それを支えているのがLIFFになります。

さらにLINEとの連携も可能であり、LIFF SDKで開発したサービスをタッチポイントにしつつ、その中でLINEのさまざまな機能をサービス提供者側に提供することで、ユーザの体験を高めていく。たとえばLIFFで開発したLINEミニアプリでは、LINEのユーザアカウントを使って認証・認可が可能なほか、LINE公式アカウントとも友だち登録ができます。また、LINEミニアプリはWeb技術ですので、作成したサービスにGoogle Analyticsなどのアクセス解析ツールを導入すれば、データをトラッキングすることも容易にできます。そのデータに基づいてLINE公式アカウントを経由しメッセージを送るといったことも可能です。このようにLIFF SDKとWebブラウザだけに閉じた世界にするのではなく、LINE全体として価値を生み出すことを意識しています。

また、スマートフォンの世界を見た場合、AndroidとiOSで大きな違いがあります。この両者をブリッジする役割を担うことも、LINEに期待されていることの1つだと感じています。LINEは両方のプラットフォームで幅広く使われていて、さらにLIFFを使えばOSのギャップを最小限に抑えてLINEミニアプリを開発することが可能です。このように、プラットフォームのギャップを減らして簡単にミニアプリを実装できることは、LIFFが提供しているベネフィットの1つだと考えています。

画像

LIFF SDKをnpmパッケージとしても提供開始

――LIFFの開発ポリシーを教えてください。

佐藤:LIFFには簡単に使えて気軽に始められる「アプローチャビリティ」と、事業のニーズに合わせて利用できる「スケーラビリティ⁠⁠、そして前述した「Webオリエンテッド」という3つの方針があります。

これらの3つの方針を挙げている背景には、さまざまな関与度の開発者が、ストレスを感じることなく気持ちよく使ってもらうことが大きな目的です。

この方針に沿って提供することにしたのが、LIFF SDKのnpmパッケージです。開発者として考えたとき、JavaScriptの既存のエコシステムを利用し、開発やビルドを行いたいというニーズがあると思います。それに応えることがnpmパッケージの提供を開始した理由の1つです。

またWebオリエンテッドを掲げているのは、スマートフォンだけでなく、パソコンを対象にした開発者をサポートするためです。一例として、LIFF SDKで利用できる「Share Target Picker」があります。これはLIFFから送信先を選んでメッセージを送信できる機能ですが、スマートフォンとパソコンのどちらでも同じUXを提供しています。

画像

岡本:こうした取り組みの背景には、多くの人たちにLINE、そしてLIFFを使っていただきたいという我々の想いがあります。ただ、そのためには2つの側面が重要だと認識しています。1つは事業的に価値があること、2つ目は開発者にとってフレンドリーであることです。

実際、LINEをビジネスで活用するためのユースケースを紹介するページは、開発者向けのLINE API UseCaseと、ビジネスの企画などを行う人を対象としたLINE for Businessの2つがあります。

企業が何らかのアプリケーションを開発するといったとき、まずビジネスサイドでLINEにはこういったメリットがあるからLIFFやLINEミニアプリを使いたいと思ってもらいたい。一方、開発者側もビジネスサイドに何か新しいプロダクトの開発を依頼されたとき、LIFFであれば簡単にできそうだなと思われたい。そのため、両者に向けて情報を提供しているほか、とくに開発の観点においてはDeveloper eXperience(開発体験)を重要視しています。開発体験を大事にするという部分は、我々がこのプロダクトをつくるうえでのやりがいにもなっています。

LINEアカウントを用いた認証・認可を容易に実装可能

――先ほど、LIFF SDKを使えばLINEアカウントを使って認証・認可ができるというお話がありました。開発者がこの仕組みを利用するメリットは何でしょうか。

岡本:LIFFはLINEログインと呼ばれるサービスと統合されていて、OAuth2.0やOpenID Connectの知識がなくても、LINEアカウントでの認証・認可を可能にしています。実際、OAuth2.0やOpenID Connectを実装しようとすると、データの検証や証明書のチェックなどをサービスにおいても行う必要があり、かなり大変な作業になります。ただ、LIFFにはそれらが実装されているため、開発の負担を軽減することが可能です。

IDトークンを送信してユーザ情報を取得する
IDトークンを送信してユーザ情報を取得する
引用:LIFFアプリおよびサーバーでユーザー情報を使用する

これにより、わざわざ認証・認可用のデータベースや新たなサービスを立ち上げる必要がないほか、LINEアカウントを持っている人であれば誰でもサービスにログインできるようになります。

Amazon Web ServicesやMicrosoft Azureといったクラウドサービスとの相性のよさもメリットだと考えています。これにより、LINEのフレームワークというよりも、フロントエンドのフレームワークとして使っていただくことができます。確かにLIFFはLINEのフレームワークとして始まっていますが、徐々に一般的なWebの世界にも染み出していて、幅広い用途で使っていただけるようになりつつあります。

AWSを利用したシステム図
AWSを利用したシステム図

https://lineapiusecase.com/ja/usecase/reservation.html

AWSを利用したシーケンス図
AWSを利用したシーケンス図

https://lineapiusecase.com/ja/usecase/reservation.html

LINEからインターネットへ~LIFFが広げるWeb Oriented指向の開発体験

――今後の開発の目標を教えてください。

岡本:LINEアプリからLIFFで開発したLINEミニアプリを起動する、そのときのUXを研ぎ澄ませていくことはやりたいことの1つです。たとえばユーザがLINEミニアプリを立ち上げるとき、LIFFで作られているからとか、LINEミニアプリだからという理由で立ち上げるわけではなく、やりたいことがあるからでしょう。そのやりたいことを阻害しないように、さらにUXを洗練させていきたいと思います。

また、今後はLINEミニアプリがどんどん広まっていくと考えています。たとえば飲食店でLINEミニアプリからメニューを選んでオーダーする、あるいは順番待ちの予約をLINEミニアプリで行うといった用途で使われる機会は大幅に増えています。今後は、こうしたOMO(Online Merges with Offline)と呼ばれる取り組みがさらに求められるようになると思いますし、こうしたトレンドに追従できるようLIFFを進化させていきます。

佐藤:LIFF SDKの開発担当者として、僕たち自身の開発体験や開発効率を高めるための環境を整備していくことを意識しています。そうしなければ僕たちのチームも、そしてソースコード自体もスケールしないと考えているためです。こうした環境の整備は、最終的なエンドユーザに対しての価値提供にもつながると思うので、そこに注力していきたいですね。

とくに現在は新型コロナウイルスの影響から、我々もリモートワークで作業を進めています。このような状況でも、システムアーキテクチャやソースコードを共通言語として意思疎通を図ることは可能です。そのためには、まず基盤や仕組みをしっかり整える必要があると考えているので、そのためのモチベーションを高く持ってLIFFの開発に取り組んでいきたいですね。

最終的にはLIFF SDKを、依存性注入の厳密化やモジュール間通信のプロトコルの共通化などさらに研ぎ澄まされたモジュールアーキテクチャへとリファクタリングし、コアと個々のモジュールが分断した形にすることで、社内外のほかのデベロッパがコミットできる、そういった仕組みにしていくことが大きな目標です。

――本日はありがとうございました。
画像

おすすめ記事

記事・ニュース一覧