ITサービス企業様のWebアプリとモバイルアプリを、React NativeとTypeScriptを用いて共通化するプロジェクトに参画しました。
従来は別々のソースコードで開発されていたものを、React Nativeを軸とした構成へ移行しています。
当社は要件定義、基本設計、Amazon Cognitoによる認証基盤の構築、開発支援、テスト工程を担当しました。
※契約上の都合により、クライアント名およびサービス画面は非公開としています。
プロジェクト概要
- クライアント:ITサービス企業様
- 開発種別:クロスプラットフォームアプリ開発
- 対象:Webアプリ、モバイルアプリ
- 対応範囲:要件定義、基本設計、認証基盤構築、バックエンド開発、開発支援、テスト、管理画面開発
- フロントエンド:React Native、TypeScript
- バックエンド・インフラ:AWS Amplify、AWS Lambda、Amazon DynamoDB
- 認証:Amazon Cognito
- プロジェクト体制:複数社による共同開発
- 開発年:2023年
Webアプリとモバイルアプリのソースコードを共通化
改修前は異なるソースコードで構築されており、同じ機能を追加する場合でも個別に実装・テストが必要でした。これにより開発工数の増加と仕様差異が発生していました。
React NativeとTypeScriptを採用し、プラットフォームごとの違いを考慮しながら、共通化できる機能と個別対応が必要な機能を整理。将来の機能追加や保守を効率化できる設計としています。
複数社で進める開発プロジェクトを支援
複数の開発会社が参加するプロジェクトで、当社は要件定義と設計を担当しながら、システム全体を見て各社が円滑に開発を進められるよう支援しました。仕様、データの流れ、認証の接続方法を整理し、開発会社間の認識ずれを調整しています。テスト工程にも参加し、Webとモバイルアプリの双方で機能と表示に問題がないか確認しました。
Amazon Cognitoによる認証基盤の構築
Amazon Cognitoを採用し、ユーザー認証に関する要件を整理したうえで、アカウント管理やログイン状態を複数プラットフォームから安全に利用できる構成を設計・構築しました。認証基盤を共通化することで、Webとモバイルで一貫したユーザー認証を実現し、仕様ずれと保守負担を軽減しています。
AWS AmplifyとLambdaを組み合わせたAPI連携
バックエンドにはAWS Amplify、AWS Lambda、Amazon DynamoDBを採用しました。Amplifyの一般的な構成では対応が難しい部分があったため、Lambdaを組み合わせた独自の構成を設計しています。
各機能と外部サービスのAPI連携を集約し、アプリ側から共通して利用できるAPIハブとして機能させることで、Webとモバイルが個別にバックエンド接続処理を持つのではなく、共通経路でデータを利用できる構成となりました。
プロジェクト後半に管理画面を1週間で構築
プロジェクト終盤に、サービス運営者向けの管理画面が新たに必要となりました。公開までの時間と予算に制約がある状況でしたが、必要機能の優先順位付けと初期リリース機能への範囲の絞り込みにより、当社が約1週間で構築しています。限られた条件下での対応について、クライアントから高い評価をいただきました。
クロスプラットフォーム化による保守性の向上
ソースコードの共通化により、同じ機能を複数回実装する負担を軽減しました。仕様変更を共通コードへ反映でき、各プラットフォーム間での機能差異のリスクも低減されています。フロントエンド、認証基盤、API連携の共通化により、アプリケーション全体を継続的に保守・拡張しやすい構成としました。