エンジニアのkatoです! 今回は、Androidエンジニアのスージと一緒に、Goodpatchの受付アプリをフルスクラッチでリプレースした話をしようと思います!
前提
Goodpatchのオフィス入り口では、iPad端末で受け付けできるようになっています。 これは有志のiOSエンジニアが開発したもので、私が入社するよりも前、約7年前から運用されているようです。 今回、このアプリをリプレースしました。
なぜリプレースしたか、現状の課題点
最新の環境でビルドできない状態でした。
- 使っているライブラリの開発が停止している
- Storyboardを最新のXcodeで開くとクラッシュする
- Bitrise上ではビルドできているが、macOSもXcodeもバージョンが古すぎて再現不可能
つまり、iPadが壊れたら終わる状況でした。 今は動いていますが綱渡りの状態、このままではまずいと思い、対策を考えました。
選択肢を考える
- 今のiPadが壊れないことを祈る😇
- 今のアプリをアップデートする
- フルスクラッチで開発する
- SaaSの受付アプリを導入する
小規模なアプリなので、今のアプリをアップデートするよりもフルスクラッチで開発してしまったほうが楽そうです。SaaSアプリも検討しましたが、組織のフェーズやメンバーの空き状況・他課題との優先順位等の状況により、今回は難しそうでした。
来客への顔となる部分でもあるのでデザインにはこだわりたいという思いもあり、フルスクラッチで作り直すことにしました。
開発方針を考える
受付アプリのメインユーザーである管理部と人事部にヒアリングをし、現状アプリの課題を洗い出しました。 しかし、今回はアプリ側しかリソースが空いていないため、サーバーサイドも含めた大きな改修はできません。 機能やデザインはブラッシュアップに留め、内部的な改善を重視する方針を定めました。
また、技術面の課題に対しても解決策を考えながら、開発方針を決めました。
- ライブラリの開発が停止している
- シンプルなアプリなのでライブラリを使わない
- メンテナンスできていない
- Goodpatchはクライアントワークがメインの会社なので受付アプリに安定して工数を取るのが難しい。なるべくメンテナンスしなくても動き続けられるようにモダンな技術・設計を使う
- Storyboardが開けない
- FullSwiftUIで実装する
- サーバーも負債が溜まっているという話を聞いていた
- 今後サーバーのアップデートに対応しやすいように、SPMを使って通信箇所の実装を切り離す
作った
作りました。 実際に手を動かしたのは、片手間で1週間ぐらいです。 こんな設計です。
置き換える
現在の受け付け端末を調べたところ、初代 iPad Air を使っており、最新のOSが入らない状態でした。 9.7inchサイズのケースを使っていたため、同じ9.7inchで最新OSが入る 初代 iPad Pro 9.7inch を購入し、端末ごと置き換えました。 社内用のドキュメントも更新して作業終了です!
9.7inchのiPadは古いものしかないので、次回の置き換えではケースも交換する必要がありそうですね。
おつかれさまでした
総務, 情シス, エンジニアの皆さんに協力いただきながら進めました。ありがとうございました。 すべての作業が完了した日の夜、私は焼き肉を食べました。
最後に
組織のフェーズや会社の状態によってベストな選択肢は変わると思います。 今までの受付アプリは長年役目を果たし、ベストなタイミングで置き換えができたと思っています。 前アプリを作ってくれたエンジニアの方、ありがとうございました!
もしオフィスに訪問する機会があったら、みなさん触ってみてください!