「アプリ開発初心者だけど、自分でもアプリを作ってみたい」「でも、どのように作ればいいのかわからない」そのようなお悩みはありませんか?今、ソフトウェア開発の世界では、AIの力を借りてコードを生成する新たな動きが広がっています。その中でも特に手軽に利用できるのが、ChatGPTです。しかし、一方で「AIが生成したコードをそのまま使っても大丈夫なのか」「ChatGPTを使うためにはどのような知識が必要なのか」など、まだまだ不明な点も多いのが現状です。そこで、この記事では、ChatGPTを使ったアプリ開発の方法や注意点を解説します。これからChatGPTを使ってアプリ開発を始める方はもちろん、すでに使い始めている方も、ぜひ参考にしてください。ChatGPTはアプリ開発もできる生成AIChatGPTは、一般的には文章生成AIとして知られていますが、アプリ開発も可能です。そもそもChatGPTとは、AI(人工知能)を使ったチャットボット型のツールを指します。中でも、マルチモーダルを実現したGPT-4では画像や音声も認識でき、より様々なアクションを通じた開発に利用できます。そのため、アプリ開発初心者でも、ChatGPTを使えば簡単にアプリが作れます。しかし、それはあくまで「作ってみた」レベルの話であり、プロのソフトウェア開発者が行うような高度な開発にはまだ至っていないのが現状です。基本的な使い方を見てみる:【PC・スマホ】ChatGPT 使い方と実践的な活用術を解説多種多様な開発言語に対応できる学習データにはコードに対する情報も含まれ、Python、Java、C++、Kotlin、JavaScriptなど、主要な開発言語に対応できます。どのようなコードを、何の言語を使って書くのかだけ指定できれば、知識に基づいた解決策を提案するわけです。ChatGPTで作れるアプリの例ChatGPTで作れるアプリの例としては、以下の3つが挙げられます。WebアプリスマホアプリPC用ツールWebアプリChatGPTを活用して開発しやすいアプリケーションの代表格は、Webアプリです。Webアプリとは、ユーザーがWebブラウザを通じてアクセスし、利用するアプリケーションのことを指します。いわば、Googleの検索フォームのようなものが典型的な例です。ChatGPT自身もWebアプリの一種であり、この技術を使って、さまざまなWebアプリケーションの開発が可能です。そのほか、業務で使用するデータベース管理ツールやカスタマーサポートを効率化するチャットボットなど、実務に役立つアプリケーションの開発が考えられます。弊社が提供している、SEO対策に特化したAIライティングツールのSAKUBUNもWebアプリの1つです。>>SAKUBUNスマホアプリスマートフォン向けのアプリケーションに関しても、比較的シンプルなものであれば、ChatGPTを用いて設計から実装まで対応できます。Webアプリケーションと同様に、コンパイルが不要なものならば、ChatGPTが自動生成を行うことも可能です。JavaScriptは「インタプリタ言語」として知られており、コンパイルを必要とせずに実行できる言語の一つです。Webアプリケーションの開発において、JavaScriptはクライアントサイド(ブラウザ内で動作する部分)で非常に広く使用されています。ただし、コンパイルを必要とするような複雑なスマートフォンアプリについては、ChatGPTの能力では限界があり、適切な実装が難しいです。特に、複数のファイルにコードを分割するなどには不向きです。PC用ツールPC用のツール開発においても、簡単なデスクトップアプリケーションであれば、ChatGPTを用いた開発が可能です。Windows環境で動作する、基本的な入力受付やデータ処理機能を持つアプリケーションを想像してみてください。しかし、PCアプリケーションもファイル分割が多くなる傾向にあり、ChatGPTはそのような状況に対応するのが得意ではありません。オブジェクト指向のクラスを多用するような複雑なアプリケーションの開発は、ChatGPTの適用範囲を超えることが多いです。ここまでお伝えしたように、ChatGPTによる自動生成が適しているのは、限られた数のファイルで完結するようなシンプルな構造のアプリケーションだと言えます。APIモデルでは自社アプリにChatGPTを組み込める通常のChatGPTは、主に用意されたツールから会話を行う使い方が一般的です。一方、APIモデルでは自社アプリにChatGPTを組み込めます。このAPIは「Application Programming Interface」の略で、アプリケーションプログラミングインターフェースと訳されます。要するに、異なるソフトウェア間で機能を共有するための仕組みです。AというアプリにBを搭載する際、このAPIを通じて情報をBから受け取って、Aに使うことができます。わざわざ新たに開発しなくても、ChatGPTのような応答機能を自らのアプリに用意できるわけです。以下の表は、ChatGPTのAPIモデルの概要です。モデル名説明GPT-4 Turbo and GPT-4GPT-3.5を改良したモデルGPT-3.5 TurboGPT-3.5を改良したモデルDALL·E画像を生成・編集するTTSテキストを音声に変換するWhisper音声をテキストに変換するEmbeddingsテキストを数値形式に変換する実際には、「gpt-4-turbo-2024-04-09」などの細かく細分化されたモデルを利用することになります。例えば、ChatGPTが持つ自然言語理解の高度な能力を、既存のシステムに容易に組み込むことで、スムーズな対話が実現できるでしょう。もちろん、アプリを開発するためのコードを出力することも可能です。【関連記事】ChatGPTのAPIとは?使い方や活用事例を解説ChatGPTでアプリを開発する基本的な流れChatGPTでアプリを開発する基本的な流れは、以下のとおりです。設計環境の構築実装実行アプリの設計ChatGPTを活用してアプリを開発する際、まずは初期設計を行います。この段階で、どのような機能を持つアプリを作りたいのか、利用シナリオはどうなるのかを明確にしておく必要があります。例えば、ユーザーが日々の食事から摂取カロリーを管理するアプリを作りたい場合、必要な機能や入力項目、データの扱い方を事前に決めておくことが求められます。例として、ChatGPTで設計してもらいました。適当に希望を伝えるだけで、かなり細かく作ってもらえます。指示:アプリ作るから、ユーザーが日々の食事から摂取カロリーを管理するアプリを作りたい場合、必要な機能や入力項目、データの扱い方を事前に決めておく必要があります。設計してください。結果:### 1. 必要な機能#### アカウント管理- ユーザー登録(メールアドレス、パスワード)- ログイン/ログアウト機能- プロフィール設定(名前、年齢、性別、身長、体重、活動レベル)#### 食事記録- 食事のタイプ(朝食、昼食、夕食、間食)- 食べた食品の記録(食品名、量)- 食品データベース(カロリー、栄養素を含む情報の提供)- バーコードスキャン機能(パッケージ食品の情報自動入力)#### カロリー計算- 摂取カロリーの自動計算- 日別、週別、月別の摂取カロリーのグラフ表示#### 目標設定- 目標カロリーの設定- 体重の目標設定と追跡#### 通知機能- 摂取カロリーが目標に近づいている際のアラート- 定期的な食事の記録を促すリマインダー### 2. 入力項目- 食品名- 食品の量(gまたはml)- 食事のタイプ(朝食、昼食、夕食、間食)### 3. データの扱い方#### データ保存- ユーザーデータはセキュアなデータベースに保存- 個人情報は暗号化して保管#### プライバシーポリシー- ユーザーのデータ取扱いについて明確なプライバシーポリシーを用意- ユーザーが自身のデータに対して持つ権利(アクセス権、削除権等)を明示#### APIの利用- 食品データベースAPIを利用して、食品のカロリーや栄養情報を取得- 外部サービスとのデータ連携を考慮(例:健康アプリとのデータ同期)ただ、ChatGPTは対話を通じて細かな設計を進めることができますが、結果として複雑なアプリを設計する際には多くの時間と労力が必要になることを覚悟しましょう。言ってしまえば、対話の繰り返しとなるわけです。環境の構築アプリ開発には、適切な開発環境の構築が不可欠です。ChatGPTにはアドバイスしか対応できず、通常はエンジニアが手動で開発環境を整える必要があります。例えば、開発するアプリがAndroid、iOS、またはクロスプラットフォーム(React Native、Flutterなど)であるかを決定します。クロスプラットフォームの開発ツールを使用すると、一つのコードベースで複数のプラットフォームに対応するアプリを開発できます。実装フェーズ実装フェーズでは、ChatGPTが作ったコードを適切に実装します。ただし、ソースコードの品質には注意が必要です。ChatGPTは設計に基づいてコードを生成しますが、例外処理やエラーハンドリングは不足しやすいです。また、学習データに基づいたコード生成のため、著作権に関する問題が発生することも否定できません。この問題を避けるためには、エンジニアが自ら高品質なソースコードを記述することが望ましいです。場合によっては、部分的に作ったり、変数を指定したりする必要もあるでしょう。加えて、実装後は、人間によるコードレビューやテストが不可欠であり、ChatGPTとの連携による自動化はあくまで補助的な役割に留めるべきです。実行フェーズ開発したアプリが実行環境にデプロイされた後は、実際にアプリを起動して動作確認を行います。この段階では、設計通りに機能するかどうかを検証し、もし不具合があれば修正します。例えば、異なるプラットフォームでプログラムを実行するには、専用に再コンパイルする必要があるなどです。このように、開発から実行までの一連の流れを通じて、ChatGPTは開発の効率化を図ることができますが、最終的な品質保証は人間の手に委ねられるのです。【機能開発編】ChatGPTで実際にアプリの一部を開発してみたでは、実際にChatGPTを使ってアプリの一部を開発してみます。基本は、永遠と対話の繰り返しです。ChatGPTにコードを作成させるエラーもChatGPTに修正させるここでは例として、ChatGPT PlusのGPT-4を使って、グラフを生成するPythonコードを書かせます。必要なライブラリは事前にインストールするか、ChatGPTに聞いて用意するだけで構いません。また、デプロイに関しては、環境によって異なることから割愛します。ChatGPTにコードを作成させるまず、ChatGPTにコードを作成させるためには、動作環境と要件を明確に入力する必要があります。プロンプトは、以下を使用します。# 指示:あなたは、優れたコーダーです。あなたのタスクは、指定された条件を満たしたコードを作成することです。# 条件:- Pythonを使う- VSCodeで動作させる- ダミーデータの円グラフを作る- 凡例は日本語にする# 出力:結果は、以下のとおりでした。import matplotlib.pyplot as plt# ダミーデータを設定labels = ['りんご', 'バナナ', 'オレンジ', 'グレープ']sizes = [215, 130, 245, 210]# 円グラフの色colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']# 円グラフを作成fig1, ax1 = plt.subplots()ax1.pie(sizes, colors=colors, labels=labels, autopct='%1.1f%%', startangle=90)# 円グラフが完全な円になるように等比率で表示ax1.axis('equal') # タイトルを設定plt.title('フルーツの消費量')# 凡例を表示plt.legend()# グラフを表示plt.show()見事な円グラフが生成されましたが、文字化けを起こしています。エラーもChatGPTに修正させる次に、ChatGPTが書いたコードのエラーを解消するようにChatGPTに修正を依頼します。凡例が日本語ではないため、以下のパスにある日本語のフォントを利用するように変更してください。また、ラベルやパーセンテージも同様のフォントを使ってください。パス:xxxxxx/xxxxxx/xxxxx最終的に、ChatGPTは指示された通りにコードを生成することができました。何度もやりとりは必要ですが、この手順で特定の関数を有したアプリの一部も開発できます。import matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties# フォントプロパティを設定font_path = ''jp_font = FontProperties(fname=font_path)# ダミーデータを設定labels = ['りんご', 'バナナ', 'オレンジ', 'グレープ']sizes = [215, 130, 245, 210]# 円グラフの色colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']# 円グラフを作成fig1, ax1 = plt.subplots()wedges, texts, autotexts = ax1.pie(sizes, colors=colors, labels=labels, autopct='%1.1f%%', startangle=90, textprops={'fontproperties': jp_font})# 円グラフが完全な円になるように等比率で表示ax1.axis('equal') # タイトルを設定plt.title('フルーツの消費量', fontproperties=jp_font)# 凡例を表示(日本語フォントを使用)plt.legend(prop=jp_font)# グラフを表示plt.show()また、ChatGPTを使ってアプリを開発する際には、開発者側に動作だけではなく内容の整合性を判断する知見が求められます。結局は、ベースを作成して、そこから発展させたり、修正させたりするなどの使い方がメインになるでしょう。【チャットボット編】ChatGPTのAPIモデルで実際にアプリを作ってみた次に、ここからは実際にChatGPTのAPIモデルでチャットボットを作ってみます。今回の構築は、PythonおよびVSCodeを用いて、ターミナルでの対話までとします。デプロイを除き、基本的な手順は、以下のとおりです。OpenAIのライブラリをインストールするAPIキーを読み込む関数を作成する会話履歴を残すなお、冒頭でお伝えしたとおり、PythonにこだわらずNode.jsやRuby、GoからPHPに至るまでコード次第で動作します。Swiftにも対応していることから、Webアプリからモバイルアプリにも対応できるでしょう。さらに、Google Apps Scriptも活用すると、LINEbotまで作れます。OpenAIのライブラリをインストールするはじめに、OpenAIライブラリをインストールすることから始めます。コマンドプロンプト、Macの場合はターミナルを開き、以下のコマンドを実行してください。この際、必要に応じてAnacondaからターミナルを開くなど、適切にルートを変更してください。pip install openaiインストールが成功したら、コマンドプロンプトに表示されるメッセージで確認できます。APIキーを読み込む次に、VSCodeでmain.pyファイル(ファイル名は変更可能)を作成し、そこにChatGPT APIのコードを実装します。まず、ファイル内でOpenAIライブラリをインポートします。import openai続いて、取得したAPIキーを変数に設定します。このAPIキーは、OpenAIのサイトから取得できます。アカウントがない場合はこちら:【スマホ対応】ChatGPTのログイン方法を画像で簡単解説openai.api_key = 'YOUR_API_KEY'なお、今回はハードコーディングしています。ただし、セキュリティの観点から、環境変数に設定することをおすすめします。例えば、コマンドラインで登録して、以下のコードで呼び出してみましょう。コマンドラインで実行:export API_KEY='your_api_key_here'main.pyに記述:import osapi_key = os.getenv('API_KEY')他にも、.evnファイル(名前は自由に決めてください)を作成して記述し、呼びだす方法もあります。.envファイルの作成:API_KEY=your_api_key_herePythonでの読み込み:from dotenv import load_dotenvimport osload_dotenv() # .envファイルを読み込むapi_key = os.getenv('API_KEY')関数を作成するAPIキーを設定した後、ChatGPT APIを利用するための関数を作成します。ここでは、ChatCompletion.create 関数を使用し、チャットボットの役割や発言内容を定義します。response = openai.ChatCompletion.create( model='gpt-3.5-turbo', messages=[ {'role': 'system', 'content': 'あなたは学校の先生です。'}, {'role': 'user', 'content': 'おはようございます'}, ])この例では、システムの役割として「学校の先生」を指定し、ユーザーからの挨拶に「おはようございます」というメッセージを設定しています。チャットボットの性格や対応の仕方をカスタマイズすることも可能です。最後に、対話の結果を出力するためには、print 関数を使用します。response = response.choices[0].message['content'].strip()print(response)これで、基本的なチャットボットの構築が完了しました。デバッグや機能の追加、さらにはデプロイに向けての作業を進めていくことで、実用的なアプリケーションへと発展させることができるでしょう。会話履歴を残す先ほどのコードの場合、毎回コードを改変して使わなければなりません。そこで、inputをコマンドラインで伝えつつ、会話履歴を残して対話できる形にします。ユーザーからの入力を受け付ける。入力を基にOpenAIのAPIを呼び出してAIからのレスポンスを取得する。レスポンスを表示し、ユーザーの入力とAIのレスポンスを履歴に保存する。'exit'が入力されるまでこのプロセスを繰り返す。ここでは、履歴をJsonファイルに保存していますが、必要に応じてデータベースに保存することも可能です。また、会話履歴を一定量に保つために、一定の回数分だけメッセージを保持しています。完成形は、以下のとおりです。APIキーの部分は割愛していることに留意してください。import openaiimport jsondef save_history(message, file_path='conversation_history.json'): """会話履歴をファイルに追加する関数""" try: with open(file_path, 'r') as file: data = json.load(file) except FileNotFoundError: data = [] data.append(message) with open(file_path, 'w') as file: json.dump(data, file, ensure_ascii=False, indent=4)def chat_with_ai(): messages = [] file_path = 'conversation_history.json' print("会話を開始します。終了するには 'exit' と入力してください。") while True: user_input = input("あなた: ") if user_input.lower() == 'exit': print("会話を終了します。") break # ユーザーのメッセージを履歴に追加 user_message = {'role': 'user', 'content': user_input} messages.append(user_message) save_history(user_message, file_path) # OpenAI APIを呼び出してレスポンスを取得 response = openai.ChatCompletion.create( model='gpt-3.5-turbo', messages=messages ) # AIのレスポンスを表示 ai_response = response['choices'][0]['message']['content'] print("AI: " + ai_response) # AIのレスポンスを履歴に追加 assistant_message = {'role': 'assistant', 'content': ai_response} messages.append(assistant_message) save_history(assistant_message, file_path)if __name__ == "__main__": chat_with_ai()ChatGPTを使ったアプリ開発で注意すべきポイントChatGPTを使ったアプリ開発で注意すべきポイントは、以下の2つです。シンプルな指示を出す答えを鵜呑みにしないシンプルな指示を出すChatGPTの生成結果においてはまだ完全ではなく、長文や複雑な感情を含む指示に対する理解力は限定的です。そのため、シンプルで明確な指示を出すことが求められます。例えば、アプリ開発において「ユーザーの入力に応じて、適切なレスポンスを生成する機能を作りたい」という指示を出す場合、このままではChatGPTにとっては抽象的すぎます。「部屋を片付けなさい」と一括りに指示を出すのではなく、「まずはおもちゃを箱に片付けて、次に本を棚に戻して…」と、具体的な行動を指示するイメージです。具体的で分解されたものであるほど、期待する結果を得ることができます。ChatGPTが出した答えを鵜呑みにしないChatGPTは、指示に基づいて自動的に文章やコードを生成しますが、その出力が必ずしも100%正確であるとは限りません。バグやミスが含まれることもありますし、時には予期しない結果を出すこともあります。そのため、ChatGPTの出力をそのまま鵜呑みにするのではなく、開発者自身がその正しさを確認することが必要です。あくまで参考の1つであり、最終的な品質は開発者自身が保証しましょう。【補足】システム開発におけるChatGPTのユースケース例システム開発におけるChatGPTのユースケース例を、以下の4つに分けて紹介します。コードの生成情報収集コードの添削デバッグコードの生成システム開発におけるChatGPTのユースケース例として、まずはコード生成の分野が挙げられます。ChatGPTは、開発者が特定の命令文を与えることで、PythonやJavaScriptといった主要なプログラミング言語でのコード生成を行うことができます。また、C言語やJava、Swift、Kotlin、R言語、MATLABなど、多様なプログラミング言語に対応している点も大きなメリットです。コード生成をChatGPTに部分的に任せることで、開発者は時間を節約し、作業効率を向上させることができます。情報収集次に、ChatGPTはプログラミング言語やコードに関する情報収集ツールとしても有効です。例えば、新しいプログラムの構造を理解する際に、ChatGPTに説明を求めることで、解読にかかる時間を大幅に短縮できます。特定のプログラミング言語やコードに関連する情報を迅速に取得することが可能で、これにより学習や研究に費やす時間の削減も期待できます。具体的なデータ構成の実装方法に関する提案も得られるため、システム開発者にとって非常に心強い存在です。コードの添削さらに、コードの添削においてもChatGPTは役立ちます。開発者は、ChatGPTをコード添削ツールとして使用することで、バグの原因を速やかに特定し、解決策を見出すことができます。複雑なシステムであっても、バグを特定するのに数時間を費やすことがありますが、ChatGPTの利用により、このプロセスを大幅に短縮可能です。加えて、コードの潜在的な問題点を指摘し、改善提案を通じてコードの品質向上にも役立ちます。デバッグデバッグの補助ツールとしての利用も、ユースケースの一例です。ChatGPTは、コード内のエラーを迅速に特定し、適切な修正方法を提案する能力を有しています。デバッグにかかる時間を短縮し、複雑なエラーメッセージや解明が困難なバグに直面した際にも、迅速に問題解決を図ることができるのです。もちろん、エラーメッセージの解読においてもChatGPTは大いに役立ちます。初心者や駆け出しのエンジニアにとって、エラーメッセージの意味を正確に把握するのは難しいもの。この際に、ChatGPTを利用することで、その内容の理解と解決策の発見が効率的に行えます。また、エラーメッセージの背景にある知識を提供することで、開発者は自身のコーディングスキルを向上させ、プログラミングへの理解を深めることができるでしょう。まとめChatGPTは、アプリ開発初心者にとってもアクセスしやすいツールであり、その利用方法によっては効率的なアプリ開発が可能です。このAIは、大量のテキストデータから学習を行い、プログラミングコードの生成も行うことができるため、開発の補助として非常に有効です。しかし、生成されたコードが常に正確であるわけではないため、開発者はその正確性を自ら確認し、必要に応じて修正を加える必要があります。そのため、ChatGPTを賢く活用し、開発の可能性を広げる使い方が良いでしょう。ChatGPT開発に関するFAQChatGPTでどのような開発ができますか?ChatGPTは、テキストによる回答生成だけでなく、画像作成や文章の構成・校閲、さらには翻訳やデータの分析・解析など、多岐にわたる開発が可能です。また、多言語対応の翻訳機能や、大量のデータから有用な情報を抽出・分析するデータ解析機能など、ChatGPTのAI技術を活用した開発は、ビジネスを大きく進化させる可能性を秘めています。ChatGPTは初心者でも使えますか?ChatGPTは、初心者でも十分に使うことができます。また、APIを使えば、自分のアプリケーションにChatGPTの機能を組み込むことも可能です。まったくの初心者がいきなりChatGPTを使ってアプリを開発するのは難しいかもしれませんが、基本的なプログラミングスキルを身につけていれば、ChatGPTを使って新たなアプリを作り出すことが可能です。ChatGPTのようなアプリケーションを作るにはどのくらいの開発費用が想定されますか?ChatGPTのようなアプリケーションを作るための開発費用は、そのアプリの要件によりますが、一般的には10万ドル~50万ドルほどの費用が見込まれます。日本円にすると1,500万円以上となり、開発期間も数~半年ほど必要になることが多いです。そのため、開発費用と時間を考慮した上で、ChatGPTを活用したアプリケーション開発を検討することをおすすめします。ChatGPTの開発元・開発企業(会社)はどこですか?ChatGPTの開発元は、AI技術を開発・提供している企業「OpenAI」です。OpenAIは、AIの安全性と利益を全人類に広めることを目指して設立された非営利企業で、その中でも特に自然言語処理技術の開発に力を入れています。チャットGPTはその危険性から一部の国で禁止されていますか?ChatGPT自体が禁止されている国は、実際に存在します。具体的には、中国やロシア、アフリカの一部、イランや香港では使用が禁止されています。ChatGPTの開発者は日本人女性ですか?ChatGPTの開発者については、ネット上に様々な情報が散見されますが、その中に日本人女性であるという情報はありません。また、「美人」というキーワードも見当たりません。ChatGPTの開発者は、AI技術を開発・提供している企業「OpenAI」の研究者たちで、その中には様々な国籍や性別の人々が含まれています。そのため、ChatGPTの開発者が日本人女性であるという情報は、現時点では確認できません。