STORES Product Blog

こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。

入社後半年が経ったので振り返ってみる

はじめに

STORES レジ でアプリ開発をしている@nekowenです。
自分は2023年6月にSTORESに入社し、早いものでもう半年が経ちました。
入社当初から毎日あたらしい知見にたくさん触れることができ、楽しく仕事ができています。

年の瀬で良いタイミングでもありますので、この記事では自分が入社してから今までレジチーム内でやってきたことを振り返ってみます。

Renovateの導入

レジではKingfisherやSwiftLintといったライブラリ・ツールを利用していますが、定期的にアップデートする仕組みがありませんでした。

ライブラリ・ツールは入れたらおしまいではなく、アップデートの追従が必要です。
利用するライブラリの規模やリリース頻度にもよりますが、更新期間を長く空けるとその分ライブラリ側のバージョンも大きく進み、メジャーアップデートでマイグレーション対応が必要になるケースもあります。
事前にこまめにアップデートしておくことで、急に最新のバージョンにアップデートする必要があったとしても予想外の対応リスクを減らしてアップデートを進めることができます。

そこでレジではRenovateを導入しアップデートPRが自動で作られるようにしました。 PRのレビュアもメンバーに対してランダムアサインを採用しているため、メンバー全員がRenovateのPRに対してどのように対応するか認識を揃えておく必要があります。
どのようにレビューするか、アップデートの影響が大きい場合の対応方法や、いつまでにレビューすべきかといった運用ガイドラインの叩き台を作りメンバー全員がRenovateのPRを見られるようにしました。

ガイドラインの一部

リリースフローの見直し

レジではエンジニアがリリース作業を持ち回り制で行っています。

リリース作業ではブランチのマージやAppStore Connectで審査の提出といった細かい作業がありますが、ある程度自動化できそうな部分や久しぶりにリリース作業をやってみた結果抜け漏れが発生してしまう、という課題がありました。
そこでリリースフロー全体を見直し、自動化できそうな部分をGitHub Actionsを使って置き換え、作業工程そのものを減らす取り組みを行いました。

より詳しい背景や具体的にどういったことをやったのかについてはこちらの記事で解説しています。ぜひご覧ください。

product.st.inc

ローカルDBのリプレイス

レジでは長らくRealmを利用していましたが、SQLiteベースのGRDB.swiftへリプレイスしました。

元々バージョンアップでトラブルが発生したり、ビルド時間の増大といった観点からRealmの利用自体は減らしていたのですが、移行先そのものが決まっていないという状態でした。
また新機能の開発を予定している中で、データフローの面から今後ローカルDBをうまく活用していきたいという話がチーム内でありました。

まずはRealmのリプレイスを進めていくことになり、移行先のモバイルデータベースは何が良いかを相談したところGRDB.swiftが第一候補として挙がりました。
とはいえ実際に導入が難しかったり扱いづらくないか不安な部分があったので、事前に検証をした上で問題ないことがわかったためリプレイスまで一気に進めました。

詳しくはこちらの記事で解説していますのでぜひご覧ください。

product.st.inc

カンファレンス参加

STORES はiOSDC Japan 2023, DroidKaigi 2023ともにスポンサーとして協賛しました。

ブースも出していて、自分含め多くのエンジニアが参加しました。
ブースでは弊社が提供しているSTORES のiOS/Androidアプリのデモをしたり、いっしょにランチを食べる会でわいわいと技術談義したり楽しかったです。
今年はiOSDCのプロポーザルを出せなかったので、来年こそは何かしらプロポーザルを出したいですね

product.st.inc

product.st.inc

おわりに

ざっとレジチーム内でやってきたことを挙げてみました。
今年は2つカンファレンスに参加して様々なエンジニアの方と交流できたり、STORESのエンジニアとしての知見を広げることができたりととても充実した1年でした。
まだまだSTORESでやっていきたいことが山ほどあるので来年も引き続きがんばります。