これは ZOZO Advent Calendar 2022 カレンダー Vol.2 の 4 日目の記事です。
昨日の投稿は @ssssota さんの「JSON SchemaのanyOfをTypeScriptの型で表現する」でした。
ZOZO Advent Calendar 2022 をご覧のみなのもの〜!
おはこんハロチャオ~!ZOZOでAndroidアプリ開発を担当しております。 @umsys です。
お察しの通り最近はポケットモンスタースカーレット・バイオレットにハマっています。
ナンジャモさんかわいいですね。
さて、今回は今話題のChatGPTと一緒にAndroidアプリを作ってみました!
AIによる仕事の代替が「エンジニア」という領域にどのような形で影響を及ぼすのか、個人的にも気になりましたので、体験してみることにしました。
1つ前置きをさせていただきます。
「Androidアプリを作ろう!」と題しておりますが、AndroidStudioの使い方やAndroidアプリ開発の基礎に関してはここで取り上げません。
ChatGPTと一緒にAndroidアプリを作るという体験にフォーカスした内容をお届けさせていただきますので、予めご了承ください。
ChatGPTとは
会話形式で対話するAIです。対話形式により、フォローアップの質問に答えたり、自分の間違いを認めたり、間違った前提に挑戦したり、不適切な要求を拒否したりすることが可能です。
ChatGPTはInstructGPTの兄弟モデルで、プロンプトの指示に従い、詳細な応答を行うように訓練されているそうです。
https://openai.com/blog/chatgpt/
この説明だけ聞くと、対話でAIが答えを返してくれるチャットサービスのように思えるのですが、実際に使ってみるとその賢さに腰を抜かします。
どんなアプリを作るか決めよう!
せっかくなので、この段階からChatGPTに任せることにしました。
1記事にまとめられるほどのアプリなので、手軽に開発できるアプリがいいですね。
入門用アプリとしてよく挙げられるメモアプリにしようと思いますが、せっかくなので面白い機能を付けたいものです。
ということで早速聞いてみると。。。?
これはすごい。。。こんなにポンポンとアイデアが出てくる頭になりたいものです。
どれも楽しそうなのですが、スマートフォンの写真を自動的に文字起こしするメモアプリは比較的簡単かつ面白そうだったので、このアプリの開発を進めることにします。
技術選定をしよう!
ここでエンジニアならば「画像から文字を抽出 Android ライブラリ」とかでググりそうですよね。
そして検索結果から良さげなライブラリを選んで開発していくと思います。
しかし、ここでは自分がエンジニアであることを忘れ、全部聞いていきますw
なるほど!
Cloud Vision APIはGCPの登録が面倒なので、Tesseractとやらを使ってみることにします!
アプリを開発していこう!
どんなアプリをどんな技術で作るかが決まったので、開発を進めていきます。
Tesseractはお初なので使い方をChatGPTに聞いていきます。
※長くなったので画像が2つに分割されています。
ヒィッ!!!
build.gradle
の設定方法からサンプル実装まで提示してくれました!!!
せっかくなのでもう少し詳しい実装もお願いしちゃいましょう!!
。。。質問しているだけで実装まで終わってしまいました。
ちなみに記事を執筆しつつ、開発作業も並行して進めているのですが、ここまでで約2時間くらいです。
このスピード感はすごい。。。お初のライブラリを触ってアプリに仕上げるまで最低1日(実働8時間)はかかる @umsys ですので、作業効率4倍アップです。
(これを開発しているといっていいのかはさておき)
開発したアプリを動かしてみよう!
では一通り手順が揃いましたので実際にビルドしてみたいところですが、このままだと動きません。ちょっとまだ手を加える必要があります。
ChatGPTはスレッドの流れも覚えているので、この後いきなり「日本語を読み込めるようにしてほしい」とか、「BitmapFactory.decodeFile
のところでjava.io.FileNotFoundException
がでてしまったのですが、どうしたらよいですか」とかを聞くと、今開発しているアプリに対してのアドバイスや修正案を出してくれます。
こうして何度かやり取りを繰り返した末にアプリが完成しました!!
無事動きました!
ただ、今更気づいたんですがメモアプリではないですね汗
「ギャラリー/カメラから画像を読み込む」、「読み込んだ結果を保存する」辺りの機能を追加すると、革新的なメモアプリとして使えそうです。
そのためにはChatGPTとさらなるやり取りをする必要がありそうですが、今回の目的であるChatGPTと一緒にAndroidアプリを作るという体験は伝わったと思いますので、今回はこの辺りで終わりにしようかと思います。
終わりに
今回の体験は、まるでAIに開発をお願いしているような感覚に陥りました。
最後の方の、エラー修正のリテイクを何度もお願いする場面は開発のテスト期間さながらです。
ただ、まだ我々の仕事を完全に奪うほどのものでは無さそうかなと思いつつも、AIの成長は早いのでボケっとしていられないなと思いました。
もしプログラミング仕事がAIに取って代わられる時代が来るとしたら、AIを使いこなして要望通りのアプリを出力するエンジニアという職業が成り立つ世界になって行くのかもしれませんね。(そんな漫画をどこかで読んだ気がします。)
ChatGPTは今後有料化するそうなのですが、プレビュー期間中は無料でお試しできるとのことです!
プレビュー期間はいつ終わってしまうかわからないので、未来の開発体験を先取りしたい方はお早めのお試しをオススメします!
明日は @tama_Ud さんです。
お楽しみに!