Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIとアプリ開発

Avatar for pawn pawn
August 24, 2025
19

 AIとアプリ開発

• LT内容:
◦ 背景(アプリケーションの概要)
◦ AIを最大限活用したアプリケーション開発(仕様決定、モック作成、アプリケーション作成)
◦ 各工程で使用したツールの所感と課題感
背景
• 提案段階での精度に対するハードル上昇: これまで画像やFigmaなどのツールで見た目の提案を行っていましたが、HTMLなどの本格的な開発は実際にプロジェクトが始まってからでした。しかし、提案時にプロトタイプが求められるようになり、提案と実際のずれを少なくし、提案作業の効率化が必要とされています。
• 現実のプロダクトでの実践の難しさ: 直近の開発が数ヶ月かかる大規模なもので、途中でAIを試すことができませんでした。また、画面の変更よりも裏側の仕組みの変更が主だったため、AIの適用が難しかったとされています。
• 個人開発での試行: これらの背景から、個人開発でAI活用を試すことになりました。
個人開発の条件
個人開発でAIを活用する際の条件は以下の通りです。
• 画面など、提案を想定できるものであること。
• 詳しくないサービスも組み合わせること。
• 外部公開を前提とし、複数人で使用されるサービスであること。
• アプリの中にAIを組み込むこと。
アプリケーションの概要
• 内容: 問題集作成および公開用アプリケーションです。問題作成、時間制限付きのテスト、結果確認などの機能が含まれます。
• 特徴:
◦ ユーザーごとの結果を出し分けることができます。
◦ インフラは全てAWS上に構築されています。
◦ 問題作成部分にAIを使用しています。
• 開発理由: 資格試験の勉強中に模擬テストが少なく、問題集を周回すると問題文と解答を覚えてしまうため、ランダムで出題してほしいというニーズがありました。また、問題を作る部分はこれまで汎用的に作りにくいとされていましたが、Vtuberの配信でAIが質問を推理し判断するゲームからヒントを得て、問題と解答の判断ができると考えられました。
• サンプル: https://d1debotmqrg026.cloudfront.net/qualification-aimon
• 構成: CloudFront、S3、API Gateway、Lambda、DynamoDB、Bedrockなどが利用されています。
• ソースコード: https://github.com/pawn-4-git/ai-mon
AIを活用したアプリケーション開発工程
1. 仕様決定
◦ AIとの壁打ち: 必要機能について、Cline+GeminiまたはOpenAIを用いてAIと壁打ちを行います。
◦ ファイルの読み込みと提案: 仕様をファイルにまとめ、そのファイル内容をAIに読み込ませて提案を得ることで、変更したい内容を確認します。
2. モック作成
◦ テキストからのHTML作成: Cline+GeminiまたはOpenAIを用いて、テキストからHTMLを作成します。
◦ 修正と確認: 作成されたHTMLについて、意図しない部分の確認と修正を行います。
3. アプリケーション作成
◦ HTMLと仕様からのアプリ作成: DevinやGeminiCLI+Gemini Code Assistなどのツールを使用し、HTMLと仕様に基づいてアプリケーションを作成します。
◦ 技術スタック: Next.js、Lambdaなどが利用されました。
◦ 開発期間: 2023年7月4日から8月23日にかけて開発が行われました。
◦ コミット数: コミット数843回、プルリクエスト数357回(GithubActionを動かすために数が多い)でした。
各ツールの所感・課題感
• 前提: ツールにはそれぞれ特色があり、現状では一つのツールで全てを解決することは難しいという認識です。スピードやコストなどの比較が重要です。
• スピード(応答までの時間)
◦ Cline > Gemini > GeminiCLI > GeminiCodeAssist > Devin
◦ 案の検討や途中の方向転換、ゴールへの道筋を決める際には、応答までの時間が短いツールが良いとされています。
• 複数のファイルを踏まえたアプリ作成
◦ Devin > GeminiCLI >> Cline
◦ 全体を見たアプリケーションの作成はDevinが強力です。
• コスト
◦ Devin >>>> GeminiCLI, Cline > Gemini Code Assist
◦ コスト面ではDevinが圧倒的に高く、Geminiはある程度無料枠があります。
• 出力の精度
◦ 全てのツールで指示した形に近い形で出力されますが、どこかにずれが出てくるため、出力内容は必ず確認が必要です。
◦ 具体的なずれの例:
▪ 文章: 誤字、文字化け、文言の統一性が取れない。
▪ 表示内容: ヘッダーの幅が違ったり、表示のずれが生じる。
• 負荷、セキュリティ
◦ 負荷への考慮: ツールは基本的に負荷について考慮しません。指示内容に従うため、APIのリクエスト削減などが行われないことがあります。
▪ 実際、アプリを動かした際に通常の30倍程度のAPIが呼ばれており、直近2週間で必要なAPIの整理が行われました。
◦ セキュリティへの考慮: ツールはセキュリティも考慮しないため、何が必要なのかを知っておかないと意図しない脆弱性が生じる可能性があります。
▪ S3のブロック解除を促されたり、API Gatewayのリクエストが制限されなかったりといった例が挙げられています。
まとめ
• ツールの知識が重要: どのようなツールがあるのかを知っておくことが重要です。
• ツールの特性理解: 近年のツールはできることが増えている反面、応答までの時間が長くなっている傾向があります。そのため、任せておけるタスクと繰り返すタスクでツールを使い分けることが効果的です。
• セキュリティと負荷の知識: セキュリティや負荷に対する知識は今後も非常に重要になります。
• 複数ツールでの開発・レビュー: 一人で開発する際は、複数ツールを組み合わせて実装やレビューを行うことが有用です(口調を変えるのも良い方法とされています)

Avatar for pawn

pawn

August 24, 2025
Tweet

Transcript