見出し画像

REALITYのiOSエンジニアチーム2022年振り返り

最近マインクラフトでレッドストーン回路作りにハマっているiOSエンジニアのあおやまです。

2022年も残りあとわずかという事で2022年のiOSチームを振り返ります。
noteやLTなどの社外へのアウトプットや、iOSアプリのリポジトリのモジュール化の進捗など、2022年のiOSエンジニアチームの動向を感じて頂けると嬉しいです。
REALITYのiOSチームがどのような事をやっているか気になった方は、こちらのnoteをご覧ください!

数字で見るiOSチーム

新しいメンバー

2022年は正社員の方を2名、内定者アルバイトの方を1名迎えました🎉
新しく参加してくれたメンバーのnoteはこちら!
現在も新しい仲間を大絶賛募集中です!

社外へのアウトプット

iOSチームでは、2022年にこの記事を含めて17本のnoteを投稿しました。
マガジンにiOSチームが投稿した記事をまとめています!

また、LTやカンファレンスにiOSチームのメンバーが計7回登壇しました。Clusterさんと共同で開催したLT会「REALITY Engineer’s Meeting with Cluster」potatotipsさんで3回、TechFeed Experts Night#3 〜 モバイルアプリ開発特集iOSDC Japan 2022CEDEC2022 に登壇しました。

2022年は継続的にREALITYで得た知見を社外へアウトプットできました。
来年はオフラインの勉強会の主催したいと考えています。

iOSアプリのリポジトリ

REALITYのiOSアプリは毎週金曜日に申請→月曜日にストア公開というサイクルを基本にしており、2022年の1年間で50回以上リリースしました。

Pull Requestは自動作成のものを含めて3000個以上がマージされており、Swiftのファイルは約1100ファイルから約1400ファイルに増えました。
この増加したファイルの多くは、機能ごとにモジュール化されたコードです。
2022年1月時点ではAPI通信などドメインレイヤーの一部のみがモジュールとして切り出されていただけでしたが、12月現在ではドメインレイヤーに加えて機能ごとのモジュール化も進み、10個の機能モジュールが作成されています。

また、依存ライブラリのSwift Package Manager移行も進めており、CocoaPodsで導入されているライブラリは40個から3個に削減しました。

2023年はこのままCocoaPodsを脱却し、isowordsのリポジトリを参考にした Swift Package Managerのモジュールを作成し、効率的に開発できる環境作りを頑張る予定です。

CI/CDの高速化にも力を入れており、例えばユニットテストの実行は最大で30分以上かかっていましたが現在では20分程度で、実行時間を約33%削減できました。

iOSチームのトピック

働く環境

オフィスが移転し、オシャレになりました!
個人的には1階にあるリンコスというスーパーでお菓子や食材を購入できるのがお気に入りポイントです。

また、チームビルディング用の新エリアが12月に公開されました。
スクリーンやキッチンなど、チームビルディングやLT会の開催に最適な環境となっています。
来年はこのスペースでLT会を主催したいと考えています!

「あきべん(アーキテクチャ勉強会)」の開始

これまでREALITYのiOSチームでは、iOSCK(iOSチョット気になる)というiOSのトピックをざっくり話す勉強会はありましたが、新しくREALITYのiOSアプリの実装の諸々について相談するための「あきべん」が始まりました。

この「あきべん」では、リポジトリ全体のアーキテクチャや実装方針、ツールの導入などを相談しています。
例えば、SwiftLintの運用について、現在の運用の問題点の洗い出し、あるべき姿、今後どのような形で進めるかなどを議論し、今後の開発に反映させています。

「あきべん」の様子

入れて良かったライブラリ

2022年に入れて良かったライブラリはダントツでDeallocationCheckerです。
現在は、Mirrorを使ってViewModelや子ViewControllerも検証できるようにカスタマイズしており、さまざまな箇所のメモリリークを検出し、アプリの安定化に貢献してくれています。

[weak self] 忘れの自動検出

前項のDeallocationCheckerに加えて、SwiftLintのcustom_rulesを使い、正規表現でclosure内部で[weak self]を書いていないself句を特定する仕組みを導入しました。
ネストしたclosureでのリークの検出などで活躍しています!

iOSチームの関わった機能をいくつか紹介!

アバタースタンプ

自分自身のアバターを使ってREALITYのチャットで利用できるスタンプを作れる「アバタースタンプ」機能を開発しました。
新しいスタンプも順次公開されており、現在は80種類以上のスタンプを作成可能です。

たくさんの方にご利用いただき、Twitterのトレンドに乗ったのも思い出深いでき事でした。

アバターショップ

アバターのアイテムをコインで購入できる「アバターショップ」が開店しました。

頭乗せバナナや、くわえクッキーなど個性的で可愛いアイテムが沢山発売中です!

りんごの審査お伝えするくまさん

「りんごの審査お伝えするくまさん」はユーザさま向けに公開されている機能ではなく、REALITY開発チームの内部向けに開発されている機能です。
アプリの審査のステータスに更新があれば、自動的にslackに通知されます。
REALITYアプリも関係者が多くなったため、Appleの開発者に登録されていない人でも誰でも審査のステータスの更新を確認できるようにしました。

REALITYでは、「りんごの審査お伝えするくまさん」だけでなく、業務を効率化させるために様々なbotや仕組みを開発しています!

まとめ

2022年のiOSチームを振り返りました。
社外へのアウトプットやiOSアプリのリポジトリのモジュール化の進捗など、iOSチームの動向を感じて頂けたでしょうか?
振り返ってみて、自分自身でもアウトプットや開発環境の改善を一年間
を通じて継続的に頑張れていたなと思いました。

REALITYでは、社外ヘアプトプットしたり、モジュール化など開発環境の改善をしながら、一緒にREALITYを作ってくれる仲間を募集中です!