開発の裏側
React Native・Expo・AWS・TerraformでつくるAnipalの技術構成
モバイルアプリからバックエンド、インフラ管理まで、Anipalの現在のリポジトリから読み取れる技術構成を紹介します。
一つのリポジトリで、出会いから運営まで支える
Anipalのリポジリは、front/、back/、infra/、dashboard/ に大きく分かれています。ユーザーが使うアプリと、保護団体の運用、それらを支えるAWSリソースを同じ変更履歴の中で管理できる構成です。
React NativeとExpoでモバイル体験を一貫させる
front/package.json ではReact NativeとExpoを中心に、Expo Router、AWS Amplify、Jestなどを組み合わせています。画面だけでなく、認証、画像、通知といったモバイル特有の関心事を同じTypeScriptのコードベースで扱います。
front/ React Native / Expo
back/ AWS Lambda
infra/ Terraform
dashboard/ 運営向けポータルLambdaを機能ごとに分ける
back/functions/ には応募、チャット、健康記録、通知などのLambda関数が配置されています。後方互換性を保ちながら、必要な機能を独立してテスト・デプロイしやすい単位にしています。
Terraformで環境差分をコードにする
infra/envs/dev/ と infra/envs/prd/ から共通モジュールを呼び出します。静的サイトもS3、CloudFront、Route 53、ACMをTerraformで定義し、アプリと同じレビューフローに載せています。
選定より、更新できる構成へ
技術の名前だけでなく、保護団体と里親希望者の体験を壊さずに変更できることが大切です。テストとインフラ定義をリポジトリに残すことで、その判断をチームで検証できるようにしています。
Xでシェアする