おはこんばんちは!
ゆるふわSEの「ゆるちょここ」です!
ここ数年ChatGPT的な?!、生成AI的な?!ものがなんだかちまたで流行ってる?!よぉで、よく見かけるよぉになったよぉな気がしますが、皆さんはどの程度知ってたり、実際に触ってみたりしてみましたでしょーか?
かくいう私は、流行にはそんなに飛びつかない方(良い意味で自分のやりたいことだけをやりたいw)なので、
「ほえー、そんな便利そーなのがあるのかー。ほえー(´_ゝ`)」
ってくらいで、横目で見てただけでしたが、少し前に気まぐれに触ってみたら、
「ほえー、なるほろ便利かもー?!(´・∀・`)」
でも、使い方はちと考えなあかんかもなぁって思いましたので、その思いを備忘として残しておく。ます。
ちな、生成AIってなんじゃらほい?!という方は、私もイマイチ定義は知らないので、一緒にGoogleの生成AIさんに聞いてみると(生成AIについて生成AIに聞くというなんだか面白展開w)、こんな感じらしーですっ!


ほんで今回使ってみたのは、
「ChatGPT」と
「Perplexity」の2つ。
最初に一番有名なChatGPTを使ってみたのですが、無料枠を使い果たしてしまったのか、すぐに課金しないと使えない状態になって、日がたってもなんだか使えない状態が解除されない感じだった(だいぶ前に使ったので現在は仕様が違うかも?!)ので、似たようなものはないかなぁ?!(基本的に絶対課金したくないマンなので。。。w)って探して、次に試しに使ってみたのがPerplexityたん。
Perplexityたんは、少し長いソースコードをプロンプトに入れるとそれが自動で添付ファイルとして貼り付けられるっぽく、添付ファイルを合計5つ?!以上添付しちゃうと制限がかかって課金(月額20ドル)しないとそれ以上添付することができず、仕方なしのものは試しでちと課金したことはあるのですが、4時間くらいたったらその添付ファイルの制限も解除されるっぽく、回答の質も無課金と有課金でそんなに変わんないように見えたので、無課金でもじぇんじぇん使えるレベルかなぁって思って、こちらを割と愛用させてもらってましゅ。
なのでChatGPTはあんま知らないですが(一瞬にして制限かかって無課金だと使えなくなってしまったのでw)、Perplexityたんを使ってみて、
アプリ開発に利用する上で、「えーやん」って思ったとこと、「うーん」って思ったとこを書いていく。ます。(`・ω・´)シャキーンw
えーやん1:それなりに動くコードを生成してくれる
まぁ多分ここが一番使った人がびっくりしちゃうえーやんポイントだと思うのですが、例えば、単純なToDoリストアプリを作ってみたいという時にAIたんに、
「SwiftUIで簡単なToDoリストアプリを作ってください」
とお願いしてみると、

こんな感じで答えてくれて、簡易な説明とともにソースコードをまんま提供してくれたりします。
しゅ、しゅげー!(むかしの私の心の声。。。w)



で、提示してくれたソースの機能説明もざっくりしてくれてます。
単に簡単なToDoリストアプリというお題を出しただけなのに、そこそこに向こう側で考えてくれて、ToDoリストに必要っぽい機能を盛り込んでくれてますね。
ToDoリストアプリにおける必要最小限の基本骨格って感じがして、良きですねー。

で、このコード、ほんとに動くの?!(´・ω・`)
ってとこが肝心なのですが、、、
実際にXCodeにコードをペタペタと貼ったら。。。

あら不思議。。。
そこそこに長いコード(といってもこれは60〜70行くらいですが)なのに、この時点でエラーが出ていません。(おぉw)
(XCodeのエディタはソースに間違いがあるとビルドの前にエラーを出してくれます)
この時点で、「お、なかなかやるやん(´・∀・`)」ってちょっとびっくりw
で、実際にビルドしてシミュレーターで動かしてみると、、、
お、起動した!!!(´・ω・`)
こ、こいつ、動くぞ。。。Σ(・ω・ノ)ノ!w
と、またびっくりw
で、これが起動したシミュレーター上のiPhone16の画面。
タイトルと入力欄、追加のボタンがちゃんとあって、

ToDoの追加や、チェック、削除機能もきちんと動作していました!
(はにゃーw)

