ChatGPTが出力したソースコードでChatGPTとチャットできるFlutterアプリを作ってみた
はじめに
株式会社SHIFT 保険・証券グループの日崎です。
皆さん、ChatGPTは使っていますか?
AIが仕事を奪うとか、欧州では禁止になったりとか、OpenAIのトップが日本に来日したりとなにやら非常に騒がしい毎日ですが、うまく使えば非常に便利なツールであり、エンジニアリングをより加速すると感じる今日この頃です。
Flutterアプリを開発してみた
今回は、たまたまお客様にアプリを提案する機会があった事と、ChatGPTが流行っていたので、時流に乗ってChatGPTとCopilotをフル活用しながらFlutterアプリを開発してみました。
生成AIによって生成AI自体とやり取りできるようになるツールを作る、というのはなにか不思議な感覚です。
結果的に8~9割がChatGPTにて生成されたコードになり、そのパワーのすさまじさも感じつつ、開発中に感じた事を以下につらつらと書き連ねます。
機能
以下の機能を持つシンプルなアプリです。
- OpenAIのAPIを利用してAIとチャットができる
- よく使うプロンプトを定型文として設定できる
- API秘密鍵を設定することで利用開始できる
- ページング機能がある
- Androidで動作確認済み
https://github.com/tk-hx/templai
良かったこと
Flutterに関しては少しかじった事がある程度でしたが、ChatGPTにコードを貼り付けるとコードの書き方、設計の仕方、フォルダの分け方などを示唆してくれました。
ChatGPTからのレスポンス速度の関係からGPT-3.5を利用して開発しましたが、より込み入った部分についてはGPT-4を利用するような使い分けを行いました。
以下の用途で非常に便利だと感じました。
・コードそのままでの問い
・一般的な設計手法についての問い
・未経験の技術についての問い
・フレームワーク・ライブラリの使い方についての問い
・エラー発生箇所についての問い
・コードのリファクタリング・改善についての問い
良くなかったこと
一方で、以下の用途では利用しにくいなと感じました。
・細かい機能部分についての質問
細かい機能の実装時には、プロンプトを書いている方がコードを書くよりも時間がかかってしまうな、という局面に多々出くわしました。そのような場合にはあきらめて自分でコードを修正するなどの労力が発生しました。
・ちょくちょく嘘が混じるため、そのものズバリには不適
LLMの課題点として挙げられる点ですが、さも全く正しいかのように嘘が混じることがあります。そのため、主に仕様的な面やコード自体に潜在的なバグが含む可能性があることと、正しい事を判断できる人間の目が必要になります。
・全くの未経験のエンジニアが開発は厳しい
なんとなく貼り付けて動く所はあるかもしれませんが、前述の嘘が混じったりすることや、前提についての知識がないと思った通りのものを作ることはプロンプトに時間がかかってしまったり、難しいようです。ただし、AIに対して問いをし続ける事で自身の知識が増え、全くのゼロから始めるよりは遥かに効率的に開発が出来ると感じたので、めげずに続けることで不可能ではなくなるのかもしれません。
・セキュリティ的な懸念がある
今回のようなお遊びアプリ開発には利用できるものの、明らかに個人情報や業務情報を含むような内容をChatGPTに送信すると、再利用される可能性があり、非常に危険です。そのため、社内での運用などを考えるときに正しいルールのもとに利用する必要があります。
まとめ
デメリットはあるものの、総合的に見たときにはかなり便利であり、自身のプログラミング力が強化され、AIに背中を押された感覚になりました。
日本で一般的になるまでには時間がかかるかもしれませんが、あまりに進歩が速いので、今から使い方を試してみて慣れておくのも手だと思います。
_________________________________
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/