スクリーンショットからAI分析を行うアプリ「Relora」の全体設計:iOS MVVMとAWSサーバーレスのハイブリッド戦略
本記事は、チャットのスクリーンショットを投入すると、AIが「相手の心理」「会話の温度感」「返信候補」などを分析するiOSアプリ「Relora(リローラ)」の全体設計を解説している。このアプリは、ローカルOCR処理とクラウドLLM分析を組み合わせたハイブリッドアーキテクチャを採用している。
**【Who/What】**:個人開発者が、恋愛メッセージ分析アプリ「Relora」を設計・実装した。本記事は、そのアプリ全体の技術設計判断(なぜこの構成にしたか)を俯瞰的に解説する。
**【How】**:
1. **プライバシー保護(最重要)**:スクリーンショットの画像データは一度もクラウドに送らない。OCR処理はiPhone上のApple Vision frameworkで完結し、APIに送るのは構造化されたテキストのみ。
2. **iOSクライアント**:SwiftUI、MVVM、SwiftData、Swift Concurrencyを採用。分析プロセスは「OCR(ローカル)→クラウド分析(LLM)→JSONパース」の3段パイプラインで実行され、各工程の所要時間を計測・記録する。
3. **クラウドインフラ**:AWS CDK (TypeScript) を使用し、API Gateway、Lambda、Bedrock、Cognito、DynamoDBで構成されるサーバーレス環境を採用。トラフィックに応じた従量課金制(PAY_PER_REQUEST)を徹底し、コスト効率とスケーラビリティを確保している。
4. **セキュリティ・マネタイズ**:多層防御設計(JWT認証、入力検証、プロンプトインジェクション検出、Guardrails)を実装。また、サブスクリプション検証は、クライアントからの情報ではなく、サーバー側のDynamoDBに記録された状態に基づいて行い、不正利用を防いでいる。
**【Why】**:設計目標として「プライバシー最優先」「グローバル対応」「フリーミアム持続可能」「個人開発スケール」の4点を掲げた結果、このハイブリッドかつ堅牢なアーキテクチャが導き出された。特に、匿名認証やサーバー側での使用量制限(アトミックカウンター)の実装は、個人開発者が直面するセキュリティとビジネスロジックの課題を解決している。
背景
本記事は、個人開発者が「スクリーンショットをAIで分析する」という高度な機能を持つモバイルアプリを開発する際の、技術的な設計思想と実装の工夫を解説している。単なる機能紹介ではなく、プライバシー、セキュリティ、コスト、スケーラビリティといった複数の制約条件を同時に満たすためのアーキテクチャ設計が焦点となっている。
重要用語解説
- ローカルOCR: デバイスのカメラや画像処理機能(Apple Vision frameworkなど)を使い、画像から文字情報を抽出する処理。クラウドにデータを送らずに完結させることで、プライバシーを保護する。
- MVVM: Model-View-ViewModelの略。iOSアプリ開発における設計パターンの一つで、UI(View)とビジネスロジック(ViewModel)を分離し、保守性とテスト容易性を高める構造。
- サーバーレス: AWS LambdaやAPI Gatewayなど、サーバーの管理やスケールを意識する必要がないクラウドコンピューティング形態。トラフィックに応じて自動でリソースが割り当てられ、コスト効率が高い。
今後の影響
本設計は、個人開発者が大規模なサービスレベルのセキュリティ(多層防御、不正防止)と複雑なビジネスロジック(サブスクリプション管理、使用量制限)を、限られたリソース(時間、コスト)で実現するための高度なモデルケースとなる。特に、プライバシーを最優先するAIアプリの設計指針として参考になる。