3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Qiita史上最多記録をつくろう!アウトプットはいいぞカレンダーAdvent Calendar 2022

Day 15

アプリ開発初心者はchatGPTを使ってAndroidアプリを作れるのか?

Last updated at Posted at 2022-12-19

この記事は、Advent Calendar 2022に投稿する記事になります。
(公開が遅れていますが...)

私は普段、Unityを使ったゲーム開発を主にしているのですが、ここ最近chatGPTという対話形式のAIがTwitterなどで流行しており、私もchatGPTでどんなことができるのだろう と日々試行錯誤しています。
そんな中Qiitaで今話題のChatGPTと一緒にAndroidアプリを作ろう!という記事に出会いました。

私は、Unityで簡単なAndrid向けゲームは作ったことがありますが、Andorid向けのアプリ開発などはしたことがないです。過去に「こういうアプリあったら便利なのに」と思ったことはあったものの、専門外という事もあって、手を出さずじまいだったのです。

という事で、この機にchatGPTに教えてもらいながら初めてのAndroidアプリケーションを開発してみようと思い立ったのです!

最初に

この記事は私のようなAndroidアプリの開発未経験者の方がAIの力だけで完成まで至れるのかを追う記事となりますので、技術的な記事とは異なるかもしれませんので悪しからず。
また、結果から言いますと、完成に至ることはできませんでした。ですが、全然できなかったわけでは無かったので、その過程を見ていただければな~と思います!

企画

先の記事に則ってchatGPTに企画出しをしてもらうのもいいな、と考えましたが、初学者にいきなり難しい企画を投げられても完成させられる気がしないので、まずは簡単なカウンターアプリを作ってみたいと思います!

理由としましては、私が最近プレイしているポケモンSVで、色違いを求めて大量発生のポケモンを倒していて、倒した数の目印になるメッセージを見落としてしまう事が多々あるので、自分でカウントできるアプリ作っちゃおう!と思ったからです。

環境構築

そもそも何から手を付ければいいのか分からないので、そこから聞いてみます。
image.png

まずはAndroidStudioをインストールしなければいけないようですね
AndroidStudioの公式サイトに飛び、リファレンスに従って環境を構築していきます。

さてインストールも完了し、無事起動することができました。
プロジェクト作成画面はUnityHubに似ているので、おそらくそれに従えばよさそうです。
しかし、プロジェクトを作っていて壁にぶつかりました。使用言語の問題です。
javakotlinから選べるようですが、どちらも使ったことがなく、どっちがいいかも分かりません。
という事で、chatGPTに聞いてみました!!
image.png
image.png
ちなみますと、chatGPTでは、時々回答が途中で途切れてしまう事があるので、そういう時は「つづき」と言ってあげると続きを教えてくれますよ!

ということで、両者一長一短のようですが、せっかくなのでモダンそうなkotlinを選んでみましょう!
しかし、ここにきて更なる壁が...

Failed to read or create install properties file.

というエラーが発生してしまいました。
これもchatGPTに聞いてみましょう!
image.png
なるほど。起動しなおして管理者権限で実行するのが速そうですね。
という事で、無事空のプロジェクトらしきものができました!

これにて環境構築は終了ですね!

いざ開発!

UI作成

まずはUIを作成する必要があるみたいですね!
私は初学者で、AndroidStudioの操作方法すらも分からないので、頼っちゃいましょう!
image.png
ほうほう...なにやら詳しそうな説明をしてくれたので、いったんこの通りにやってみます。

しかし、進めば進むほど壁が出てくるもので、今度はlayoutフォルダが無いという問題に直面しました。
これについても聞いてみます。
image.png
とりあえず自分でlayoutフォルダを作ってみる事にします。(回答の中ではフォルダーとありますが、実際はディレクトリという表記でした)
そのlayoutフォルダにactivity_main.xmlというファイルを作成しました。

activity_main.xmlにアクセスすると、フォームアプリケーションのようなUIが出てきましたね...
私はフォームアプリケーションで電卓を作る程度の開発はしたことがあるので、経験を活かしてUIの作成を続けます。

ボタンの配置、色の指定、テキストの編集、サイズ調整が終わりました!
しかし、エラーが出てしまいました。

Missing Constraints in ConstraintLayout
This view is not constrained vertically: at runtime it will jump to the top unless you add a vertical constraint  The layout editor allows you to place widgets anywhere on the canvas, 
and it records the current position with designtime attributes (such as layout_editor_absoluteX). These attributes are not applied at runtime, so if you push your layout on a device, 
the widgets may appear in a different location than shown in the editor. To fix this, make sure a widget has both horizontal and vertical constraints by dragging from the edge connections.  Issue id: MissingConstraints  Vendor: Android Open Source Project

