「個人開発したいけど、時間がない」
「帰宅後は疲れて何もできない…」
「週末に集中したいけど、それすら無理…」
そんな人にこそ読んでほしい内容です。
実際に私も平日は仕事で忙しく、土日も家族の用事などがあります。お子さんがいる方はさらに時間の確保が大変だと思いますが、そんな中でもまとまった開発時間を取るのは難しい状況でした。平日の夜は疲れ果てて何もできない状況でした。
でも、どうしても作りたいアプリがあった。そこで編み出したのが 「昼休み駆動開発」 です。
🧭 TL;DR
- 昼休みと通勤時間だけでFlutterアプリをリリース
- コーディングの9割をAIに任せた
- 使用ツールは
OpenHands
,Cursor
,OpenAI
- 開発期間:3週間(実働時間は累計8時間程度)
- まとまった時間がなくても、やり方次第でリリースまでいける
背景:時間がない。でも作りたい。
私の生活リズム
- 朝 家事、準備
- 日中 仕事(通勤時間含む)
- 夜 帰宅後は家事、その他用事
- 深夜 疲れて就寝
土日も用事などがあり、お子さんがいる方はさらに時間の確保が大変だと思います。そんな中で、まとまった開発時間を取るのは難しい状況でした。平日の夜は疲れ果てて何もできない状況でした。
💡 きっかけ:アイデアが降ってきた
ある日、通勤中にふと思いついたアプリのアイデア。
「これ、おもしろそうだな...でも作る時間がない」
そんな時、最近話題のAI開発ツールの存在を思い出しました。
「まとまった時間が取れないなら、AIと分担すればいいじゃないか」
こうして、昼休み駆動開発が始まりました。
📱 作ったアプリ:「ふぉとぱっく!」
コンセプト:ガチャ形式で思い出を引けるアプリ
- メインコンセプト:最近見返していない古い写真に光を当てる
- メイン機能:ガチャ・カードゲームのパックを回して写真をランダム表示
- サブ機能:思い出の写真をレアカードとして振り返る、コレクション機能
- 狙い:身近な素材でソシャゲのような興奮体験を提供
- 展望:自分の端末だけじゃなくて友人との共同パックなどや、猫写真、推しの写真などのコンセプトパック
なぜこのアプリを作ったか
- 自分の課題:数千枚の写真が放置されている
- 技術的に適度:複雑すぎず、簡単すぎない
- MVPが明確:ガチャ機能だけでもリリース可能
🛠️ 使用ツール・技術スタック
ツール | 役割 | 使用場面 | 料金 |
---|---|---|---|
OpenHands | スマホからAIにPR作成を指示 | 通勤中・昼休み・メイン実装 | 従量課金 |
Cursor | AIエディタでコード修正・補完 | 帰宅後の短時間 | 無料プラン |
OpenAI | コード生成 / 画像生成 / テキスト生成 | 全工程 | 無料プラン |
GitHub | ソースコード管理・CI/CD | 全工程 | 無料 |
ツール選定の理由
OpenHandsを選んだ理由:
- スマホからでも操作可能
- GitHubと連携してPR作成まで自動化
- 日本語での指示が可能
-
Devinより圧倒的に安い:Devinは月額$500と高額だったため、従量課金のOpenHandsを選択(結果的に3週間で約1,000円)
- この前 $20 のプランも出ましたがまだ試せていません、、、
Cursorを選んだ理由:
- VS Codeベースで使いやすい
- AIによるコード補完が優秀
- リアルタイムでの修正提案
💰 実際にかかった費用
開発費用の詳細
項目 | 費用 | 備考 |
---|---|---|
OpenHands | 約1,500円 | 従量課金(モデルはGeminiメイン・サブでClaude) |
Cursor | 無料 | メイン実装はしてないので無料プランの範囲内 |
OpenAI | 無料 | 無料プランの範囲内 |
GitHub | 無料 | プライベートリポジトリ |
Apple Developer | $99/年 | App Store公開に必要 |
合計 | 約13,000円 | 初期費用として |
💡 費用を抑えるポイント
- OpenAI無料プラン活用:月間制限内で十分対応可能
- OpenHands従量課金:必要な分だけ使用で無駄なし
- Cursor 1ヶ月のみ:開発完了後は解約可能
- GitHub無料プラン:個人開発なら十分
継続費用はほぼゼロで、一度リリースすれば追加コストはApple Developerの年会費のみです。
🚀 開発の全体像
Week 1: 基盤構築・設計フェーズ
📋 プロジェクト初期設定
空のFlutter環境を構築しGitHubリポジトリを作成してCI設定も完了。
📝 READMEの詳細設計
通勤中にスマホで以下を記述(約30分):
- アプリ概要
- 実装したい必要最低限の機能
- 技術仕様
- AIへの指示ルール(命名規則、コメント、テストコード必須など)
🎯 なぜ最小限の機能に絞ったか
実は、ユーザー登録やクラウド同期、AIタグ付けなど、もっと多くの機能を考えていました。
しかし、あえて最小限に絞った理由:
- バックエンド不要:サーバー運用の手間とコストを回避
- 昼休み開発に最適:フロントエンドのみで短時間での動作確認が可能
- 早期リリース重視:核となる価値(ガチャ体験)に集中してMVPを実現
- コストの推測:サーバーを用意した場合、アクセス数が読めずどれほどのコストがかかるか不明
結果として、この判断が正解でした。シンプルな構成のおかげで3週間でのリリースが実現できました。
Week 2: 機能実装・UI改善フェーズ
⚙️ コア機能の実装
🕐 昼休みの作業フロー:
-
機能仕様の整理(5分)
- 前日の進捗確認
- 今日実装する機能の優先順位決定
-
OpenHandsへの指示(15分)
- 具体的な実装内容をチャット形式で指示
- 例:「写真をランダムに選択するガチャ機能を実装してください。Provider パターンを使用し、アニメーション付きで実装してください」
- コーディング規約やテスト要件は Readme に記載しておき、そこを読むように伝えればOK
-
AI作業の監視(10分)
- OpenHandsがコード生成中の進捗をスマホで確認
- 待つだけなのでご飯でも食べながら待つ
- 質問があれば回答
- 生成されたPRのビルド・UnitTestが落ちていたら直すよう指示
-
次回作業の準備(3分)
- 翌日の作業予定を簡単に整理
🏠 帰宅後(寝る前など)の作業フロー:
-
PRレビュー(10分)
- 生成されたコードの品質チェック
- 既存コードとの整合性確認
- テストコードの妥当性検証
-
動作確認(10分)
- 実機での動作テスト
- UI/UXの確認
- パフォーマンスの簡易チェック
-
微調整(5分)
- Cursorを使用した細かな修正
- コメントの追加や変数名の調整
- エラーハンドリングの改善
-
マージ・次回準備(5分)
- 問題なければPRをマージ
- 翌日の昼休み作業内容を決定
❌ よくないPRが生成された場合の対処:
- 品質が低い、要求と異なる実装の場合、簡単に治せないようならPRをクローズ
- 翌日に違うモデルで再生成
🧪 テストカバレッジの確保:
- 各機能に対してユニットテストを自動生成
- ウィジェットテストも並行して作成
- カバレッジ目標:80%以上(最終的に85%達成)
Week 3: 最適化・リリース準備フェーズ
⚡ パフォーマンス最適化
写真数が多いと画面描画が重い問題を発見。不要な再描画の削減やアニメーションで誤魔化すなどを指示。
🎨 アプリアイコン・素材生成
OpenAI でアプリ用のモダンでミニマルなアイコンを生成。ストア用スクリーンショット背景も同時に作成。
📝 ストア説明文の生成
ChatGPTにREADMEを基にApp Store用の説明文を作成依頼。
🐛 最終バグ修正
発見されたバグを個別にAIに修正依頼。
📊 開発結果:実働ほぼゼロでリリース成功!
時間配分の詳細
作業内容 | 時間 | 場所 |
---|---|---|
企画・設計 | 2時間 | 通勤中・昼休み |
AI指示・レビュー | 4時間 | 昼休み |
修正・調整 | 1.5時間 | 帰宅後 |
テスト・デバッグ | 30分 | 帰宅後 |
リリース作業 | 1時間 | 休日 |
合計 | 9時間 | 3週間 |
📈 開発効率の比較
従来の開発方法(推定):
- 設計:8時間
- 実装:40時間
- テスト:8時間
- デバッグ:8時間
- リリース:4時間
- 合計:68時間
今回の方法:
- 実働:9時間(87%削減)
- AI作業:推定50時間相当
📱 実際のアプリ
この方法で作った「ふぉとぱっく!」は現在App Storeで公開中です!
📱 ダウンロードリンク
ぜひ使ってみて、あなたの写真を「神引き」しましょう!
🙌 最後に
必要なのは:
- ✅ スマートフォン
- ✅ アイデア(どんなに小さくてもOK)
- ✅ 昼休みなどの短時間
- ✅ 少しの好奇心
あなたのアイデアを、AIと一緒に形にしてみませんか?
この記事が「役立ちそう」「真似したい」と思ったら、LGTMしてもらえると嬉しいです!
そして、みなさんの 空き時間開発 の工夫も、ぜひ教えてください 🙌