「noteはiOS開発が強い」を実現する。挑戦的な技術導入と地道なリファクタリング
noteは順調にユーザー数を伸ばし、2022年には会員登録数が500万人を突破しました。
しかし、まだまだ「Webサービス」の印象が強く、「アプリ」の認知度が低いことがiOSチームの課題です。
そこで今回は、iOSチームが社内外から「noteはiOS開発が強い」と認識されるために取り組んでいる、挑戦的な技術導入と地道な改善について紹介していきます。
プロフィール(左から)
植岡 和哉
SES/受託開発企業でWeb・アプリ開発経験を経て、2015年10月に株式会社TimersにiOSエンジニアとして入社。2020年5月にnoteへに入社し、エディタ開発や大規模な技術的負債のリプレイスなどを担当。2022年5月にiOSチームのリーダーに就任。iOSDCには2017年から6年連続で登壇記録を更新中。
中島 健
新卒で金融系SIerにシステムエンジニアとして入社し、2019年にiOSエンジニアへキャリアチェンジ。2021年11月にnoteへ入社。iOSDC 2020にて「Apple Pencil対応の勘所を話します」というテーマで登壇。
西本 航 (watura)
新卒で株式会社 Zaim にiOSエンジニアとして入社。2022年4月にnoteに入社。iOSDC 2018 にて「iPhone が数秒おきにクラッシュするんだけど!」という題目で登壇。
社内でもアプリの認知度は低い。Web開発中心からの脱却
– noteのiOSアプリが抱えている課題について教えてください
植岡
一番の課題は、noteがWeb開発が中心である点です。現状ではアプリは後追いで機能開発をしなければなりません。
中島
アプリの開発はある程度の自由な裁量で開発ができるため、新しいライブラリの導入なども積極的に提案することができます。しかし、サービス自体の開発はWebに引きずられることが多く、まだまだ制限もたくさんあります。
西本
エンジニア全体の意識も変えていきたいですね。Webで機能開発をするときに、アプリでどう表現するかを常に考えているようにしたい。
植岡
会社としてWeb中心で開発を進めている現状を脱却するためには、アプリの重要性を社内に浸透させる必要があります。アプリ独自の体験をつくっていくことが僕らの大事なミッションのひとつです。
植岡
その他にも僕らにはまだまだ倒すべき課題は山積みです。しかし、半年前までは僕しかiOSエンジニアがいませんでした。そのため、目の前のタスクを消化するだけでも精一杯という状況でした。
その後、iOSチームが3人になったので状況は大きく変わりました。新規の機能開発は基本的に2人にお任せして、私はその他の取り切れていないタスクを消化することに集中できるようになっています。
– チームとしてできることの範囲が広がったんですね
植岡
今は自信を持って、「noteはiOS開発が強い」と言えるメンバーになりました。僕を含めて全員がiOSDCでの登壇経験があるんですよ、これは他社にもない強みだと思います(笑)
Xcode Cloudの導入、SwiftUI、async/await ……挑戦的な技術導入ができる環境
– 「noteはiOS開発が強い」を実現するための具体的な取り組みを教えてください
植岡
チームがより強くなるためには、最新技術のキャッチアップはしていくべきだと考えています。ツールやライブラリは検証したうえで積極的に取り入れています。
中島
直近だと私はSwiftUIの導入を行いました。いきなり全画面で導入するのは難しいので、案件ごとに適用できそうな部分から導入しています。他社ではすべてSwiftUIで開発している例もあるので、早く移行していきたいですね。
西本
私はasync/awaitの導入や、Xcode CloudとCircleCIの比較検証を行っていました。
iOSチームは自分のタスクをこなしてさえいれば、検証を自由にしたり、バグを見つけて修正のプルリクを勝手に作ったりしても許される環境なのはありがたい(笑)
中島
自分で手をあげれば施策を選べるのもnoteの良い点ですね。エンジニアやPdM、デザイナーでそれぞれ上下関係がないため、施策検討の段階から議論に参加できます。他の職種のメンバーと双方向性の高いやりとりができて、開発がしやすい環境だと思います。
植岡
2人が自発的に動いて、勝手にどんどん改善されていくので助かっています(笑)
– キャッチアップをするための工夫はなにかされていますか?
植岡
開発者にとって重要なイベントがあるときには、「WWDCを最優先にしたスプリント」などを組むようにしています。情報をすばやくキャッチアップできる環境は大切です。各自が裁量を持って、新しいことに常に挑戦できるチームを目指しています。
80%以上あったObjective-Cを2年で0%に。地道な改善が挑戦できる環境を生む
– 挑戦できる環境を保つために、心がけていることを教えてください
植岡
挑戦できるチームにしていくためには、技術的負債の改修や開発環境の整備も大切です。最新の技術を取り入れているだけでは、カオスな状態になってしまうので。
植岡
技術的負債の改修として、2年かけてようやくObjective-Cのコードを0%にすることができました。少しずつ地道に進めてきた成果がようやく形になりました。
西本
ビルドの重さも解決していきたい課題の一つです。現状ではスペックの高いMacでもファンがうなってしまうような状態なので。モジュール化を進めてビルド時間を短縮していきたい。
植岡
その他の具体例としては、「Renovateを検証導入」や「Circle CIで行っていたDangerの処理をGitHub Actionsへ移行」なども行いました。挑戦しつつ、地盤を整えていくようにバランスを取っていきたいです。
中島
あとは最初に話したとおり、Web側の新しい機能はアプリで追従していかないとですね。アプリ独自の挑戦的な機能を作っていくためには、Webと同じ速度で開発をしていく必要があるので。
植岡
足回りを整えると聞くと、ネガティブなイメージが思い浮かぶ方もいるかもしれません。しかし、新しいものを取り入れるためにも、アーキテクチャの整備や整地化を行っていくべきなんですよね。
「noteはiOSが強い」を実現するために。これからの取り組み
– さらにiOSチームが強くなるために必要なことを教えてください
植岡
僕の個人的な主観ですが、チームとしてそれぞれが尊敬して高め合える存在にはなっていくべきだとは思っています。それぞれ技術的に得意分野があれば、チームとして心強いですし、なにより楽しいので(笑)
おふたりはどうですか?
中島
僕はとにかくもっと手を動かしていきたいですね。ユーザーが欲しかった要素を考えて開発ができるといいなと考えています。将来的には、noteにとって重要な機能であるエディタの開発にも着手していきたいなと。
西本
私はもっと自動化を進めて、人間が頑張る部分を減らしていきたいと思っています。開発環境がよくなればさらに良い開発ができると考えているので。
植岡
ふたりが優秀なので、僕自身は重いタスクを持つことがほとんどなくなりました。チームとして形になってきている実感があります。
iOSチームは全員が自発的に動いて、新しいことをどんどん取り入れて挑戦しています。noteのバリューである 「つねにリーダーシップを」や「すばやく試そう」を体現しているチームだと思っています。
植岡
noteのiOSアプリを認知してもらうためにも、社内外の情報発信にはさらに力を入れていきたいですね。noteを書いたり、登壇をしたり、社内で機能リリースの告知をしたり……さまざまな方法で発信は続けていきたいです。
このまま挑戦ができるチームであり続けて、「noteはiOS開発が強い」ことを発信していきます。
▼noteのiOSエンジニアに興味がある方はこちら
▼noteのエンジニア記事がさらに読みたい方はこちら