LINEに最新のiOSの機能を取り入れる

こんにちは、iOS/Androidエクスペリエンスチームのまつじです。

iOS15がリリースされて約1ヶ月が経ちましたね。色々機能が登場しましたが、個人的に注目したいのは通知まわりです。コミュニケーション専用の新しい通知のスタイルが導入され、今までよりもリッチなUIで通知を受け取れるようになりました。

LINEも11.18.0でiOS15に対応し、新しいUIでLINEの通知を受け取れるようになりました。今までの通知と比べて、よりリッチな形で通知を受け取れるようになりました。

この記事では技術的なことではなくて、会社の組織的な取り組みとしてLINEがどのような流れでiOS15に対応したのかを紹介します。
iOS15対応についての技術的な内容についてはヤフーさんとのMeetupで詳しくお話しする予定ですので、興味がある人はそちらにもぜひご参加ください。
https://line.connpass.com/event/228428/

Early Bird TFとは

LINEではiOS/Androidの新機能にできるだけ早く対応するため、WWDCやGoogle IOが近づくと、Early Bird TFというタスクフォース(TF)を毎年立ち上げています。
(「タスクフォース」とは一つの目標を達成するために設立される一時的なチームのことです。)
僕は去年(2020年)もWWDCで発表されたiOS14の最新機能を導入するためにEarly Bird TFに参加し、iOS14のウィジェット開発を担当しました。少し話はそれますが、去年の僕は新卒として入社してたったの3ヶ月、配属されて1ヶ月のド新人だったわけですが、そのようなTFに参加し、大きな裁量を与えられたことに非常に驚きました。

そして去年に引き続き、今年もこのEarly Bird TFに参加しました。今年のEarly Bird TFは、日本/韓国/台湾オフィスの10人前後のメンバーで構成されました。

iOS15対応の流れ

今年のWWDCの発表後からリリースまで次のような流れでEarly Bird TFは進行し、iOS15に対応しました。

  • メンバーごとに気になる機能をピックアップし、調査を行う
  • 調査した結果をメンバーに共有し、LINEに適応できそうな機能をピックアップ
  • プロトタイプを作成し、企画の人に提案
  • 企画の観点で良さそうであれば、実際に仕様を固めて開発を進める

まずWWDCの後に各々が気になる機能をピックアップし、調査を進め6月下旬くらいに一度簡単な共有会を行いました。その共有会の情報をもとに、開発者の視点でどの機能に挑戦していくのか話し合います。この時には、「難しそうだから」とか「そこまでニーズがなさそうだから」とかはあまり考えずに「とりあえず色々なことに挑戦しよう」ということで幅広い機能に挑戦しました。
僕はiOS15のCommunication Notificationを担当しましたが、他のメンバーは、Apple Watchでのアプリの画面を常時表示対応、QRコード読み取りの体験の向上、Spotlight検索の改善などなど (まだまだあります) iOS15で登場/改善されたものをLINEに導入しようと挑戦していました。この中には実際にリリースできたもの、現在進行形でプロジェクトが進んでいるもの、リリースを断念したものなどさまざまなものがあります。

担当する技術が決まったら最低限動くプロトタイプを作成し、それを企画の人に使ってもらい、LINEとして適切な機能かどうか検証してもらいました。幸運なことにiOS15のCommunication Notificationは企画の人にとっても対応したい機能だったようで、OKを頂くことができました。

企画の人からOKがもらえれば、ここからは企画の人と一緒に詳細な仕様を決めていく必要があります。僕が担当したCommunication Notificationの場合、どの通知に適応するか、LINEの既存の通知の設定とどう整合性をとるのか、などを話し合いました。そして仕様が決まれば、リリースに向けて実装を進めていきます。

また、新機能以外にもiOS15で挙動が変わりLINEが正しく動作しないこともあるので、それの対応もEarly Bird TFの役割です。iOS15ではナビゲーションバーが透明になるなどがありましたね。QAの方が見つけたiOS15での問題点を新機能の開発と並行して対応しました。

