ChatGPT中津川篤司2022年後半くらいから一気に盛り上がりを見せているChatGPT。ChatGPTを利用したサービスも数多く登場しており、その動向に注目している方も多いのではないでしょうか。本記事では、ChatGPTがモバイルアプリ開発に与える影響と、変化について記述します。予想も大いに含まれるので、外れる可能性も高いです。その点、ご注意ください。ChatGPTの使いどころChatGPTをプログラマー(アプリ開発者)の視点で見た場合、以下のような使い方が考えられます。Codexをベースにしています)。何かコードを書いた時に、サジェストしてくれる機能です。このサジェストというのは入力補完とは異なります。入力補完はコードを静的に解析し、クラスなどのメソッドや変数名を補完してくれるものです。対してサジェストはコードを解析し、予測されるコードを提案します。複数のプロパティがある中で、1つ目のプロパティに対して処理を書くと、他のプロパティに対して補完するようなコードを提案します。プログラマーは内容を確認し、後はタブキーを押していくだけでプログラミングが完了していきます。関数名を書くだけで補完してくれる機能も便利です。Copilotの場合は関数名からも処理を予想して記述します。CEOはいずれコードの8割がAIベースになると言っています。CopilotやChatGPTを体験すると、あながち間違っていないように感じるでしょう。コードをレビューしてくれる書き終わったコードをChatGPTに送信して、レビューを依頼するというのも良く行われています。可読性の高いコードに成形したり、コメントを追加したりできます。レビューして終わりではなく、より良いコードを生成してくれます。このコードと元のコードを差分で確認すると、より良いコードはどういったものか理解できるようになるでしょう。レビューを数時間〜数日待つのであれば、ChatGPTにレビューしてもらう方がすぐに終わって便利です。テストコードを生成するできあがったコードを元に、ユニットテストやブラウザによるテストコードを生成してもらうこともできます。テストコードを書くのは面倒ですが、自動生成してくれるならとても楽になります。正常系のテストコードだけであっても、ベースがあるだけで工数がまったく違うでしょう。したテストコードの生成も、元になるコードを解析した上で生成されます。自分の書いたコードに最適化されたテストコードです。ネットでテストコードのベースを探してきて、自分で書くのとは大きく異なる体験でしょう。ライブラリやAPIの使い方を教えてくれる普段あまり使わないAPIやライブラリの使い方を知るのにChatGPTが便利です。ドキュメントを読めば使い方は分かりますが、自分の目的に合った内容とは限りません。ドキュメントを理解して、自分のニーズに合わせて例示されているコードをカスタマイズする必要があるでしょう。ChatGPTの場合は、質問した内容(要件)に合わせて最適化されたコードを生成してくれます。地図ライブラリやCanvasの使い方などを学ぶ際に使ってみると、その凄さが体験できるでしょう。ベースを生成してくれるすでにリリースされているサービスでGPTAppがあります。これはChatGPTに質問した内容をそのままWebアプリとして表示するものです。要件(プロンプト)が正しければ、望んだ通りのアプリが生成されるでしょう。この使い方の面白い点としては、チュートリアル的なアプリを自動で生成できる点です。Monacaにも様々なデモアプリやチュートリアルを用意していますが、それをユーザーが期待したものをオリジナルで生成できるようになります。「こういうアプリはどう作るんだろ」と思った内容が、そのままアプリとして展開されます。大雑把な要件では期待した通りにはできあがりません。これがプロンプトエンジニアリングと呼ばれるものですが、ChatGPTなどに正しく依頼する能力が求められます。今後の変化ここからは大いに予想が含まれますので注意してください。ベースは自由に選択して生成アプリを開発する際に、これまではテンプレートを選んでいたでしょう。Vue.jsとTailwindといった内容です。したベースアプリの生成が、自在に行えるようになりそうです。フレームワークはVue.js、CSSフレームワークはTailwind、画面はタブビュー...といった具合に選択していくだけで自由にアプリが生成できるかも知れません。ここで選択式にしているのは、テキストで自由入力よりも精度を高めやすいからです。要件からバックエンドアーキテクチャを作成プロジェクトの要件を入力することで、アプリのバックエンドアーキテクチャを提案したり、必要なコードを生成してくれるかも知れません。CloudFormation向けのコードを出力してくれる可能性もあります。同様にデータベースの構造を提案してくれたり、SQLも出力してくれるでしょう。Xが使われるようになれば、コードは基本的に書くものではなく生成されたものを使うのが当たり前になるでしょう。この時に問題なのは、生成されたコードに対する責任を負うのはプログラマー本人だということです。Copilotの責任にはできません。正しく動くかどうかは、プログラマーがチェックして容認する必要があります。プログラマーとしてコードリーディングの知見と、間違っている場合に修正できるスキルが求められるでしょう。修正できるスキルは実際にコードを書くことでしか得られません。自動生成が当たり前になったからプログラマーとしてのスキルが低くても良い、とはならないでしょう。問題ないように見えるコードが本当に問題ないのか、その見極めるスキルが必要です。これはレビューワーとしての目になるので、スキルはもっと高くなければならないでしょう。プロンプトスキルのニーズAIに期待したコードを生成してもらうためには、プロンプトエンジニアリングのスキルが求められます。アプリの要件を正しく判断し、それを文章にしなければなりません。いえ、プログラミングのような文章を書くわけではありません。AIの認識に齟齬が発生しないレベルの文章力が求められるでしょう。プロンプトエンジニアリングのスキルを高めるためには、まず現状のAIに触れた上でどういった文章を投げるとどういった結果が得られるのかを学ばなければなりません。生成されたコードのつなぎ合わせ将来的には変わってくると思いますが、現状のAIでは1回のプロンプトで1画面分のコードを生成するのが基本です。複数画面にまたがるアプリを生成するのは、プロンプトやレスポンスが長くなってしまいます。そのため、画面ごとにコードを出力して、それを連結させてアプリにしていく技術が求められるでしょう。その際に画面ごとに齟齬が発生しないように注意が必要です。メイン画面はVue.js、一覧画面はReactなどとフレームワークが異なってしまうと開発しづらいアプリになるでしょう。した問題が発生しないためにもプロンプトスキルは大事です。まとめChatGPTは開発面だけでなく、Webサイトのドキュメントやヘルプ、マーケティングなどでも大いに役立つ可能性を秘めています。プログラマー以外の方にとっても見逃せない存在になるでしょう。多くのサービスにChatGPTが組み込まれていたり、社内で実験的に利用されています。これはスマートフォンが登場した時の衝撃に近いかも知れません。2008年くらいにも多くのスマートフォン関連サービスが立ち上がったり、どうビジネスにつなげるかを社内検討していたはずです。その再来と言えるでしょう。試し、その可能性を探ってみてください。中津川篤司プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。(JavaScript基礎構文)iOS16から導入された「デベロッパモード」についてhtmx:JavaScriptなしでサーバーとの通信を実現する見やすい、メンテナンスしやすいJavaScriptのために。