FireFoxOS版のLINE

FirefoxOS版LINEは2013年下半期に開発を開始し、2014年2月にリリースされました。FirefoxOS LINEは現在世界19カ国で使用されており、Firefox Marketplaceでのダウンロード数が多いアプリの1つです。また、多くのユーザーが好意的なレビューを書いており、人気アプリTOP 7の中で唯一星4つの評価を維持しています。

このようにユーザーから好評を得ているFirefoxOS LINEは、決して簡単に作られたものではありません。FirefoxOS LINEがどのようにスタートし、またどのように開発されたのか、性能向上のためにどんなことをしてきたのか、開発に携わる中で経験したことをどうやって共有しているのかについて紹介します。

WebOSのスタート

2013年、MWC 2013で注目されたのはWebOSの登場でした。FirefoxOS(以下FXOS)、Tizen、Ubuntu、Sailfish OSが発表され、MozillaはKeon、 PeakというFXOSデバイスを発表しました。もちろんアプリ開発者向け(Developer Preview)デバイスではあったが、他のOSよりも早いスタートでした。
Firefox OSのPeakとKeon 図1. Firefox OSのPeakとKeon

LINEプロジェクトのスタート

FXOS版LINEのプロジェクトは2013年10月にスタートしました。プロジェクトが立ち上がった当初は誰もが性能面を心配していました。当時ターゲットデバイスも性能がよくなく、ましてネイティブでなくウェブで作られたLINEが果たしてうまく機能するのか、開発は可能なのかと疑問を抱くメンバーが多かったです。しかし、いざ開発を始めると他のプラットフォームよりも早くLINEを構築し、2ヵ月足らずで最初のビルドができあがりました。すぐにQAを開始し、1ヵ月程度のQA期間を経て安定化させていました。これはWebプラットフォームだからこそ可能なスピードでした。アプリ開発は通常UIガイドに合わせるのに多くの時間がかかりますが、WebプラットフォームではCSSとHTMLがその代わりをしてくれるため、その分時間を節約することができました。また、CSSとHTML再適用以外の特別なビルドプロセスが必要なかったため、作業した結果をすぐに確認できるというメリットもスピーディーな開発に一役買いました。

南米出張

FXOSデバイスの1次プリインストール版発売は、スペインと南米のチリ、ペルー、メキシコ、ベネズエラ、コロンビア、ウルグアイが対象国でした。その中から他の地域より通信環境が劣悪であると推定されるチリ、ペルー、メキシコを選択し、FXOSデバイスを手に出張へと旅立ちました。

チリではネットワークテストをしていたところ、韓国国内とは異なりメッセージの送信に平均3~4秒ほどかかることが確認され、メッセージをより早く送信するための最適化作業を開始しました。ペルーに到着して後に「ペルーの奇跡」と呼ばれた「Asynchronous Send Message」を作成して適用し、既存の送信フローから送信中の表示を省く方法を企画側に提案し、これが受け容れられたことで従来の10倍ほど早い0.3~0.4秒以内に送信されるように内部ロジックの改善とUIの最適化作業を完了しました。そしてこれとともにチリ、ペルーでSMS認証メッセージが届かないとか、届いてもSMSの内容が文字化けするなどの問題点が発見され、サーバー側との確認作業を経て修正されました。
不安定なチリのネットワーク状況 図 2. 不安定なチリのネットワーク状況

これらは現地でのテストが単純なテストとして終わるのではなく、よりよいプロダクトにつながるということを示す好事例といえます。もし韓国国内でのみテストしていたとしたらこのような作業を早い段階で行うことができなかったと思います。

初めてMarketplaceに登録

南米出張から戻り、2014年1月26日、LINEv1.0.0を初めてmarketplaceにリリースしました。何の広告もなしに初日に3000人以上がダウンロードし、リリース後2週間足らずでマーケット全体でのランキングトップ10入りを果たし、3週目を過ぎてマーケット全体で4位に浮上しました。
Firefox Marketplaceの状況 図 3. Firefox Marketplaceの状況

FXOSデバイスの販売数が30万台程度という記事が出ましたが、初期に出回った一定量がユーザー向けではなく開発者向けだったことを考えると実際にユーザーが使用している端末の数はそれほど多くないでしょう。

MWC 2014

マーケットにLINEをリリースしてまもなく、Mozilla側からMWCのイベントブースにLINEのデモブースを設け、MWCに足を運んだ人々にLINEの宣伝とデモを行い、またMozillaのブースを訪れたVIPを対象にLINEの開発に携わった経験談を話して欲しいというリクエストがありました。そうして2月22日、MWC 2014のスタッフとして参加するため、スペインに向かうことになりました。
MWCでVIPを対象にプレゼンテーションを行う様子 図 4. MWCでVIPを対象にプレゼンテーションを行う様子

