このプロジェクトは React Native/Expo で構築されています。
- ローカル開発:
frontend
ディレクトリでnpm run dev
を実行することで開発サーバーを起動できます。 - Docker 環境: 現在 Docker 環境での実行は問題が発生しており、正常に動作していません。詳細は
environment/DOCKER-README.md
の「既知の問題」セクションを参照してください。
-
frontend
ディレクトリに移動しますcd frontend
-
依存関係をインストールします
npm install
-
開発サーバーを起動します
npm run dev
-
表示されるQRコードをスマートフォンのExpo Goアプリでスキャンするか、ブラウザで http://localhost:8081 にアクセスしてWebバージョンを確認できます。
このプロジェクトでは、React Native/Expoを使用したモバイルアプリで顔認識機能を実装しています。
顔認識機能は以下の用途に使用されています:
- 画像内の人物を検出し、メールアドレスを自動的に識別
- 新規予約投稿作成時の共有先(メールアドレス)の自動提案
- フレームワーク: React Native + Expo
- 状態管理: Reactフック(useState, useEffect)
- ナビゲーション: Expo Router
- UI/UXコンポーネント:
- React Nativeコアコンポーネント
- Lucide React Nativeアイコン
- React Native Reanimated(アニメーション)
- 顔認識API: AWS上に構築されたRESTful API
- エンドポイント:
https://62az2hs957.execute-api.ap-northeast-1.amazonaws.com/prod/search
- 認証: API Key
- エンドポイント:
- データ処理:
- Base64エンコードされた画像データをAPIに送信
- 検出された顔情報とメールアドレスを受信
-
FaceRecognitionSimpleScreen:
- 顔認識のためのUI
- カメラやギャラリーからの画像取得
- 認識結果の表示と処理
-
APIサービス関数:
recognizeFacesFromImage
: 画像データからの顔認識処理getSuggestedEmails
: 認識された顔からメールアドレスを抽出getFaceCoordinates
: 顔の座標情報を抽出
-
CreateScheduledPostScreen:
- 新規予約投稿作成フロー内で顔認識結果を利用
- 認識された人物のメールアドレスを共有先として提案
- ユーザーが画像を選択またはカメラで撮影
- 画像はBase64にエンコードされてAPIに送信
- APIは画像内の顔を検出し、類似する顔とメールアドレスを返却
- フロントエンドでは結果を処理し、UI上に表示
- 検出された顔情報は、投稿作成フローに引き継がれる
- 顔認識精度の向上
- オフライン対応の追加
- プライバシーとセキュリティの強化
- パフォーマンス最適化
Guild_44
├── frontend/ # フロントエンドアプリケーション (React Native/Expo)
│ ├── app/ # Expoルーター用の画面コンポーネント
│ │ ├── (tabs)/ # タブナビゲーション画面
│ │ │ ├── index.tsx # ホーム画面
│ │ │ ├── notifications.tsx # 通知画面
│ │ │ ├── scheduled.tsx # 予約投稿一覧画面
│ │ │ ├── search.tsx # 検索画面
│ │ │ └── _layout.tsx # タブレイアウト設定
│ │ ├── create-scheduled-post.tsx # 新規予約投稿作成画面
│ │ ├── face-recognition-simple.tsx # 顔認識画面
│ │ ├── photo-editor.tsx # 写真編集画面
│ │ └── ... # その他の画面
│ ├── utils/ # ユーティリティ関数
│ │ └── apiService.ts # API呼び出し関数
│ ├── assets/ # 画像などの静的アセット
│ └── ... # その他のフロントエンド関連ファイル
│
├── backend/ # バックエンドサービス
│ └── ... # バックエンド関連ファイル
│
├── environment/ # 環境設定ファイル
│ └── ... # Docker関連ファイルなど
│
└── ... # その他のプロジェクトファイル
- 投稿管理: 投稿の作成、予約、編集、削除
- 顔認識: 画像内の顔を検出し、関連するユーザーを自動識別
- スタンプ機能: 認識した顔に自動的にスタンプを貼り付け
- 予約投稿: 投稿日時をカレンダーから選択して予約設定
- 共有管理: 検出された人物への自動共有機能