はじめに
本連載の第1回では、AIであるGitHub Copilotと共に実際にアプリ開発を進めてみて感じた「協働スタイル」や、AIと開発することの新鮮さ・驚きについてご紹介します。
※本文中のスクリプトやGitHub Copilotの回答は実際の開発時のものを抜粋して記載していますが、このまま書いても同じ回答が得られるとは限りません。ご了承ください。
※[開発者]はWebアプリの開発経験は豊富ですが、Flutterによるモバイルアプリ開発は初めての開発者です。
※本連載はAI利用の実体験にフォーカスしているため、Flutterなど技術的な詳細説明は省略しています。
どんなアプリを作ったか(TravelPassport概要)

今回、当社にて開発した「TravelPassport」は、空港で確認するeチケットや入国時の事前申請QRコード、ホテルの予約確認メールなど、必要なときにすぐスマホで提示できることを目的としたモバイルアプリです。
当初はシンプルなチケット管理だけを想定していましたが、旅行やイベント関連のチケット管理、出張や旅先で使える連絡先や為替を考慮した料金管理など、機能追加を重ねて現在の形になりました。
企画~最初のiOSリリースまでは約5ヶ月、実際の開発期間は約3ヶ月です。
開発言語はFlutter、対象はiOS/Android、そして開発用AIパートナーとしてGitHub Copilotを全面的に活用しました。
「AIと一緒に開発」とは?基本的なワークフロー
ここでは、実際のやりとり例を交えつつ、開発開始時の戸惑いやCopilotとのファーストコンタクト、学びの流れを紹介します
(Flutterで開発、、まずは何からやればいいんだろう。。開発環境を作らないとな、とりあえず、AIに聞いちゃおう)
flutter [Enter]
(あ、、やべ、[Enter]押したら送信になっちゃうのか。改行は、、[Shift] + [Enter]ね、、ま、とりあえず反応を見るか。)


Flutterは、Googleが開発したオープンソースのUIソフトウェア開発キット(SDK)です。Flutterを使用すると、単一のコードベースからiOS、Android、Web、デスクトップアプリケーションを作成できます。
--- Flutterプロジェクトの作成手順や参照サイト、具体的なコマンドを紹介 ---
(お、、買ったFlutter開発の本にも書いてあるけど、これは便利だ。えーっと、、それじゃぁ、実際のコードはどんな風に書けばよいかな)
flutterでiphoneアプリを開発したいです。このアプリは、旅行時にチケットや入国手続き用の事前申請書類、ホテルの予約メール、パスポートなどを保存しておき、すぐに表示できるものです。その保存された画像を一覧に表示して参照画面を表示するというものになります。まずは、どこから手をつければ良いですか?新しいFlutterプロジェクトは作成できました。[Enter]


まず、Flutterでアプリを開発するための環境を整え、データを保存する基本的なアプリを作成する手順を説明します。
1.開発環境の構築
--- 開発環境の構築手順を箇条書きで説明など ---
4.画像の保存と表示 lib/main.dartファイルを以下のように編集します。
--- ソースコード ---
5.アプリの実行
--- アプリの実行手順の案内 ---
(お、ソースコード、、出てきた。[エディターで適用します。]ボタンをポチっとすると、、おー、main.dartが書き換わっていく~。おもしれー。"flutter run"動いた!こんな感じで書くのか、、)

- 最初はCopilotの使い方も分からず、「とにかく質問してみる」ところからスタートしました。最初の一歩を一緒に踏み出してくれる存在です。
- 実装したい機能や方向性をCopilotに相談、要件を整理し箇条書きで伝え、ユーザー体験も一緒に検討しました。
- 実装方針は、いきなりコードではなく、まずアプローチを確認してから提案してもらうことで、既存機能の破壊や想定外の実装を防げました。
- 提案されたコードは開発者が必ずレビュー・修正・補足。不明点はCopilotに再質問しながら進めます。
- 複数案を引き出し、メリデメも整理してもらうことで、開発者自身の頭の中も整理されます。
- 品質改善や障害対応もエラーメッセージを貼り付けて分析を依頼することで効率化できました。
Copilotを「技術力の高い優秀な若手エンジニア」と捉え、相談・指示を繰り返しながら開発を進めるのがポイントです。
AIを使った開発のメリット・得意分野
設計やフォルダ構成など、基本的な質問も遠慮なくでき、規約や設計方針のコピペで品質も担保できます。
(Flutterで開発するときの基本的な設計思想は、どの様に考えれば良いのだろう。libの下のフォルダ構成とか理想ってあるのかな、、)
flutterアプリ開発における一般的なフォルダ構成と、それぞれのフォルダにおける役割を教えてください。


