Claude Codeでファンタジーベースボール分析アプリを構築:法学部生の経験談

2017年にコンピュータサイエンスの学位を取得した海軍退役軍人で法学部生が、卒業以来コードに触れていなかったにもかかわらず、Claude Codeを実装に使用し、すべての製品およびドメインの決定を行いながら、Ball Knowerという完全なファンタジーベースボール分析iOSアプリを構築しました。このアプリはApp Storeで公開されており、法学部の最終学年中に開発されました。
構築されたもの
Ball Knowerは、以下の機能を含むファンタジーベースボール分析アプリです:
- Statcastパーセンタイルバー(Baseball Savantのカラーコード付きバー)を備えた1,313のMLB選手プロファイル
- 0〜100でスコアリングされた毎日のストリーミング投手ピック
- ELOスコアリングを採用したKeep-Trade-Cutダイナスティランキング
- 1,241人のMLB選手 + 72人のFanGraphs有望株
- 選手ごとに87の異なる指標を追跡
技術スタック
フロントエンド: SwiftUI(iOS 17+)、Swift Charts、StoreKit 2
バックエンド: Python 3.12、FastAPI、SQLAlchemy async、PostgreSQL、Redis、APScheduler
インフラストラクチャ: 単一のDigitalOceanドロップレット、Docker
データソース: MLB Stats API、pybaseball経由のBaseball Savant、ESPN RSS、The Odds API、Open-Meteo天気からデータを取得する30のスケジュール済みジョブ
Claude Codeが優れていた点
- FastAPIの依存性注入チェーンを非同期SQLAlchemyセッションに接続し、Redisキャッシュレイヤーに数分で接続(ドキュメントだけでは数日かかるところ)
- サブスクリプション検証フローにおける非同期競合状態をデバッグ(リフレッシュトークンコーディネーターとStoreKit 2リスナーが競合)
- 症状を説明された後、問題を特定し、アクターベースの修正を記述
- 生のコード行の約70%を記述
Claude Codeが不足していた点
- データソース列の85%を正しくマッピングしたが、15%はエラーやクラッシュなしに黙ってnilを返した
- 列名の不一致を見逃した(例:pybaseballはbrl_percentを返すが、データベース列はbarrel_pct)
- 非パーソナライズ広告用のApp Tracking Transparency許可を要求するコードを自信を持って生成し、Appleがビルドを拒否
- コンパイルはするが、エッジケースで誤ってレンダリングされるSwiftUIモディファイアチェーンを生成
- 非推奨のAPIパターンを使用し、非推奨であることを言及せず
開発者の役割
開発者は残りの30%のコードを記述または修正し、以下を含みました:
- スコアリングアルゴリズムの重み
- キャッシュ無効化ロジック
- サブスクリプションフロー
- データ列マッピング
- App Store準拠
- ドメイン固有の決定(ドーム球場には風がない、スプリングトレーニングの統計は同等に重み付けすべきではない、Baseball SavantのパーセンタイルAPIは非資格選手に対してギャップ埋めロジックを必要とする)
開発指標
- 1学期にわたる300時間以上の開発時間
- 毎晩午前2時25分(ET)に開始する30の自動化cronジョブ
- 毎日同期される9つの外部データソース
- 承認前の2回のApp Store拒否(EULAラベリング + 不要なATT許可)
- 損益分岐点:3.99ドル/月の13人のサブスクライバー
📖 Read the full source: r/ClaudeAI
👀 See Also

AI搭載Eコマースストア、午前3時のクラッシュから人手を介さず復旧
AIが運営するEコマースストアが午前3時に未処理の例外を経験し、注文パイプラインが停止しました。システムは自律的に障害を検出し、根本原因を特定、修正を試み、回復を確認し、朝までに通常運営を再開しました。

Claudeをシニアデベロッパーとして活用したジェネレーティブぬりえアプリの開発
中級iOS開発者が、Claudeを使ってエッジケースを発見し、安全対策を実装しながら、子供向けSwiftUIぬりえアプリを構築した経験を詳しく語ります。

Claudeコードエージェントが本番環境でどう連携するか:オーケストレーターの視点から
6つの専門的なClaude Codeエージェント(コーダー、デザイナー、マーケティング、QA、セキュリティ、運用)を運用するチームが、機能、デザイン、ソーシャルコンテンツを毎日自律的にリリースするオーケストレーターシステムについて詳細を説明しています。タスクのディスパッチ、エージェント間の引き継ぎ、障害シナリオ、そして調整においてステートマシンがメッセージキューよりも優れている理由についてカバーしています。

ClaudeとTickTick MCPサーバーを活用した自主学習の体系化
開発者がYouTubeのトランスクリプトからClaudeを使って自習カリキュラムを作成し、ticktick-mcp GitHubリポジトリを介してTickTickに接続し、プロジェクトタスクとカレンダービューを自動生成しました。