121 lines
2.9 KiB
Markdown
121 lines
2.9 KiB
Markdown
# ai.card iOS App
|
||
|
||
atprotoベースのカードゲーム「ai.card」のiOSアプリです。
|
||
|
||
## 特徴
|
||
|
||
- **atproto統合**: 分散型認証とデータ主権
|
||
- **リッチなアニメーション**: ガチャの迫力ある演出
|
||
- **カードコレクション**: 美しいカード表示とフィルタリング
|
||
- **ユニークカードシステム**: 世界で一人だけが所有できるカード
|
||
|
||
## アーキテクチャ
|
||
|
||
### MVVM + Combine
|
||
|
||
```
|
||
Views/
|
||
├── LoginView # atprotoログイン
|
||
├── GachaView # ガチャ画面
|
||
├── CollectionView # コレクション画面
|
||
├── ProfileView # プロフィール画面
|
||
├── CardView # カード表示コンポーネント
|
||
└── GachaAnimationView # ガチャアニメーション
|
||
|
||
Services/
|
||
├── APIClient # REST API通信
|
||
├── AuthManager # 認証管理
|
||
└── CardManager # カード管理
|
||
|
||
Models/
|
||
├── Card # カードデータモデル
|
||
└── User # ユーザーデータモデル
|
||
```
|
||
|
||
### 技術スタック
|
||
|
||
- **UI**: SwiftUI
|
||
- **データフロー**: Combine
|
||
- **ネットワーク**: URLSession
|
||
- **認証**: atproto (JWT)
|
||
- **最小対応OS**: iOS 16.0
|
||
|
||
## セットアップ
|
||
|
||
### 1. Xcodeプロジェクトを開く
|
||
|
||
```bash
|
||
cd ios/AiCard
|
||
open AiCard.xcodeproj
|
||
```
|
||
|
||
### 2. API設定
|
||
|
||
開発環境では自動的に `localhost:8000` に接続します。
|
||
本番環境では `api.card.syui.ai` に接続します。
|
||
|
||
### 3. ビルド & 実行
|
||
|
||
- シミュレーターまたは実機でビルド
|
||
- atprotoアカウントでログイン
|
||
- ガチャを引いてカードを集める
|
||
|
||
## 主要機能
|
||
|
||
### 認証
|
||
|
||
- atproto DIDベース認証
|
||
- アプリパスワード使用
|
||
- 自動セッション管理
|
||
|
||
### ガチャシステム
|
||
|
||
- 通常ガチャ(無料)
|
||
- プレミアムガチャ(確率アップ)
|
||
- レアリティ別アニメーション
|
||
- ユニークカード対応
|
||
|
||
### カードコレクション
|
||
|
||
- グリッド表示
|
||
- 検索機能
|
||
- レアリティフィルタ
|
||
- 詳細表示
|
||
|
||
### プロフィール
|
||
|
||
- ユーザー情報表示
|
||
- コレクション統計
|
||
- データ同期機能
|
||
|
||
## カードシステム
|
||
|
||
### レアリティ
|
||
|
||
- **ノーマル**: 基本カード
|
||
- **レア**: 少し珍しいカード
|
||
- **スーパーレア**: とても珍しいカード
|
||
- **キラ**: 光る演出付きカード(0.1%)
|
||
- **ユニーク**: 世界で一人だけ(0.0001%)
|
||
|
||
### 視覚効果
|
||
|
||
- レアリティ別グラデーション
|
||
- キラカードのスパークル効果
|
||
- ユニークカードのオーラ効果
|
||
- 3Dフリップアニメーション
|
||
|
||
## 今後の実装予定
|
||
|
||
- [ ] Push通知
|
||
- [ ] カード交換機能
|
||
- [ ] AI.verse連携
|
||
- [ ] ダークモード対応
|
||
- [ ] iPad最適化
|
||
- [ ] ウィジェット対応
|
||
|
||
## 注意事項
|
||
|
||
- iOS 16.0以上が必要
|
||
- atprotoアカウントが必要
|
||
- インターネット接続が必要 |