開発の裏側

React Native・Expo・AWS・TerraformでつくるAnipalの技術構成

モバイルアプリからバックエンド、インフラ管理まで、Anipalの現在のリポジトリから読み取れる技術構成を紹介します。

7分で読めます
React Native・Expo・AWS・Terraformでつくる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で定義し、アプリと同じレビューフローに載せています。

選定より、更新できる構成へ

技術の名前だけでなく、保護団体と里親希望者の体験を壊さずに変更できることが大切です。テストとインフラ定義をリポジトリに残すことで、その判断をチームで検証できるようにしています。

Anipalで、新しい家族と出会う。

保護犬・保護猫を探し、団体とチャットでお迎えまで進められます。

App Storeではじめる

Anipal Journal編集部