ほほーん。
やるやんPerplexityたん!!!(´・∀・`)(´・ω・`)w
てな感じで、こりゃー便利だなー(小並感w)って感じなのですが、きちんと見ると、
・保存の機能がないので、アプリを閉じると追加したToDoが消えてしまう。
であったり、、、
・デザインが全く考慮されていないので、UI/UXを改善する必要がある。
など、まだアプリとしては不十分なところはあったりしますが、
アプリの基本骨格となるソースを生成するという意味合いでは及第点と言えなくもないかもしれません。
(まぁ、ありきたりで単純なアプリの例ですががが。。。)
で、実際にアプリを作成する際は、こういったアプリに必要な機能を要件定義としてまとめておいて、プログラミングで実装していくわけで、
じゃー、それら必要な機能を既に最初に全部書いておいて、コードの生成をお願いすれば一発でできて便利じゃーん?!
って思うかもですが、これは意外と?!、というか予想通り?!というか、多くの場合、失敗します。
というのは、コピペで貼ってもエラーが出たり、想定通りの動きをしなかったりなどなど。
一度に盛り込む要望が多ければ多いほど、やはり機能が増えていくわけですから、生成AIちゃんも頭がこんがらがっちゃって、ちゃんとしたコードを書くのがきっと難しくなるんでしょーねー。
ほんとに知らんけどw
まぁ人間でも一つ一つ実装していくわけですし。おすし。
なので、生成AIを用いたおすすめな実装方法は、
・まずアプリのコア機能となる基本最小限の機能を実装したソースを作ってもらう。
・機能追加は1機能ずつ追加し、都度稼働確認、微修正
していくってのが確実性が高いんじゃないかなぁと思います。
上記は新規アプリを作成する際の一助となるかもです。
使い方に慣れれば、きちんと要件定義をして、AIにコードを生成/修正してもらって、受入テストをする感じで、自分でそんなにコードを書かなくてもアプリをリリースできるレベルのソースを書き上げることができるかもしれません。
ただ、巷でたまに言ってる方が見受けられますが、生成AIがあるからと言って、開発者にプログラミングの能力がいらないかと言われたら私は割と必要だと思う派です。
AIが生成したプログラムも読めるしわかるし、何なら自分で書こうと思えば調べて書ける。(少なくとも生成されたコードを調べて、後でなんとなく理解できる)
だけど、めんどいところを手伝ってもらう。
ってレベル感だと、生成AIを人間の補助ツールとして使うという意味合いで効率がいいんじゃないかなぁって思います。
最低限でも基本的な文法書を1冊は完了した段階で使うと良きかと思います。
実際には、生成されたコードだとxxが微妙なので微調整したいって場合が多々出てくると思いますが、ここで自身に知識/技術の引き出しがないと、永遠にAIのプロンプトと対話を繰り返してうまくいかないという徒労の時間を過ごすことになりかねないので使い方には注意が必要ですね。
えーやん2:アプリの横展開をする際に便利
アプリ開発において、全く新規のアプリを考案するってのは結構難しいです。
そんな中、一つでも新規性があり、人に役立つものをリリースしていくわけですが、作っていく中で、
あれ?!
このアプリって、外枠を流用して、中身を変えたら、別のユーザにも役立つんじゃない?!
って思えるアプリを思いついたりすることがあります。
例えば以前、海外へ旅行する方やFXで為替取引をする方へ向けて、ドルと円を相互に換算するアプリである
「瞬速!ドル円換算」
という為替換算のアプリを作りましたが、、、
これをぽけーっと眺めてたら、
「せや、ユーロと円の換算アプリがあっても便利やなー。」
と思いつきました!
で、通常ならば「瞬速!ドル円換算」のソースコードを元に、手作業でぽちぽちと、ユーロ用に変更作業を加えていくのですが、
AIたんに「瞬速!ドル円換算」のソースを貼って、
「これをユーロ円用にいー感じ用に書き換えてちょ!」
ってお願いすると(実際はもうちょっとちゃんと指示しますよw)、なんとそれっぽくユーロ円用になったソースに書き換えてくれちゃったりするので、アプリを横展開させる際には大助かりだなーって思いました。
結構手作業でソースの変数名とか関数名とか、テキストとかを横展開用に書き換えていくっていうのはただただ面倒で、単純作業が故にミスも発生しやすいかと思うのですが、AIたんは瞬時にそれをやってくれちゃうので、こういう単純作業はお願いする価値はありそーです。
まぁ、企業が販売する製品のソースコードとかはセキュリティ的にこういったAIに読み込ませるのはアウトだと思いますので、個人開発者にしか使えない荒技なのかもしれませんががが。。。w
そんな感じで、最終的に横展開で作ったのが、
「瞬速!ユーロ/円換算」な訳ですが、、、
1から作ったドル円の労力を100とすると、20くらいの労力で多分作れてます。
手作業で横展開すると、多分50くらい。
こういった面倒かつ単純作業を代替してもらえるのは超良きかなと思いました!
ありがてーw
えーやん3:アプリの説明欄すらも考えてくれる
新規アプリをリリースする上で、アプリの説明欄を考えることになりますが、なんかいっぱい作ってたら、この部分を考えるのがちょっと面倒になる時もありますよね?!
人間だもの。(なにそれw)
ドル円アプリでいうとこの部分ですね。