1. lib ディレクトリ
Flutterアプリのメインコードを格納します。以下のサブディレクトリに分類します。
/lib/config
- アプリ全体で利用する定数・設定値・環境変数などを管理します。
/lib/models
- データモデルやエンティティ(例: Trip, Itinerary, User, File など)を定義します。
- APIやDBとのデータ変換ロジックもここに含めます。
--- 他のフォルダについても続けて説明 ---
- コーディング規約や設計方針をドキュメント化し、指示時にコピペすることで品質に一貫性が出ました。ただし、Copilotは過去の規約を忘れることがあるので、必要に応じて再コピペがおすすめです。
- “0→1”の新規開発はとにかく速い。「こんな機能も」と思ったら即依頼、実現可能性もすぐ分かります。
- 初歩的な質問や「こんなこと聞いても大丈夫?」という内容も気軽にでき、基礎力アップにもつながりました。
- サンプルコードやレビューも数十秒~数分で返ってくるなど、圧倒的なスピード感。
- 業務要件や壁にぶつかった時も、Copilotは気軽な“相談相手”になってくれます。言い回しを気にせずどんどん聞いてみましょう。
GitHub Copilotは「技術力の高い優秀な若手エンジニア」
Copilotは「何でも知っている先生」ではなく「技術力のある若手部下(後輩)」として使いこなすのがコツです。
(機能修正を依頼するのは簡単なんだけど、今までの設計思想を崩されると嫌だからなぁ。。)
リスト表示とタイル表示の別ファイルをウィジットとして呼び出したいと思います。ソースコードの修正は、後回しで良いので、まずは、実装方針について検討をお願いします。繰り返しますが、ソースコードの修正は今は不要です。


以下の実装方針で進めることを提案します。
1. 表示切替の状態管理
状態管理:StatusNotifierまたはStatusProviderを使用して、現在の表示モード(タイル表示 or リスト表示)を管理します。
切り替えボタン:ヘッダー下にタイル表示アイコンとリスト表示アイコンを設置し、選択されたモードに応じて状態を更新します。
2. 表示ごとのウィジットの分離
--- 省略 ---
5. 共通機能の維持
編集・削除機能:イベントの編集や削除機能は、どちらの表示モードでも維持します。
--- 省略 ---
(方針は大丈夫そうだな、共通機能も考慮されているし。。)
整理いただいた方針にて問題ありません。それでは、具体的な実装ステップについて検討をお願いします。ソースコードの変更は現在のscreenへの影響が出ないように、まずは…
--- 省略 ---


その方針で問題ありません。以下の具体的な実装ステップを提案します。
ステップ1:タイル表示用のウィジットの作成
--- 省略 ---
- 技術力はあるが全体要件を把握していないメンバーへの指示、と考えると使いこなしやすいです。
- 指示が曖昧だと意図と外れた提案になることもあるので要注意です。
- 明確・簡潔な指示や目的・背景を伝えることで、Copilotはより的確な提案をしてくれます。
- 「間違いもあるが、まずは信じて進める」ことで、開発スピードが数倍になります。
※Copilotの“自信満々な間違い”に気づかず進むこともあるため、まずは動かしてみて検証する姿勢が重要です。
進化スピードと「頻繁な会話」の重要性
(あれ、、今日もVS CodeのGitHub Copilot拡張機能の再起動が点滅している。毎日の様に更新されているのか。)

- CopilotやAIエンジンは日々進化し、機能や精度もどんどん向上しています。
例:当初は全体ソースの修正案が返ってきていたが、途中から“修正ポイントのみ”の提案になり、回答時間も短縮されました。
- 週1回よりも「毎日話しかけてみる」ことで、AIの能力やクセもつかみやすくなります。
例:Gemini系はこだわりが強い、GPT系は素直、などエンジンごとの違いも日々体感できます。
- 同じスレッドで会話を続けることで、前後の文脈を踏まえた回答がもらえるので、こまめなコミュニケーションが重要です。
おわりに
AIと協働して開発を進めることは、単なる効率化以上に“新しい開発体験”そのものです。
「AIだから」と身構えず、リモート開発の延長線上と捉えて、まずは実践してみることをおすすめします。
特にコロナ禍にリモート開発のマネジメントを経験された方や、オフショア開発でブリッジエンジニアを経験された方には、非常に親和性の高い開発手法だと感じます。
最後までお読みいただきありがとうございました。
次回は、AIへの指示出しのコツやプロンプト設計のポイントについて詳しく掘り下げていきます。
※本記事は当社による2025年のモバイルアプリ開発実体験を元に記載しています。日々、GitHub CopilotおよびAIエンジンは進化しているため、最新の状況とは異なる場合もあります。もっと良い活用方法があるかもしれませんが、あくまで一つの事例としてお読みいただけますと幸いです。
TravelPassportアプリは以下からダウンロードできます。