叙事旅行探索 App — Plot Web 平台的原生移动伴侣
SwiftUI + SwiftData · iOS 17+ · Swift Package Manager · v1.1.0
- 🔍 AI 搜索 — 自然语言 POI 搜索,精确/模糊意图自动分流 + 搜索历史
- 📖 攻略百科 — AI 生成百科全书级游玩攻略,支持离线缓存 + 分享
- 🗺️ 地图探索 — MapKit 标注 + 行程过滤 + 叙事滤镜
- 📅 行程管理 — 与 Web 端同步,今日时间线 + 实时导航 + iOS 端创建行程
- 🏷️ POI 分类 — 8 大分类自动推断 + 横向标签栏筛选
- ⏰ 时间排序 — 按预定时间自动排序 + DatePicker 时间选择器
- 📍 签到笔记 — GPS 签到 + 现场笔记 + 照片记录
- 📸 拍照识别 — AI 多模态识别景点/建筑/美食 + 4种解读风格
- 🍽️ 菜单分析 — 拍照翻译菜单,口味/原料/过敏原/美食故事
- 🌐 实时翻译 — 10语言翻译 + 发音 + 文化贴士
- 🌤️ 天气感知 — Open-Meteo 实时天气 + 3日预报 + 旅行建议
- 💡 到达提醒 — POI 地理围栏检测 + 本地通知
- 🔖 旅行名片 — AI 生成旅行卡片 + 分享/保存
- 📕 小红书生成 — AI 生成旅行笔记内容
- ⌚ Apple 集成 — Siri 快捷指令 + Home Screen Widget
- 📡 离线模式 — 攻略缓存 + 手动离线切换
- 🌐 多语言 — 中心化 L10n 枚举 (80+ 字符串)
⚠️ 错误体验 — ErrorBanner Retry + NetworkMonitor 离线横幅
# 生成 Xcode 项目
cd PlotIOS && xcodegen generate
# 构建
xcodebuild build -scheme PlotIOS -destination 'platform=iOS Simulator,name=iPhone 16'PlotIOS/
├── App/ # PlotApp + RootView (5 Tabs)
├── Models/ # APIModels + PersistenceModels + POICategory
├── Services/ # 16 个服务
│ ├── APIClient, AuthService, SyncService
│ ├── LocationService, JourneyService
│ ├── PhotoStorageService, WeatherService
│ ├── POIArrivalDetector, OfflineCacheService
│ ├── XiaohongshuService
│ └── AudioRecorderService, SiriIntents...
├── ViewModels/ # ExploreViewModel
├── Views/
│ ├── Auth/ # LoginView
│ ├── Components/ # POICard, AIChatView, QuickRecordSheet
│ │ # TranslationView, MenuAnalysisView
│ │ # PhotoRecognitionView, NearbyDiscoveryView
│ │ # TravelCardView, TripNarrativeView
│ │ # SavedPOIPickerSheet, AddToTripSheet
│ │ # DashboardView, XiaohongshuGeneratorView
│ ├── Explore/ # ExploreTab, NearbyView, DiscoveryView
│ ├── Favorites/ # FavoritesTab
│ ├── Guide/ # GuideView (阅读进度+分享)
│ ├── Map/ # POIMapView (行程过滤)
│ ├── POI/ # POIDetailView
│ ├── Profile/ # ProfileTab, TravelStatsView
│ ├── Trips/ # TripsTab, CreateTripSheet
│ └── Widgets/ # PlotWidgets
└── Extensions/ # DesignSystem, Localization, PlatformCompat
直连 Plot Server:
- 探索:
POST /api/discovery/search,/api/poi/guide - 行程:
/api/trip/plans,/api/trip/sync - AI 旅途:
/api/journey/ask,/api/journey/nearby,/api/journey/recognize - 翻译:
/api/journey/translate, 天气:/api/journey/weather - 菜单:
/api/journey/menu-analyze - 小红书:
/api/gemini/proxy(content generation)