Early Bird TFの魅力

このEarly Bird TFの魅力はなんといっても、iOSの最新技術を触れることです。
普段の業務だとなかなかキャッチアップできないような最新機能やマニアックな機能も、このEarly Bird TFではキャッチアップできます。

さらに、Early Bird TFで扱う機能は基本的に最新のiOSが対象です。つまり、Swift Concurrencyを用いたコードなんかも書くことができます。(結局iOS15以外でも使えることになりそうですが…笑)このように最新の機能を使い倒せることもEarly Bird TFの魅力です。

また、開発側から企画の人に新機能を提案できることも魅力の一つです。もちろん普段の業務でも開発者が新機能を提案することはできますが、開発者が一早くiOSの新機能の仕様を正確に把握できるため、Early Bird TFではその特徴がより強くなります。
最新の技術をキャッチアップし、ユーザ数が多いLINEというアプリに対してその技術をどう適用していくのか考え、いくつも案を出してプロトタイプを作っていく、というのはとても刺激的で楽しかったです。

最新技術に触れる難しさと課題

Early Bird TFの楽しさについて説明しましたが、決して楽しいことだけではないです。

知見の少なさ

まずなんといっても「知見が少ない」ということです。WWDCで発表された直後の技術を扱うことになるわけですが、OSSなどとは異なりiOSのコードが公開されていないので、Appleのドキュメント以外の情報が存在しない状態からのスタートです。
Apple Developer Forumsをはじめ色々なページを定期的にチェックし、他の開発者が何か知見を共有していないか確認していました。また、はっきりとわからないことは自分でApple Developer Forumsなどで積極的に質問を投稿し、情報のキャッチアップをしました。

開発対象がBeta

またEarly Bird TFでは基本的にBeta版のiOSを対象に開発を行います。すると、自分が実装したコードが正しく動かなかった時に自分のコードが悪いのか、それともiOSがBetaだから動かないのかはっきりしません。
実際、自分のコードが悪くて動作しなかったことも、iOSにバグがあって動作しなかったこともありました。このような場合フィードバックをAppleに送ることで、何かしらの反応がAppleからもらえないか試しました。Early Bird TFでは積極的にAppleにフィードバックを送るようにしていて、今年のWWDC以降だけで20件以上のフィードバックをAppleに送っています。

そして仕様もBetaが上がるたびに変わります。LINE側で仕様を定めた後にiOS側で仕様を変わることも多々あります。その都度、企画の人に何がどう変わったのか伝え、仕様を再検討する必要がありました。 

終わり

この記事ではLINEが設置しているEarly Bird TFについて紹介しました。Early Bird TFの過去の取り組みなどはiOSDCで詳しく話しているので、ぜひそちらも見てみてください。

しかし、LINEで対応できていないiOSの機能はまだまだたくさんあり、Early Birdt TFのような一時的な取り組みだけでその全てを対応するのが難しくなってきました。そこでEarly Bird TFのように、OSの機能を積極的に取り組むことを専門としたチーム、iOS/Androidエクスペリエンスチームが新たに発足されました。iOS/Androidエクスペリエンスチームでは、1年中iOSやAndroidの最新機能をキャッチアップし、それをLINEに適用できないか提案し実装することを行なっています。Early Bird TFに所属していたこともあり、僕もそのチームに配属され、これからもiOSの機能をLINEに取り組む仕事をしていきます。

冒頭で述べたように、iOS15対応の技術的な内容についてはMeetupでお話しするので、そちらもぜひ参加してみてください!
https://line.connpass.com/event/228428/

また、LINEをより良いアプリにするための仲間を募集しています。
この記事で紹介したようなOSの最新機能の導入するチーム以外にも、LINEの各機能を担当するチームやビルドパフォーマンスを改善するチームなど、非常に多くのチームでLINEのアプリを開発しています。
興味がある人はぜひ一度採用ページを見てみてください!
https://linecorp.com/ja/career/tech-issue-21/