#2 Android エンジニア転職を目指す 【ひよっこにClaude Codeは早かった】
【学び】Claude CodeでAndroid開発を始めようとして挫折した - 初心者には対話型が最適だった
はじめに
前回の記事で学割アプリの開発をスタートすると宣言しましたが、早速大きな方針転換をすることになりました。
今回は、Claude CodeとGitHub Actionsを使った自動化開発に挑戦して挫折し、Claudeとの対話型開発に切り替えたことについて共有します。
当初の開発戦略
やろうとしていたこと
「Claude Code + GitHub Actions で自動化開発」
- 要件定義をClaude Codeに渡す
- 仮のアプリを全自動で生成してもらう
- GitHub Actionsでビルド・テストを自動化
- 生成されたベースに機能を追加していく
なぜこの方法を選んだのか
- 効率性重視: 手作業を最小限にしたかった
- 現代的な開発手法: AI×自動化が最先端だと思った
- 時間短縮: 短い期間での開発
- 学習効果: 最新ツールの習得も兼ねたかった
実際に起こったこと
Claude Codeでの自動生成
要件定義書を渡してClaude Codeに学わりんのベースを作ってもらいました。
生成されたもの:
内容は確認できていないが
- 一見すると非常に高品質なコード
期待していた結果:
「このままAndroid Studioで動かせば完璧なアプリの土台ができる!」
現実は甘くなかった
Android Studioでプロジェクトを開いた瞬間からビルドエラーの嵐が発生しました。
エラーの連鎖:
- バージョン不整合: Gradle Plugin、SDK、ライブラリのバージョンが合わない
- 依存関係地獄: 一つ修正すると別のエラーが出現
- 設定ファイルの問題: 生成されたbuild.gradleが環境に合わない
- パッケージ名の不整合: 複数箇所での命名ミス
修正の試み
修正を試みたが...
- Android Gradle Plugin の更新
- Compile SDK の変更
- kotlin kaptの修正
結果:
修正しても次のエラー、また修正しても別のエラー...の無限ループ
最終的に新規プロジェクト作成で解決しましたが、自動生成のメリットは完全に失われました。
問題の本質を分析
なぜうまくいかなかったのか?
1. 環境差異の問題
- Claude Codeは「理想的な環境」でコードを生成
- 実際の開発環境は千差万別
- バージョンの組み合わせは無数に存在
2. 初心者には複雑すぎる
- エラーの原因を特定する知識がない
- どこをどう修正すべきかわからない
- Android開発の「お作法」を理解していない
3. ブラックボックス問題
- 生成されたコードの意図が理解できない
- なぜこの設定なのかわからない
- 修正の影響範囲が予測できない
4. 学習効果の低さ
- 完成品をもらっても理解が深まらない
- 自分で書いていないコードは愛着も湧かない
- トラブル対応力が身につかない
方針転換:対話型開発へ
新しいアプローチ
「Claudeとの対話で一歩ずつ理解しながら開発」
具体的な変更点
Before(自動化重視):
要件定義 → Claude Code → 完成コード → エラー地獄
After(理解重視):
要件相談 → Claude対話 → 段階的実装 → 理解しながら学習
実際の対話例
私: 「メイン画面を作りたいんですが、どんな構成にすべきでしょうか?」
Claude: 「要件定義を見ると、こういう要素が必要ですね。まずは基本レイアウトから作りましょう」
私: 「このエラーが出ているんですが...」
Claude: 「これはバージョン不整合ですね。この部分をこう修正してください」
メリットを実感
1. 段階的理解
- 一つ一つの機能を理解しながら実装
- エラーが出ても原因を特定しやすい
- 自分で書いたコードなので愛着が湧く
2. 実践的学習
- Android開発の基本が身につく
- トラブルシューティング力が向上
- 「なぜそうするのか」を理解できる
3. 適度なサポート
- 困った時はすぐに相談できる
- コードレビューもしてもらえる
- ベストプラクティスを教えてもらえる
4. 転職に活かせる
- 「一から作れる」アピールができる
- 問題解決能力を示せる
- 学習意欲の高さを証明できる
学んだこと
1. ツールには適切な使い方がある
- Claude Codeは「万能ツール」ではない
- 初心者には対話型Claudeの方が効果的
- 段階的学習が結果的に効率的
2. AI活用の本質
- AIに「丸投げ」するのではない
- AIと「協力」して開発する
- 理解しながら進むことが重要
3. 失敗も貴重な経験
- エラー解決の経験は財産
- 方針転換の判断力も重要
- 柔軟性を持って開発に臨む
4. 転職活動への活かし方
- 「問題解決能力」のアピール材料
- 「学習意欲」の具体例
- 「適応力」の証明
さいごに
「最新ツールを使えば楽になる」という思い込みで始めた自動化開発でしたが、初心者には対話型の方が適していることがわかりました。
重要なのは「ツールに使われる」のではなく「ツールを使いこなす」ことでした。
Claude Codeも素晴らしいツールですが、適切な場面で使ってこそ威力を発揮します。今回の経験で、自分のレベルに合った開発手法を選ぶことの大切さを学びました。
Discussion