見出し画像

開発設定用のアプリを作った話

REALITYの開発時の設定専用アプリ「REALITY-CONFIG」を作りました!

これまでのREALITYでは、開発中にアプリの設定を変更したい場合、開発用のコードをコミットし、毎度アプリをビルドし直さなければいけないという問題がありました。
これらの問題を解決するために、アプリのビルド後に柔軟に設定を変更させる事ができる「REALITY-CONFIG」が生まれました。

画像1

このアプリは、開発効率向上のための改善やリファクタリングなどエンジニアが1週間やりたいことをやる改善weekの時間を使って開発しました。
改善weekの詳細や、エンジニアの働き方についてはこちらの記事で詳しく紹介しています。

REALITY-CONFIGとは?

REALITY-CONFIGアプリを使うとREALITYアプリのデバッグ設定を変更できます。

設定専用アプリを用意する場合、設定の度に他のアプリに切り替える必要があるなどデメリットがあります。
しかし、REALITYアプリ本体にUIを組み込む必要がなくなるメリットを重要視し、設定専用の新規アプリの開発することにしました。

こちらが今回開発したREALITY-CONFIGアプリの画面です。

スクリーンショット 2021-08-25 21.32.06

設定項目の第1弾として、APIリクエストの向き先ドメインのURLを変更する機能を実装しました。
APIリクエストの向き先ドメインのURLを変更すると、REALITYアプリ起動時に設定された値が読み込まれ、APIリクエスト時のURLのベース部分として設定されます。

この設定項目を活用することで、例えば、機能の開発中のサーバや、ローカルPCに立てたサーバに、APIリクエスト先を変更させることが可能です。

REALITY-CONFIGの仕組み

REALITYアプリと、REALITY-CONFIGアプリ間のデータの受け渡しにはUserDefaultsを利用しています。
2つのアプリに同じApp Groupsを設定することで、2つのアプリ間でUserDefaultsを使ってデータを共有することができます。

REALITYでは、REALITYアプリとREALITY-CONFIGアプリで共通にembedするAppConfiguration.frameworkを実装し、keyやモデルを共通化しました。

画像3

さいごに

REALITYアプリの開発時の設定専用アプリ「REALITY-CONFIG」を作った話でした。
REALITY-CONFIGアプリはフルSwiftUIで実装しました。
REALITYアプリには既存部分がUIKitで実装されていたり、挙動が複雑なため1部しかSwiftUIを導入できていないので、たくさんSwiftUIを書けて楽しかったです。

もし、一緒にREALITYを開発したり、開発効率を向上させることに興味のあるエンジニアの方がいらっしゃいましたら、下記のリンクからお気軽に話を聞きに来て頂けると嬉しいです。

REALITYエンジニアカジュアル面談お申し込みフォームはこちら!