エラーについてchatGPTに聞いてみたら
image.png
という答えが返ってきました。
しかし、AndroidStudioを見ても、[Infer Constraints]ボタンが見当たらず、泣く泣くネットで調べた情報で解決しました。
このように、必ずしも解決に導いてくれるわけでは無いです。(当たり前といえば当たり前)

ボタンと同様の手順でテキストエリアも設置しました!
これでUIの配置は完了ですね!

機能の実装

UIは設置してあるだけでは意味がないので、ボタンを押したらテキストエリアの数字がカウントされるという機能を実装しなければいけないですね。
これもどうすればいいのか分からないので聞いてみます
image.png
これを参考に、OnClick属性にメソッド名を設定しました!
メインアクティビティに当たるクラスが存在しなかったので、chatGPTに聞きながら、layoutフォルダと同じ要領で作りました!
image.png

ここまで出来たら、やっとでスクリプトを組む段階に来ましたね!
もちろんコーディングもchatGPTに組んでもらいます。
image.png

そのままコピペしてみたら、10個ほどのエラーが出てしまいました。
image.png
このエラーをそのままchatGPTに聞いてみます。
image.png
どうやらほとんどのエラーはこのimportという事をすればいいようなので、一通り書いてみたら無事エラーが消えました!
image.png

ですが、こんなに冗長な記述をする必要があるのでしょうか?こればかりはAIに聞いてもどうにもならなさそう(複雑な操作が必要な可能性がある)ので、もし詳しい方がいれば教えて欲しいです!

動作確認

さて、ここまで長々と書いてきましたが、ついにchatGPTに指示された実装をすべて完了しました!
ここからは動作確認へと移りたいと思います!!
もちろん実行の仕方も分からないので、聞きます!
image.png
image.png
実機ビルドもできるのですが、せっかくなら仮想デバイスを作って、どの環境でも実行できるように知識を付けたいと思います。
私はGalaxyS21を使用しているのですが、そのプロファイルが無かったので、作成します!
この部分はGalaxyの公式サイトに端末の情報やskin(端末の画像データ?)と共に使用方法があるので、それに従います!
無事に仮想デバイスを作成できたのはいいのですが、仮想デバイスを起動したときの負荷にPCが耐えきれなかったのか、何故かQiitaの作成中の記事のタブがロールバックして、スクリプトを組むところまで戻った挙句下書きが上書きされて辛かったです...

色々ありましたが、仮想デバイスは起動できました!
さて、ビルドターゲットを仮想デバイスに設定していざ実行!!してみたのはいいのですが、一向に何も起動しません...
chatGPTに聞いてみると、考えうる理由を挙げてくれましたが、それでも解決はしませんでした...
image.png
image.png
実機ビルドもしてみましたが、ダメ...!
logcatを確認してみると、どうやらjavaで記述されたシステムファイル(?)がエラーを吐いているみたいで、未経験者の私には解決できませんでした...

com.google.android.googlequicksearchbox E/A: onError
    com.google.android.apps.gsa.shared.speech.a.n: errorCode: 65561, engine: 2
        at com.google.android.apps.gsa.staticplugins.di.a.e.a(SourceFile:3)
        at com.google.android.apps.gsa.s3.n.gF(SourceFile:1)
        at com.google.ce.g.a.f.f(SourceFile:2)
        at com.google.android.apps.gsa.speech.k.a.g.d(SourceFile:21)
        at com.google.android.apps.gsa.speech.k.a.g.jG(SourceFile:6)
        at

結果

開発自体はできていたような気がするのですが、肝心のビルドができず、結果として完成には至りませんでした...
やはり完全に知識がない状態からでは、エラーへの対処や、仕組みの理解の面で解決できない問題が非常に多く、chatGPTだけの力ではアプリの完成はできないという風に感じました。
もしかしたら、私のやり方や環境が悪かった可能性は大いにありますが、やはり現在のchatGPTは分からない事や、回答できない質問に対して、素直に「できない」という回答を返さず、それっぽい回答をしてしまうせいで、初心者にはそれが正しい情報に見えてしまうというトラップがありますね。

結果として、新しい技術を身に着けるときは、ちゃんと有識者の方が残してくれた情報をインプットする方が良いという事がよく分りましたね!!

最後に

もし、今回の私が行った一連の作業で間違っているところや、なぜ最後に実行できなかったのか、原因が分かる方がいましたら、教えていただけると幸いです。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?