MWCのMozillaのスタッフとして滞在した4日間、実に多くの人々がMozillaブースに立ち寄りました。ブースが大きいわけではなかったし、位置も中央からやや離れた隅にあり、実際のところ来ようと思って来ない限り目にもつかない場所だったにもかかわらず、毎日のように大勢の人が訪れ展示されているデバイスを触り、気になる点を質問していました。その中でも記憶に残っている質問は「現在アプリを開発していますが、いつもクラッシュしてしまいなかなか進みません。LINEはどのように開発を行い、こうしてプロダクトをリリースしましたか?またデバッグはどうすべきでしょうか?」という質問でした。その時他のスタッフに話しかけられたためきちんと答えてあげることはできませんでしたが、その方がこのブログを見てくれているのならこう答えたいです。「FXOSの開発において、デバッグはconsole.logとADB logに依存せざるをえません。特にworkerで発生するエラーは、対処が難しいだけにテストも厳しく、code lineごとにlogを選んで確認していくのがそれなりに早いエラー対応方法といえます」
MWCのMozillaブースを訪れる人々 図5. MWCのMozillaブースを訪れる人々

そして、去年期待を集めていたWebOS(FXOS、Tizen、Ubuntu、Sailfish)のうち、ユーザーが使用可能なデバイスを販売しているのは唯一FXOSだけです。現在、ZTE、Alcatel、Hauwei、LGがFXOSのデバイスを生産しており、ZTEとAlcatelがMWC 2014で新モデルを発表しました。

FXOSのバージョン

MozillaはMWC 2014でFXOS 1.3を正式に発表し、ZTEの新モデル、Open CにOS 1.3を搭載しMozillaのブースに展示しました。LINEを開発していた当時はOS 1.0でしたが、開発中にOS 1.1が発表されたのでそれに合わせて作業を進めました。OS 1.0と1.1の最も大きな違いはpush notificationを使用できるようになった点です。また、OS 1.2は発表しないままいきなりOS 1.3をMWCで公開しました。

OS 1.3は画期的な変化がありました。それはスクロールの性能です。デバイスの性能はそのままでもOSをアップデートするだけでデバイスの基本スクロールが改善されたことです。しかし、それも大量のデータを持つリストの場合は話が違ってきます。その場合は基本スクロールの性能ではなく、開発をどう進めたかによって性能が異なってきます。この話は次に登場するのでそこで確認しましょう。

性能改善と2回目の定期リリース

サービスのリリース時期は市場が決定し、開発者も企画者もその時期を決定することはできません。そのため適切な時期にサービスをリリースすることが極めて重要です。FXOS LINEも例外ではなく、適切な時期にリリースが行われました。
その中で手付かずとなっていたのがまさにこの性能の部分であり、これを補完するために様々な部分にわたって性能改善作業が進められました。

その結果、LINEの初期読み込み速度が30%向上し、友だちとたくさんトークする際に読み込みに時間がかかっていた作業も改善され、最大10倍ほど速くなりました。これは、ロジックの改善もあったが、10年以上蓄積してきたWeb UI作業のノウハウをすべて反映した結果です。性能に影響を与えうる、繰り返しを伴う部分にライブラリを使用せず、DOM APIを利用して性能改善を図った点が例として挙げられます。

ライブラリは作業が楽にはなりますが、楽をしたツケは必ず払わなければなりません。これは等価原理であります。

このように性能改善作業と無料スタンプ対応を含む2つ目のバージョンをマーケットにリリースしました。また、現在も性能改善作業を続けており、徐々に良くなっています。
無料スタンプおよびプレゼント機能 図 6. 無料スタンプおよびプレゼント機能

Firefox Developer Conference 2014

4月10日、ソウルのKOEXでWeb開発者向けに韓国Mozillaがカンファレンスを開催しました。イベントの1つとしてFXOSでLINEを開発した経験とノウハウを共有するために講演者として参加しました。そこでFXOSについての誤った認識と、FXOSのAPIを正しく使用する方法について話しました。その中で実際にLINEを開発するにあたって最も時間を費やした部分でもあるIndexed DBとWeb Workerについて集中的に説明し、アプリをアプリらしく作ることができる方法についても共有しました。
FX Dev Conでの発表の様子 図 7. FX Dev Conでの発表の様子

また、休憩時間とFXOSデバイスの体験時間に臨機応変にLINEについての採用相談も行い、多くの方々が関心を持って相談を受けていました。
イベントスタッフとして参加したメンバーがFXOSデバイスについての専門知識が不足していたため、採用相談に加えFXOSデバイスについての説明も行いました。
即席採用相談デスク 図 8. 即席採用相談デスク

今後のFXOS LINE

MWC 2014でZTEとAlcatelがデュアルコアのデバイスを発表し、Mozillaは2Qに南米とヨーロッパを中心に、3Qおよび4Qに東南アジア、アフリカ、ロシア、中国、日本など、大多数の国に様々なデバイスをリリースする計画だと明らかにしました。
Mozillaの2014年のデバイスリリース計画 図9. Mozillaの2014年のデバイスリリース計画

今、 FXOSの市場はようやく最初の一歩を踏み出し、FXOSのLINEはその歩みに合わせて他の競合よりもいち早く対応していますが、まだiOSやAndroidに比べると機能面で不十分な点が多いです。それらを1つずつ解消し、ユーザーの反応を気にかけつつ、市場が拡大したらFXOS版LINEもともに成長する・・・これらを経験できるチャンスが与えられました。自分が作ったアプリが成長していく姿を見守ることができるのがどれだけ楽しいことか。このブログをご覧になってこんな楽しい体験を一緒したくなったら、ためらわずにLINEの門を叩いてみましょう。その向こうにはグローバルな楽しい経験が待っているはずです。