このアプリの説明欄をこの方法で書いたかどうかは忘れましたが、
例えば、上記方法でAIたんと一緒にアプリを完成形まで作りきったら、AIたんはどんなアプリを作ったかをそれまでのプロンプトの履歴から把握しているので、
「このアプリをAppStoreに掲載するにあたっての説明文をユーザがわかりやすいように記載してください。その際、アプリの特徴と使い方を説明に含めてください。」
みたいな感じでお願いすると、それっぽいのを書いてくれたりします。
日本語への対応が微妙なのか、若干日本じゃあまり使わないよぉなアメリカンな表現が使われてたりするとこもあるので、人間の添削は必須ですが、大枠の作成がめんどい時は利用しても良いかもしれません。
もちろん、アプリを横展開でリリースする際も、既にリリースした大元のアプリの説明文をコピペして、これを元に「このアプリ用に書き換えてちょ」って言えばそれっぽくやってくれるので、楽ちんです。
ありがてぇてぇw
うーん1:長いコードの出力が途中で途切れることがある
これはChatGPTでもあるあるなのかもしれませんが、Perplexityたんが出力するソースが長くなると、ソースの出力が途中でぶつ切りに途切れて止まることがあります。
その際は、「長くなる場合は途中で区切っても良いです」って一文加えれば、向こうでもわかってくれるのか、区切ってくれて、こちらが続きをお願いするとその続きを出してくれるよぉになります。
途中で出力が止まると、ぐぬぬ。。。ってなるので工夫が必要ですw
うーん2:分からない/できないとは言わないけど、分からないものは分からないらしー
何らかの実装のお願いをしても、AIたんは基本的には、「わかりません」とか「できません」ってあまり言わないよぉな印象を受けます。
「xxを修正して」って言ったら、
「わかりました。xxを修正したものを提示します。」
って、いつもの通り平然としたドヤ顔で出力してくれますが、動かしてみても動かない。
ほんで、「さっきのはダメだったよ」的なことを言っても、
「そうでしたか。わかりました。ではxxを修正したものを提示します。」
と同じコードを提示してきて、そこからが壊れたロボットのよぉに、同じものしか出してこないことがあったりします。。。w
でも、実は調べてみると、案外簡単なとこで自分ですぐ直せちゃったり、そもそも仕様上そんなことができなかったりしたりします。
もーちょっと分からないとか、できないって言ってくれてもいーんだよw
むしろ謎の頑張りにより無理やりにでも何らかの答えを提示してくれるので(合ってるとは限らないのがミソ)、紛らわしくしないでほしーと思うこともしばしばw
うーん3:今までのやり取りを忘れることがある
同じプロンプト内で、今までのやり取りを突然忘れて、聞いたことに対して、さも初めて聞いたかのように、出力してくることがありますw
いやいや、さっきまで会話してたのに、少し前のこと忘れないでよーw
ってなりますw
そういう時は、ちゃんと質問に対する前提の情報をもう一度書いてあげて質問する必要があるのでちと面倒だったりします。
まとめ
とまぁ、細かく書くともっと色々あるよぉな気がするけど、長くなっちゃうんでこんな感じかな。
まだまだ使いこなせておらず、あんまし仕様を把握できていない状態でこの記事を書いておりますが、「Perplexity」たんら生成AI。
人類の進歩はしゅばらしーですね。
便利なツールをうまいこと使いこなして、こちらもより便利なアプリを生み出していきたいものですね!
今まで作ったアプリちゃんたち!
私と私と私とAIたんと私と私と私の汗と涙と努力の結晶である、世のため人のために世界に送り出したアプリちゃんたちは合計84個になりましたぁ!(´・∀・`)
この長い文章をここまで読んだ素晴らしい読者さんは、ぜひこちらも見てってねぇ!
でゎでゎ☆彡
