
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 2022、CEDEC2022 に登壇しました。
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くん? pic.twitter.com/H1A353nQbF
— あんのうん。 (@Unknown____chan) April 20, 2022
アバターショップ
アバターのアイテムをコインで購入できる「アバターショップ」が開店しました。
頭乗せバナナや、くわえクッキーなど個性的で可愛いアイテムが沢山発売中です!
/
— 突撃!REALITY運営(公式) (@reality_totsu) December 21, 2022
遂に待望のアバターショップ🛍
🎊本日𝐎𝐏𝐄𝐍!
\
早速試着してみました...!
欲しいアイテムは見つかりましたか?💡
ぜひリプライで教えてね~!
※REALITYを最新バージョンにアップデートすると使えます! https://t.co/XtcLfuJqnI pic.twitter.com/iYL9swlMcA
りんごの審査お伝えするくまさん
「りんごの審査お伝えするくまさん」はユーザさま向けに公開されている機能ではなく、REALITY開発チームの内部向けに開発されている機能です。
アプリの審査のステータスに更新があれば、自動的にslackに通知されます。
REALITYアプリも関係者が多くなったため、Appleの開発者に登録されていない人でも誰でも審査のステータスの更新を確認できるようにしました。

REALITYでは、「りんごの審査お伝えするくまさん」だけでなく、業務を効率化させるために様々なbotや仕組みを開発しています!
まとめ
2022年のiOSチームを振り返りました。
社外へのアウトプットやiOSアプリのリポジトリのモジュール化の進捗など、iOSチームの動向を感じて頂けたでしょうか?
振り返ってみて、自分自身でもアウトプットや開発環境の改善を一年間
を通じて継続的に頑張れていたなと思いました。
REALITYでは、社外ヘアプトプットしたり、モジュール化など開発環境の改善をしながら、一緒にREALITYを作ってくれる仲間を募集中です!