はじめに

初めまして。
「ビズリーチ」の求職者様向けプロダクトでAndroidアプリ開発を担当している小河原です。

私たちのチームでは、2023年7月から2024年6月にかけて、「ビズリーチ」の求職者様向けAndroidアプリの大規模な負債解消プロジェクト、通称「リアーキテクチャ」を推進していました。

このプロジェクトが完了してから約1年が経過した今、グロース開発を続ける中で、私たちはリアーキテクチャによって開発生産性が向上したのを大いに実感しています。本記事では、この大規模プロジェクトの全貌と、1年経って見えてきた新たな課題について、現場のリアルな視点でお話しします。

なぜリアーキテクチャが必要だったのか?

「ビズリーチ」のAndroidアプリが抱えていた5つの技術的課題

リアーキテクチャに着手する以前のAndroidアプリは、長年の機能開発の積み重ねにより、5つの大きな課題を抱えていました。当時のアーキテクチャは、以下の図のような構成でした。

過去のアーキテクチャ図

このアプリではFluxアーキテクチャをベースとしていましたが、その実装に大きな問題を抱えていました。

これらの課題は、日々の機能開発の速度を低下させるだけでなく、品質の担保を困難にし、新しいメンバーのオンボーディングを妨げる要因となっていました。プロダクトを今後も安定して成長させていくためには、これらの技術的負債を抜本的に解消する必要があると判断し、私たちはリアーキテクチャの決断をしました。

私たちのリアーキテクチャ戦略:制約の中で最善を目指す

本プロジェクトでは、グロース開発を一時的に止め、限られた期間とリソースの中で最大の効果を出すことが求められました。そのため、「すべてを完璧に作り直す」のではなく、「プロダクトの継続的な成長を可能にする」状態をゴールと定め、取り組むべき課題に優先順位をつけました。

解決策:アーキテクチャと技術選定

1. Fluxアーキテクチャの再設計:Storeの責務とライフサイクルを見直す

既存アプリの最大の課題は、「複数の画面でStoreが共有されることによる意図せぬ副作用」でした。

この問題を解決するため、私たちはFragmentとStoreの直接的な接続を断ち切る設計に変更しました。

新しい構成では、ViewModelがStoreのデータを購読し、その情報をもとに画面の表示に必要な状態のみをまとめた「UiState」を生成して保持します。Fragmentは、ViewModelが持つそのUiStateだけを監視することで、自身のライフサイクルから外れた不要なデータ更新に影響されなくなりました。

これにより、画面間の状態が分離され、意図しない副作用を防ぐことができます。

2. 今後を見据えたモダンな技術スタックへの刷新

3. コードと画面から現状の振る舞いをドキュメント化

リアーキテクチャと並行し、これまで欠けていた「仕様のドキュメント化」にも着手しました。この作業は、PdM・QA・バックエンドチームの協力のもと、画面の見た目やコードから実際の振る舞いを一つひとつ読み解いて文章化していく地道なものでした。この取り組みを通じて、エンジニアだけでなくプランナーやQA担当者も、仕様を正確に理解できる状態を目指しました。

スコープの明確化:「やらないこと」を決める勇気

プロジェクトを期間内に完遂させるため、私たちは「やらないこと」も明確に定義しました。

スコープ検討・見積もりを行っていたボード。チームで議論を重ね、やること・やらないことを決めていきました。 ※ 文字にボカし加工を施しています

リアーキテクチャから1年、グロース開発で見えてきた成果

リアーキテクチャ完了から1年、継続的なグロース開発を行う中で、私たちは多くの定量・定性的な成果を実感しています。チームメンバーからも、具体的な改善効果を実感する声が多数上がっています。

今後の展望と残された課題

もちろん、このリアーキテクチャがすべてを解決したわけではありません。1年間の運用を経て、新たに取り組むべき課題が見えてきています。

とはいえ、こうした課題を議論できるようになったこと自体、私たちが健全な状態になった証拠です。以前は、技術的負債を抱えながら、時には無理をしながらもプロダクトを成長させていた状態でした。今ではその足枷が外れ、ユーザーに良い体験をより早く届けられるという、本来あるべき開発の状態に立つことができました。

まとめ

この1年間のリアーキテクチャプロジェクトは、単に古くなったコードを新しくする作業ではありませんでした。それは、プロダクト成長とチームの未来への投資であり、いつでも新しい挑戦ができる健全な土台を手に入れるための取り組みでした。
私たちの経験を記したこの記事が、技術的負債という課題に直面している読者の皆さんにとって、何かのヒントになれば幸いです。

私たちビズリーチはDroidKaigi 2025にゴールドスポンサーとして協賛します。 この記事で紹介したようなリアーキテクチャの裏話や、モダンな環境でのAndroidアプリ開発に少しでも興味を持っていただけましたら、ぜひ現地ブースで私たち開発メンバーと直接お話ししましょう!

また、10/8には、DroidKaigi 2025 後夜祭というイベントを開催します。
https://connpass.com/event/367111

Androidチームに興味を持った方はぜひお話しましょう。
皆さんとお会いできるのを楽しみにしています。

小河原 裕介
小河原 裕介

Androidアプリ開発エンジニア。FPSなどのゲームや、スキーが趣味。