『Nintendo Switch Online』アプリは2022年にVer. 2.0.0へのバージョンアップを行い、デザインが新しくなったほか、フレンドがいま遊んでいるゲームをアプリ上で確認できる機能などが追加されました。また、それまでのバージョンではiOS、Android共通の開発プラットフォームを利用していましたが、このバージョンアップに向けて、それぞれのOSに最適な機能・体験を実現しやすくするために、SwiftやKotlinで記述した各OSにネイティブなアプリとして作り直しました。私はこの大きなバージョンアップを実現していくタイミングで、スマートデバイスアプリの開発に携わることになりました。
私はこのバージョンアップでAndroidアプリの初期の設計から担当したことで、その後のバージョンアップでもAndroidアプリの開発を先導していくことになりました。ただ、私自身はこの時までAndroidアプリを開発した経験はありませんでした。そのため、最初はそれまでに担当した他分野の開発経験も活かしながら、Androidアプリの標準的な設計を理解することから始めて、今回作るべきアプリの枠組みを構築していきました。同じチームにはさまざまなバックグラウンドを持ったエンジニアがいて、それぞれ持っている知識や経験も異なっていたため、お互いに自分の経験を共有していろいろと議論もしながらアプリの実装を改善していきました。このプロジェクトに参加する前はどちらかというと一人でする仕事も多かったのですが、この交流で自分にとって新たな知見を得ることができただけでなく、相手にも自分の知見を提供することができたため、チームとしての成長を実感するとともに、チームで仕事を進めることの面白さも感じることができました。
スマートデバイスアプリはサーバー、アプリのどちらが欠けてもサービスとして成立しません。任天堂ではサーバーのエンジニアもアプリのエンジニアも、みんなでワイワイと話をしながら、細部にもこだわって製品を作りこんでいます。デザイナーも社内にいて、連携することは多々あります。たとえば、UIを実装して挙動を確認してもらったところ、「アニメーションをもっと細かく調整できませんか?」という相談を受けたことがありました。求められる挙動はOSの標準の動作とは異なるものでしたが、アプリ内のさまざまな箇所で使われるものでもあり、妥協はできません。任天堂には、必要なものはなんでも作る、という風土があります。自分たちが目指すクオリティを実現するために、私はまずアニメーションのパラメータを変更しやすい作りにして、デザイナーの要望に応えられるよう調整を繰り返しました。そしてこの機能を部品として実装して、アプリ内で共通に使えるようにしました。こうして作ったアニメーションをアプリの各所に適用すると、アプリの動作に一貫性が出て、手触りがぐっと良くなりました。それまでの業務では、組み込みやサーバーといったデザインに直接関わらない案件に取り組むことも多かったため、実際に作ったものをデザイナーとのやり取りを通してブラッシュアップしていく過程はとても新鮮でした。
スマートデバイスアプリ開発には、アプリ開発、サーバー開発、ゲーム連携の仕組みづくりなどさまざまな要素があります。これらの機能を社内で一貫して作ることができるのは、エンジニアとしてとても魅力的な環境だと思います。求めるクオリティを実現しようとすると初めての挑戦となることも多くありますが、一方で、社内で作っているからこそ細部まで徹底的にこだわって作りこむことができるとも言えます。これはどの職種の人と仕事をしていても感じることで、メンバー全員が同じ目線を持っているなと感じています。
スマートデバイスアプリのエンジニアとして、自分の書いたソースコードが世界中のお客様に触っていただけることにプレッシャーを感じることはありますし、開発の中では前例のないことにも挑戦するため、大変なことも多くあります。それでも、非常に多くのお客様に製品を触っていただけることは、数々の困難を乗り越えるモチベーションにつながる、とても大きなやりがいです。私はこれからも、さまざまな分野に触れながらエンジニアとしての技術領域を広げ、プロダクトを作りこむことに貢献していきたいです。