【お知らせ】2023年10月1日にLINE Fukuoka株式会社からLINEヤフーコミュニケーションズ株式会社へ社名を変更しました。2023年9月30日以前の記事には旧社名で記載しています。
LINE Fukuokaでは、2月25日から3月25日までの毎週金曜ランチタイム(12~13時)に、「LINE Fukuoka Engineer Job Talk」というイベントを実施しました。 ここでは、第2回目となる「新たなコミュニケーション創造への挑戦 クライアントエンジニアのスタンプ開発」の模様をレポートします。
林 康司 LINE Fukuoka開発センター 開発1室 室長 海外のスタートアップでメッセージアプリの開発に携わった後、LINEのサービス規模や技術に興味を持ち入社。入社後は主にLINEスタンプやLINEウォレットのバックエンド開発を担当し、現在はマネージャーを務める。
竹下 秀則 LINE Fukuoka 開発センター 開発Cチーム マネージャー ホスティングサービス企業で Web アプリケーション、iPhone アプリ開発を経て、2014年入社。LINEファミリーアプリの iOS 開発を担当した後、2017年より LINEアプリのスタンプショップなどのスタンプ関連機能のclient 開発チームのマネージャーを担っている。
馬見 誠 LINE Fukuoka 開発センター 開発Cチーム 福岡市で生まれ育ち、福岡市内の受託開発会社でWebアプリケーションやFAシステム開発を経験した後、2014年にLINE Fukuokaに入社した、第1級福岡市民。LINEファミリーアプリのiOS開発を担当した後、2017年よりLINEスタンプメーカー(前LINE Creators Studio)のAndroid開発チームに参画しマネージャーを担う。 2022年2月からLINEウォレットのiOS開発を担当するICとして活動し始めたばかり。
イベントの冒頭で林がLINEおよびLINE Fukuokaについて 説明し、続けて馬見が「LINEスタンプメーカー」の開発について話しました。
馬見
LINEスタンプメーカーは、すべてのLINEユーザーがスタンプを自作することを当たり前化するアプリです。このツールを使って自作したスタンプを起点に新たな会話が生まれ、ユーザー同士の距離をさらに縮められるというのがコンセプトになっています。
馬見
しかし実際には、スタンプ制作は敷居が高いと思われています。ユーザーリサーチによると、スタンプを作らない理由として、難しそう、センスがない、時間がない、作りたいと思わないといったものがありました。多くのLINEユーザーにスタンプを自作してもらうためにはこれらを解消する必要があり、LINEのアバター機能を使って簡単にスタンプを作ることができる「アバタースタンプ」機能を2021年12月にリリースしました。
馬見
アバターは自分専用のオリジナルキャラクターです。自分の写真を撮るとアバターが自動生成されて、メイクや髪型、服装等、自由にカスタマイズできます。こうして自分好みに作ったアバターを用いて、スタンプを作成していきます。 アバタースタンプでは、16種類のスタンプを自動生成する「アバタースタンプかんたん作成機能」と、ユーザーの想いを自由に表現することができる「アバタースタンプこだわり作成機能」の2種類を用意しました。
馬見
エンジニアも、サービスを作ることを楽しみながら開発に励んでいます。つまりエンジニア側にもユーザーと同様に伝えたい想いと作る楽しみがあり、開発環境を通じてそれを表現しているのです。 そしてユーザー側には作成の手間を減らしたい、表現の幅を広げたい、という課題がありましたが、開発側でも開発環境の問題から、同様の課題を抱えています。
馬見
Androidは2017年からKotlinで開発していて、UIを簡潔に書けるDSLとして高く評価したAnkoも同時に採用しました。しかしAnkoはプロジェクトが停止したため、別のライブラリに入れ替えてまたUIを作り直す必要があります。昨今のトレンドで言えば、当然Jetpack Composeで、それにリプレイスすることでエンジニアの手間を減らし、表現の幅を広げられると思っています。 iOSにも過剰にRxSwiftに依存して非同期処理を実装しているといった課題があり、徐々にSwift Concurrencyに置き換えられていくべきだと思います。
馬見
このように、やりたいことはたくさんありますが、残念ながらクライアントエンジニアが足りていません。エンジニアがLINEスタンプメーカーを開発しやすい環境を保全し、そしてユーザーがスタンプを作りやすい環境を保全する、そんな環境保全に興味があるエンジニアを積極採用しています。
続いてプレゼンテーションを行った竹下は、LINEスタンプ関連機能の開発における現状について説明しました。
竹下
開発プロセスは、2週間が1つの単位になった、我々が「リリーストレイン」と呼ぶサイクルで開発しています。LINEアプリ全体でゆるめのコード規約があり、それに基づいて開発をおこないます。プルリクエストを作るとレビューに進みますが、原則として2人以上からレビューしてもらわないとマージできないルールで、これによって品質を担保しています。その後、CIが走り、社内のアプリ配布サービスにデプロイされて、QAが行われます。
竹下
最近の開発案件を紹介します。まずLINEアプリ上で初めてサブスクリプションのサービスを開発した「LINEスタンプ プレミアム」です。そして昨年はアニメーション絵文字をリリースしました。トーク画面でアニメーション絵文字を使いながらチャットの限界文字数まで表示させても、 処理速度を落とさないようにする等、性能面をかなり意識して実装しています。近年力を入れているのはキーボード周りの改善で、スタンプをタグ付けすることで用途ごとに選びやすくする機能などを追加しました。
竹下
iOSではSwift、AndroidではKotlin化を進めていますが、Objective-CやJavaといったレガシーなコードも残っています。ビルド時間も長くなっているので、Swift、Kotlinへの書き換えと同時にモジュール化も進めています。個々のサービスの基本アーキテクチャはチームにある程度任せられていますが、多いのはMVVMベースで、我々のチームもMVVMアーキテクチャにしています。
竹下
我々のスタンプショップ開発プロジェクトでは、大きい規模でスクラムチームを複数並列で立ち上げ、それぞれでLINEの新機能や新商品開発を行うというチャレンジを進めています。現在は4チームで、各チームには企画や開発、デザイン、QAといった1つの案件を完結させるために必要な職能を持つメンバーを集めたスタイルです。企画はすごくたくさんありますが、エンジニアが足りていないのが現状です。
竹下
私のチームはiOSとAndroidで各9名のエンジニアがいて、そのうち3名がマネージャーです 。日本だけでなく、韓国、台湾、中国、ドイツ、パキスタンなど様々なバックグラウンドを持ったメンバーがおり、国際色豊かな環境です。 チームで使う言語は、コーディングに関係する部分は基本英語で、ドキュメントはできれば英語にするという感じです。会議では専属の通訳がいるため、日本語と英語のどちらでも大丈夫です。Slackは英語ベースですが、翻訳Botもあるので日本語でも問題ありません。入社時点での英語力は問わず、英語に対する拒絶感さえなければ大丈夫です。最低限、プルリクエストの説明やコミットコメント、コード内のコメントは英語で書く努力が求められますが、それ以外は学びたいという気持ちがあれば大丈夫だと思います。また会社から十分な学習支援も提供されます。
竹下
LINE Fukuokaではエンジニアのキャリアラダーとして、エンジニアとしてのスキルレベルである「Iレベル」と、マネジメントのスキルレベルである「Mレベル」の2本の柱があります。マネージャーにならないと出世できない評価や報酬が上がらないといったことはなく、エンジニアとしての道を究めることも、マネージャーを経験した後にエンジニアに戻るといったことも可能です。 また、日本で広く使われているLINEに携わり、身近な人にダイレクトに価値を共有、提供できることは、LINE Fukuokaで働く大きな魅力だと思います。
Q&A
プレゼンテーションの後、参加者からさまざまな質問が寄せられました。そのうちのいくつかをご紹介します。
Q:エンジニアに求められるテクニカルスキルはどういったものですか?
竹下
まず基本的な知識をしっかり身に付けていることを期待しています。具体的には、プロセス・スレッドに関することやマルチスレッドプログラミングの知識、アルゴリズムをはじめとするコンピューターサイエンスへの理解などです。さらにiOSおよびAndroid開発で基本となる知識も必要です。チームでの開発経験や、Webを利用したアプリの開発経験があると非常によいと思います。この知識と実践の双方で身に付けられた問題解決力をもっとも重視しています。
Q:課題選考で使う言語を教えてください。また選考する際のポイントは何ですか?
竹下
応募していただくと、まずプレテストという技術試験を受けていただきます。このプレテストには、デザインとアルゴリズムに関する問題のそれぞれがあります。デザインに関する問題では、あるコードを改善するといった観点の問題などがあります。アルゴリズムに関する問題は、競技プログラミングサイトのような形式で実際にコードを書いていただく問題が出題されます。ただあくまでスキルを判断する材料として回答していただくものであり、すべて解けなければ通過できないといったものではありません。なおコードを書いていただく問題の言語は、iOSエンジニアの方はSwift、Androidエンジニアの方はKotlinになります。
Q:LINE Fukuokaのエンジニア採用に応募する際、技術的なもの以外にどのようなスキルが求められるのでしょうか?
林
開発はチームワークなので、やはりコミュニケーションスキルは大切です。同僚や各部署との連携も必要で、折衝や協業といった対応はどのポジションでも求められます。
Q:スタンプ開発に興味がわきましたが、入社後にその他のプロジェクトに携わることができる機会はありますか?
林
いずれかのプロジェクトにアサインされると、ずっとそのプロジェクトに関わり続けなければならないいうわけではありません。LINE Fukuokaにはさまざまなプロダクトやサービスに携わることができる可能性があり、会社としても希望者にはそういった機会を積極的に提供したいと考えています。また、ほかの部署に異動できる社内公募の仕組みがあるほか、一時的にほかの部署で違う技術に挑戦できる社内技術留学と呼ばれる制度もあります。
このほかにもさまざまな質問が寄せられ、それぞれの登壇者が回答していました。 本イベントは2月~3月にかけて全5回開催されたものです。 この後も各技術領域別のレポートを更新していきますので、是非ご覧いただけますと幸いです。 また、イベントやレポートを通じて興味をお持ちいただけた方は下記からご応募やカジュアル面談へのエントリーもお待ちしております!!
選考応募
カジュアル面談応募