ChatGPTにスマホアプリを作ってもらおうとして一苦労だった話

# ChatGPTにスマホアプリを作ってもらおうとして一苦労だった話
## モチベーション
物忘れが激しい自分のために、「ウィジェットで定例/非定例のタスクをチェックできる」「タスク前に通知してくれる」Androidアプリが欲しかった。
似たようなものを探すが、両方満たすものはなかなかなく、日曜プログラミングで自作することに。

## 進め方
当方、モバイルアプリ開発経験ゼロなので、ChatGPT(課金済み)にサポート（丸投げ）して作ってもらうことに

## ChatGPTへ丸投げ
```プロンプト
以下の要件のアプリを個人開発で作成します。
それまでにやることを具体的に抜けなく漏れなく教えてください
たとえば、アプリ名やコードなどもなるべく具体的に記載してください

要件
・Andoroidのウィジェットとしてホーム画面に表示
・アプリでチェックリスト（時間とタスク名）を管理
・その日のチェックリストを表示
・チェックしないまま時間を過ぎたら通知
・翌日になったらチェックをリセットして再表示
```
### 狙い
・とにかくコピペで済ませたい

### 回答
![](https://storage.googleapis.com/zenn-user-upload/ab4f89cb6720-20241006.png)

いけそうやん。
しかし、当方のPCは初期状態、Javaとか必要でしょうということで追加のプロンプト

### 追加
```
javaのインストールやgradleのインストールが省略されています
手順は省略せずに抜けなく漏れなく具体的にすべて記載してください
```

### 回答（再）
![](https://storage.googleapis.com/zenn-user-upload/4df812841626-20241006.png)
![](https://storage.googleapis.com/zenn-user-upload/a1610e95a416-20241006.png)
![](https://storage.googleapis.com/zenn-user-upload/74ac542a8b54-20241006.png)
![](https://storage.googleapis.com/zenn-user-upload/9e284ae0088a-20241006.png)

なんかそれっぽい感じですね

## いわれたとおりにやってみた
せっせと言われるがままに手順をこなしつつソースはすべてコピペ
意気揚々とビルドして動かそうとするが、ウィジェットが表示されない
![](https://storage.googleapis.com/zenn-user-upload/a20c1f3c2765-20241006.png)

よく見るとビルドエラーが大量に発生している

### エラー対応を頼んでみる
```
PS C:\Users\AndroidStudioProjects\HabitTrackerWidget> gradle wrapper --gradle-version=8.6
gradle : 用語 'gradle' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正
しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ gradle wrapper --gradle-version=8.6
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (gradle:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
```

回答
```
gradle コマンドが認識されないというエラーメッセージが表示されています。これは、Gradleがシステムにインストールされていないか、環境変数が正しく設定されていない可能性があります。以下の手順でGradleを設定し、プロジェクトのGradle Wrapperを作成する方法を説明します。

手順 1: Gradleのインストール
Gradleを手動でインストール:

Gradleの公式サイトからGradleをダウンロードします。最新のバージョン（または必要なバージョン）を選択してZIPファイルをダウンロードします。
ZIPファイルの解凍:

ダウンロードしたZIPファイルを解凍し、適当な場所（例: C:\Gradle）に保存します。
環境変数の設定:

「Windowsの設定」 > 「システム」 > 「バージョン情報」 > 「システムの詳細設定」 > 「環境変数」を開きます。
新しい環境変数を追加します。
変数名: GRADLE_HOME
変数値: 解凍したGradleのパス（例: C:\Gradle\gradle-8.6）
さらに、Path環境変数に次の値を追加します:
%GRADLE_HOME%\bin
コマンドプロンプトを再起動:

変更を適用するためにコマンドプロンプトを再起動します。
Gradleのインストールを確認:

コマンドプロンプトを開き、次のコマンドを実行してGradleが正しくインストールされたか確認します。
bash
コードをコピーする
gradle -v
正常にインストールされている場合、Gradleのバージョン情報が表示されます。

手順 2: Gradle Wrapperの作成
プロジェクトのルートディレクトリに移動:

コマンドプロンプトでプロジェクトのルートディレクトリに移動します。
bash
コードをコピーする
cd C:\Users\AndroidStudioProjects\HabitTrackerWidget
Gradle Wrapperを作成:

次のコマンドを実行してGradle Wrapperを作成します。
bash
コードをコピーする
gradle wrapper --gradle-version=8.6
手順 3: プロジェクトのビルド
プロジェクトのビルド:

Android Studioを開いて、プロジェクトをビルドします。
エミュレーターまたはデバイスで実行:

エミュレーターまたは実際のデバイスを接続し、アプリを実行します。
これで、GradleをインストールしてプロジェクトのGradle Wrapperを作成し、ビルドを行う準備が整いました。もし問題が発生した場合は、さらに詳細なエラーメッセージを共有してください。
```

## エラー対応を進めてみた
言われたとおりにやり直すと、別の個所でエラー
エラー文言と該当箇所のソースをChatGPTに張り付け続ける
都度都度ちょっとずつ修正されるので、直ってるのかなと思いながら何回も続けていった

しかし、途中からソースを修正してくださいと言いつつ、こちらが張り付けたソースと同じものを返すように

## その後
ChatGPTに丸投げするのを断念。「Android ウィジェット」で調べてヒットした以下ページがヒット
https://zenn.dev/cou_kamiya/articles/2b9efd030c4e82

ページの手順の通りやってみたが、またもエラーが出て進まなくなる。
※上記ブログ中に「エラーは無視する」と合った部分のエラーが最後まで出続けた形

## さらにその後
よく考えたら統合Android開発環境のウィジェット作成機能があるのでは？と思い調べると
やはり自動生成機能がある様子。
いったん、「自動生成→ビルド→確認」→「修正→ビルド→確認」でAndroidアプリが動く状態を維持したまま機能を追加していく方針に
やはり動くアプリケーションこそ正義

https://zenn.dev/yydevelop/articles/82a42a3f3b8c6e

## 結論
ChatGPTには丸投げせずに、アドバイス程度にとどめるのが吉