果物狩りナビアプリ「もぎたび」をリリースするまでの全記録【SwiftUI + 1,396農園データ】

目次(16)
はじめに
2025年、果物狩りに行こうとしてスマホで検索したとき、思ったのは——「探しにくい」。
Googleマップで「いちご狩り 近く」と調べると、農家の公式サイトやまとめブログがバラバラに出てくる。地図で一覧できない。品種がわからない。費用がわからない。
「これ、アプリにしたら便利じゃないか?」
そこから「もぎたび」の開発が始まりました。
この記事では、アイデアの着想からv1.2のApp Storeリリースまでの全工程を書きます。使った技術・躓いたポイント・App Storeリジェクトの対応まで、全部公開します。
アプリの概要
もぎたび(FruitNavi)は、全国の果物狩り農園を探せるiOSナビアプリです。
主なコンセプト
地図から農園を探せる
果物の種類・旬の時期で絞り込める
費用シミュレーター(交通費 + 入園料)で事前に予算が立てられる
品種の味チャートで「どの品種にしようか」が選べる
対応果物(16種類)
いちご・さくらんぼ・ブルーベリー・もも・ぶどう・梨・りんご・みかん・キウイ・メロン・スイカ・柿・いちじく・プルーン・びわ・マンゴー
農園データ数
1,396件(全件実在確認済み)
技術スタック
| 項目 | 内容 |
|---|---|
| 言語 | Swift |
| UIフレームワーク | SwiftUI |
| アーキテクチャ | MVVM |
| 地図 | MapKit(MKMapView、クラスタリング) |
| データ | ローカルJSON(farms_real.json) |
| 広告 | Google AdMob(バナー + インタースティシャル) |
| 課金 | StoreKit 2(IAP: 広告削除 ¥300) |
| 通知 | UserNotifications |
AI支援は Claude Code を活用。設計・実装・デバッグをすべてペアプロ形式で進めました。
実装した全機能
1. ホーム画面
月別旬フルーツ表示:今月旬の果物をカード形式で表示
おすすめ農園:評価・距離・営業状況を加味したランキング
近くの農園5件:位置情報取得 → 半径内を自動ソート
2. マップ画面
全1,396農園をピン表示
クラスタリング:ズームアウト時に自動でグループ化(パフォーマンス対策)
フルーツフィルター:チップUI で絞り込み
農園名・都道府県でのテキスト検索
3. 農園詳細画面
農園名・住所・電話番号・説明文
取り扱い品種一覧・旬の月
タグ表示(家族向け・ペット可・直売所あり 等)
クチコミ投稿・閲覧
Apple Maps / Google Maps への直接遷移ボタン
5回閲覧ごとにインタースティシャル広告(収益化ポイント)
4. レコメンド画面
条件検索(果物・時期・都道府県・価格帯)
品種から探す:食べたい品種を選んで農園を逆引き
今日営業中フィルター(曜日・月情報を照合)
5. 費用シミュレーター
出発都道府県・交通手段(車/電車/バス)・人数を入力
交通費 + 農園入園料の概算を自動計算
「予算に収まる農園を探す」ボタンでそのままレコメンドへ
6. 品種チャート
甘さ × 酸味の二軸レーダーチャート
全16種類の果物・主要品種に対応
「どの品種が自分好みか」を視覚で確認
7. お気に入り管理
3つのリスト管理:
❤️ お気に入り
🔖 気になる
✅ 行ったことある
UserDefaults に保存。アプリ再起動後も維持。
8. オンボーディング・通知・ATT
初回起動時のオンボーディング(スワイプ形式・5ページ)
旬の時期が来たら通知
【有料】もぎたびで実際に使った「良いプロンプト」全6原則
悪い例との違いを意識しながら読むと、構造がより明確に理解できます。