見出し画像

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

最近、マイクラで土無限装置を作ったiOSチームのあおやまです。
2023年も残りあとわずかという事で2023年のiOSチームを振り返ります。
昨年の振り返りの記事では、レッドストーン回路作りにハマっていると書いてて、今年はマイクラを楽しんだ1年だったなとしみじみと感じています。
そんな、2022年のふりかえりはこちら!
この2023年のふりかえりと読み比べると、REALITYのiOSチームの継続的な取り組みやトレンドの移り変わりを感じて頂けると思います。

REALITYのiOSチームがどのような事をやっているか気になった方は、こちらのnoteをご覧ください!


数字で見るiOSチーム

新しいメンバー

2023年は昨年内定者アルバイトジョイントしてくれた、harunaさんが入社され、iOSチームの配属となりました。
そんなharunaさんのnoteはこちら!

社外へのアウトプット

iOSチームでは、2023年にこの記事を含めて15本のnoteを投稿しました。
また、potatotipsに「String Catalog」というタイトルで、GREE Tech Conferenceにキーノートおよび、「アプリ「REALITY」の12言語対応プロセスの仕組みと品質向上の取り組み」というタイトルで登壇しました。

マガジンにiOSチームが投稿した記事をまとめています。

今年の目標は勉強会の主催だったのですが、色々と予定が噛み合わず実現できませんでした。
最近、社内のチームビルディングスペースやキッチンの使い方が小慣れてきたので、2024年こそは主催するぞ!勉強会!

iOSアプリのリポジトリ

REALITYのiOSアプリは毎週金曜日に申請→月曜日にストア公開というサイクルを基本にしており、2023年の1年間で51回リリースしました。Pull Requestは自動作成のものを含めて1500個以上がマージされており、Swiftのファイルは約1400ファイルから約1900ファイルに増えました。
REALITYは2022年ごろから、モジュール分割を進めており、2023年末時点で全体ファイルの半分以上が各モジュールに移行されました。
また、依存ライブラリのSwift Package Manager移行も進めており、ついにCocoaPodsを脱却しました。

iOSチームのトピック

Pro SwiftUI勉強会の開催

REALITYでは、SwiftUIを使った実装がされており、新規画面の他に既存画面をSwiftUIで書き換えることも行っています。SwiftUIの動く仕組みなどの知識や認識をチーム内で揃えることで、より良いコードが書けるようになることを目的に開催しました。

週1時間の輪読会、全9回で読了し、SwiftUI完全に理解しました。
という冗談はさておき、実際かなりやって良かったです。
これまでなんとなく書いていたSwiftUIの挙動への解像度が1段階上がり、パフォーマンスに配慮したり、不具合を起こしにくい設計をする力になったと感じています。

メモリリークへの対策

REALITYのiOSチームで大きな課題の1つにメモリリークがあります。特にescaping closureでの[weak self]句忘れによるselfの循環参照に気を使っています。
昨年はSwiftLintの正規表現のルールを使った検出手法を導入しましたが、今年はより柔軟な記法に対応できるように、SwiftSyntaxを使ったルールへ移行しました。後述するSwift Macro含めて、SwiftSyntaxを使うコードを自分たちで実装し、開発に活用するのが身近になった1年になりました。

Swift Macroの導入

Xcode 15からデバッグconsoleが改善され、Loggerを使用することでログを発火させたファイル名、対象行、モジュールなどがログとして表示されるようになりした。しかし、REALITY iOSアプリではログ機能がRealityLoggerと言うモジュールに分割されており、出力されるログは全てRealityLoggerを指し示すようになっていました。
そのままでは新しいデバッグconsoleを有効活用できていないのでSwift Macroを使い、ログ関数を展開してLoggerを使ったロギングをコンパイル時に挿入することで、ログ関数を実装したファイル名や対象行、モジュールをコンソールに表示し、コンソールから対象のログ実装箇所へジャンプできるようにしました。

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

ミッション機能

ミッション機能を実装しました。ログインや配信、コラボなどのミッションをクリアすると、コインやガチャチケを獲得できます。最近ではルームの模様替えなど、様々なミッションが追加されています。

電話番号連携

GoogleやX(旧Twitter)に加えて、REALITYに電話番号でログインできるようになりました。

https://reality.app/notice/page/8f5fje2mnjd2?adj_t=u0ogi2k_hlscwn9 

REALITYは日本以外の地域へ公開しているため、E.164へ対応しています。

ランクリニューアル

ランク機能がリニューアルされました。
参加が任意性になるなどの機能の追加されたり、ランク画面がカッコよくなったりしました。
REALITYの活動によって夢を実現したい、その活動を仕事に繋げたいと考えている方の活動をサポートする機能を集めた『クリエイターツール』の第一弾として公開されました。

まとめ

2023年のiOSチームを振り返りました。
社外へのアウトプットや、CocoaPodsの脱却や、モジュール分割の進捗などiOSチームの動向を感じて頂けたでしょうか?
振り返ってみて、自分自身でもチームとして学習や開発環境の改善を継続的に続けれれてよかったなと感じています。
2024年はProduct Designチームと合同のHuman Interface Guidelineの勉強会を計画中です。2024年も引き続き頑張るぞー!