【Claude Code 失敗談 #6】非推奨APIを鵜呑みにしてリリースしてしまった話

社員ブログ

※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にコードを生成・修正してもらった後:

  1. Android Studioでそのファイルを開く
  2. 黄色・オレンジの警告マークを確認
  3. 警告箇所をClaude Codeに伝えて修正してもらう
Android Studioで以下の警告が出ています。
現在推奨される方法に書き直してください。

[警告メッセージをそのまま貼り付け]

リリース前チェックに「警告ゼロ確認」を追加

この失敗以降、リリース前のチェックリストに以下を追加しました。

  • [ ] Android StudioのProblemsタブでエラーがゼロ
  • [ ] 黄色の警告(Deprecated警告)がゼロ
  • [ ] ./gradlew lint でlintエラーがゼロ

特に ./gradlew lint はClaude Codeにもお願いできます。

リリース前にlintチェックを実行して、警告・エラーがあれば修正してください。

まとめ

動いているからOK、ではありません。
警告はすべてつぶすを原則にしましょう。
Claude Codeが生成したコードも、Android Studioの目で一度チェックする習慣が大切です。

次回:【Claude Code 失敗談 #7】レビューせずにマージしたらメインスレッドで重い処理が走っていた話

タイトルとURLをコピーしました