※Claude Codeを使用して記事を作成しています。
シリーズ:Claude Codeを使ったAndroidアプリ開発 失敗談
- #1〜5:指示まわり・ライブラリの失敗
- #6:非推奨APIを鵜呑みにしてリリースしてしまった話 ← 今回
はじめに
#5でライブラリのバージョン問題を取り上げましたが、今回はさらに深刻な話です。
古いバージョンのAPIを使ったコードをリリースしてしまい、将来動かなくなる地雷を埋め込んでしまった失敗です。
やらかしたこと
通知機能を実装するためにClaude Codeに指示しました。
生成されたコードをそのまま使い、動作確認も問題なかったためリリースしました。
数週間後、Android Studioでプロジェクトを開くと黄色い警告が大量に出ていました。
'NotificationCompat.Builder(Context!, String!)' is deprecated.
Use NotificationCompat.Builder(android.content.Context, java.lang.String)
さらに確認すると、他にも:
'startForeground(Int, Notification!)' is deprecated since API level 33
'registerReceiver(BroadcastReceiver?, IntentFilter!)' is deprecated since API level 33
すでにリリース済みのアプリに非推奨APIが含まれていました。
なぜこうなったのか
#5と同じ根本原因です。
Claude Codeの学習データの締め切り以降にdeprecatedになったAPIを、現役のAPIとして教えてくれることがあります。
コードは動きます。
動くから気づきにくい。
でも非推奨APIはいつか削除されます。
OSのメジャーアップデートで突然動かなくなるリスクを抱えたままリリースしてしまったわけです。
どう対処したか
Android Studioの警告を必ず確認する習慣をつけました。
Claude Codeにコードを生成・修正してもらった後:
- Android Studioでそのファイルを開く
- 黄色・オレンジの警告マークを確認
- 警告箇所をClaude Codeに伝えて修正してもらう
Android Studioで以下の警告が出ています。
現在推奨される方法に書き直してください。
[警告メッセージをそのまま貼り付け]
リリース前チェックに「警告ゼロ確認」を追加
この失敗以降、リリース前のチェックリストに以下を追加しました。
- [ ] Android StudioのProblemsタブでエラーがゼロ
- [ ] 黄色の警告(Deprecated警告)がゼロ
- [ ]
./gradlew lintでlintエラーがゼロ
特に ./gradlew lint はClaude Codeにもお願いできます。
リリース前にlintチェックを実行して、警告・エラーがあれば修正してください。
まとめ
動いているからOK、ではありません。
警告はすべてつぶすを原則にしましょう。
Claude Codeが生成したコードも、Android Studioの目で一度チェックする習慣が大切です。
次回:【Claude Code 失敗談 #7】レビューせずにマージしたらメインスレッドで重い処理が走っていた話

