Claudeで本番アプリケーションを構築する:実際に機能したことと機能しなかったこと

長年の経験を持つがFlutter/Dartの知識はゼロのシニアバックエンド開発者が、Claudeを主要な開発ツールとして、iOSとAndroid向けの本番モバイルアプリ「Warantly」(保証管理)を構築しリリースしました。プロジェクトは本業の後の夜間時間を使って2.5ヶ月かかりました。
使用スタック
- フロントエンド: Flutter
- バックエンド: Laravel 12
- インフラ: Ansible(VPS環境全体をコード化し、単一の実行で再現可能)
Claudeの使用方法
開発者はClaudeを、有能だがコンテキストに制限のあるジュニア開発者のように扱いました。複数のセッションを並行して実行し、それぞれを単一の関心事に限定しました:
- 通常は同時に2〜3セッション、ピーク時には6セッション同時(バックエンド3、Flutter2、DevOps1)
git worktreesを使用して、セッションが異なる機能を競合なく作業できるようにしました- 開発者の役割:アーキテクト兼統合レイヤー — セッション間を行き来し、コンテキストを提供し、横断的な決定を行いました
Claudeの得意分野
明確に仕様化されたコンポーネントの高速で有能な初回草案。明確な仕様と範囲が限定されたものは、初回または2回目のパスで使用可能になりました。また、Claudeは開発者を不慣れな領域(ストアコンプライアンス、ペイウォール設定、インフラ構築など)に案内するのにも本当に優れていました。コード生成だけでなく、ガイダンスが必要な領域です。
問題点
1. UIバグ
最も大きな失敗モード。Claudeには画面を見る方法がありません。コードを分析し、修正を行い、「これで解決するはずです」と自信を持って言いますが、実際には解決しません。同じ視覚的バグに対して複数回のやり取りが必要でした。エージェントがUIのあるべき動作を推論する一方、実際の動作を見ることができないためです。回避策:大量のデバッグ文、手動テスト、Claudeに正確なランタイム出力とUIスクリーンショットを提供。フィードバックループ(計測、実行、報告)が視覚的なものの標準パターンとなりました。
2. セッション間の一貫性
バックエンドのエージェントが、Flutterエージェントが期待するものと一致しない応答形式を設計する可能性があります。Claudeは他のセッションで決定されたことを認識しません。開発者がAPIコントラクト、共有定数、命名規則の真実の情報源となり、それらを手動でセッション間でコピーする必要がありました。この手順を省略すると、統合時に不一致が見つかりました。
3. 長時間セッションにおけるコンテキストのずれ
静かに動作している長時間のセッションは、文脈を見失います。既に拒否されたパターンを再導入したり、以前の制約と矛盾したりします。そのことを知らせることはありません。出力は自身の履歴と一貫性を失います。解決策:セッションを集中させ、使い捨て可能に保つ。長くなったら新しく開始する。会話履歴に頼るのではなく、重要なコンテキストを構造化されたブリーフィングとして事前に投入する。
成功の鍵
開発者は初日からテストと静的解析を実施しました。Dart/Flutterのコードを専門家の目でレビューすることはできませんでしたが、自動チェックが品質ゲートとして機能しました。これがなければ、リリースの自信は得られなかったでしょう。「最も難しい部分は技術面ではなく、コントロールを手放すことでした。私は経験豊富な開発者で、コードを一行ずつレビューしなかったのは初めてのプロジェクトでした。プロセス(テスト合格、リンタークリーン、動作正しい)を信頼し、すべての関数を読むことに代えるのは、本当に適応が必要でした。」
アプリ
Warantly — 保証管理。購入品の追跡、レシート写真の保存、期限切れリマインダー、AIレシートスキャン、製品リコールアラート。無料で無制限の保証。ProではAIスキャン、リコールアラート、メンテナンススケジュールを追加。warantly.appで利用可能。
📖 全文ソース: r/ClaudeAI
👀 See Also

シェルに組み込まれたAIエージェント:ターミナルバッファ&オーバーレイ拡張
端末出力を読み取り、フローティングオーバーレイを介してコマンドを入力するAIエージェントを組み込んだオープンソースシェル。ローカルモデルとクラウドモデルに対応。

ビーグルSCM:ASTツリーを保存するソースコード管理システム
Beagleは、バイナリブロブではなく抽象構文木を格納する実験的なソースコード管理システムで、BASONと呼ばれるCRDT風のデータ形式を使用し、RocksDBなどのキーバリュー型データベースをバックエンドストレージとして利用します。

TranscriptionSuite v1.1.2は、WhisperX、NeMo、VibeVoiceモデルを追加しました。
TranscriptionSuite v1.1.2では、WhisperXとPyAnnoteによる話者分離、NeMoモデル(ParakeetとCanary)とPyAnnoteによる話者分離、そしてVibeVoiceモデルと組み込みの話者分離という3つの文字起こしパイプラインを提供しています。このアップデートには、モデルマネージャー、並列処理、ショートカットコントロール、VibeVoice用の24kHz録音パイプラインが含まれています。

MetaBot: オープンソースのブリッジがClaude CodeをTelegram、Feishu、WeChatに接続
MetaBotは、Claude Code Agent SDKをTelegram、Feishu、WeChatなどのメッセージングプラットフォームに接続するオープンソースのTypeScriptブリッジです。永続的なメモリ、スケジュールされたタスク、マルチエージェントコラボレーション、ツール呼び出しのリアルタイムストリーミングを提供します。