0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cluad codeでターミナルで動くTODOアプリを作成した

Last updated at Posted at 2025-06-30

OpenAIからClaudeに乗り換えてTODOアプリ開発に挑戦

目的

最近、OpenAIからClaudeに乗り換えたので、その可能性を探るため、ターミナルで動作するTODOアプリの作成に挑戦しました。

アプローチ

Claude Code(@anthropic-ai/claude-code)を使用してターミナルベースのTODOアプリケーションを開発しました。まず、プロジェクト要件を明確化するためのCLAUDE.mdファイルを作成し、Shell ScriptとRubyの2つのアプローチで実装を試みました。

Claude Codeのインストール

npm install -g @anthropic-ai/claude-code

実装プロセス

第一段階:Shell Script実装

最初のアプローチとして、以下のプロンプトでShell Scriptによる実装を試しました:

CLAUDE.mdの内容に従って、shell scriptを作ってほしい。

実装時間: 約10分

発生した問題:

  1. カレンダー表示の不具合: 何度試行しても正常に表示されない
  2. データ整合性の問題: 生データではプロジェクト番号とIDの区別ができていないが、標準出力では意図した通りに表示される(内部で補正処理が行われている可能性)

データ構造:
CSVファイルでのデータ保存を選択しましたが、機能追加に伴い複雑な構造になりました:

id,project_id,project_name,task_id,task_name,level,priority,status,created_date,completed_date,parent_id

この段階で、データ管理にはstructやclassを使用した方が適切であることが明らかになったため、Ruby実装への切り替えを決定しました。

第二段階:Ruby実装

Ruby版のCLAUDE.mdを新たに作成し、実装を再開しました。

実装時間: 10分未満(実感としてShell Script版作成時間より短い)

結果:

  • 生データと表示に齟齬なし
  • データ整合性の問題解決
  • 追加機能の実装もスムーズ
  • トラブル発生なし

Shell Script版とRuby版の開発効率の差は、データ構造の適切な選択によるものと考えられます。

CLAUDE.mdの自動更新

Ruby版完成後、以下のプロンプトでドキュメントの更新を実行:

ここまでの機能追加、変更を踏まえて、CLAUDE.mdを書き直してください

疑問点: 以下の要件の根拠が不明確。実際のテストやベンチマークは実施されていないため、どのような基準で設定されたのか検証が必要です。

## パフォーマンス要件
- **高速起動**: 1秒以内
- **大量データ対応**: 1000タスク程度
- **レスポンシブ**: インタラクティブ操作感
- **メモリ効率**: 全データメモリ管理でも軽量

実際の運用と調整

手動修正箇所: カレンダー表示の罫線のずれのみ手動で修正

その他のコード: Claude Codeによる自動生成のまま使用

開発統計:

Total cost: $7.00
Total duration (API): 24m 41.3s
Total duration (wall): 18h 42m 9.1s
Total code changes: 1944 lines added, 290 lines removed

Token usage by model:
claude-3-5-haiku: 35.1k input, 2.6k output, 0 cache read, 0 cache write
claude-sonnet: 252 input, 64.9k output, 6.1m cache read, 1.1m cache write

注:wall時間が長いのは、開発途中で就寝したためと思われる。

成果物

GitHub リポジトリ: https://github.com/object-kazu/strange-todoist

strange_todoist.gif

学んだこと

重要な教訓

  1. 早期の方向転換の重要性: Claude Codeが行き詰まった際に、過信せずに要件を見直し、別のアプローチを検討することが重要
  2. 適切な技術選択: データ構造に適した言語・手法の選択が開発効率に大きく影響
  3. 人間の判断力の必要性: AIが生成する要件や仕様についても、批判的に検証する必要がある

開発における時間配分

最も時間を要したのは、生成されたコードと実行結果を分析し、適切なプロンプトを考える作業でした。AIとの協働において、この「プロンプトエンジニアリング」のスキルが重要であることを実感しました。

まとめ

Claude Codeは強力なツールですが、万能ではありません。開発者がAIの出力を適切に評価し、必要に応じて方向転換する判断力が、効率的な開発の鍵となります。今回の経験を通じて、AI支援開発における人間の役割の重要性を再認識しました。

注意点

この記事も、Web版Claudeによって多く加筆訂正されています。特に、「まとめ」は、claudeの意見が8割です。

追記 2025年6月30日

日本語入力周りでエラーが出ます。
近いうちに、テストを追加してデバッグするつもりです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?