画面カタログ (全32画面 = 基本25 + サブ7) Screen catalog (32 screens = 25 base + 7 sub)
モバイルアプリに存在する全画面の一覧です。分類・目的・主要UI・ユーザー操作・ 呼び出される API を記載しています。太字エントリには詳細カードを下部に添付しています。 画面設計の一次情報源は Figma です(Parky | Mobile app を開く ↗)。 本書は仕様+実装観点の補完ドキュメントです。
A complete inventory of every screen in the mobile app — with category, purpose, key UI elements, user actions, and the APIs each screen calls. Selected screens have detailed cards underneath. Figma is the source of truth for visual design (open "Parky | Mobile app" ↗). This document complements it from a spec and implementation perspective.
GET /v1/mobile/views/home-feed など views 系を 1 回叩いて ViewEnvelope
(data + ui_config + navigation + validation + states + fallback_behavior + meta)を受け取り、
ボタン操作は POST /v1/mobile/actions/sessions/start など actions 系(ActionEnvelope)で行います。
画面 × API の全網羅は 画面 × API マップを参照。
Each screen fires one views call (e.g. GET /v1/mobile/views/home-feed) to receive a
ViewEnvelope
(data + ui_config + navigation + validation + states + fallback_behavior + meta);
user operations go through actions (e.g. POST /v1/mobile/actions/sessions/start, ActionEnvelope).
See the Screen × API map for the full matrix.
画面マップ Screen map
flowchart LR Splash([スプラッシュ]) --> Onb([オンボーディング]) Splash --> Auth([認証]) Onb --> Auth Auth --> Home([ホーム/Map]) Home --> AISearch([AI検索]) AISearch --> Result([検索結果]) Home --> Filter([検索絞り込み]) Home --> Result Home --> Detail([駐車場詳細]) Result --> Detail Home --> PresetPicker([プリセット選択]) PresetPicker --> PresetManage([プリセット管理]) Detail --> ParkStart([駐車開始]) ParkStart --> ParkMgr([駐車管理]) ParkMgr --> ParkDetail([駐車詳細]) ParkDetail --> ParkEnd([駐車終了]) ParkEnd --> Review([レビュー投稿]) ParkEnd --> History([駐車履歴詳細]) Home --> Saved([Saved]) Home --> Notif([通知一覧]) Home --> Profile([プロフィール]) Profile --> EditProfile([プロフィール編集]) Profile --> Settings([設定]) Settings --> ChangePw([パスワード変更]) Settings --> Privacy([プライバシー設定]) Profile --> Premium([プレミアム]) Profile --> Support([サポート]) Profile --> Policy([ポリシー/規約]) Profile --> SearchHist([検索履歴]) Home --> Media([メディア一覧]) Media --> MediaDetail([メディア詳細]) Home --> Register([駐車場登録]) Auth --> Perm([権限リクエスト]) Home --> Err([エラー])
全画面一覧表 Full screen list
| # | 画面名Screen | 分類Category | 種別Type | 目的Purpose | 主要APIKey APIs |
|---|---|---|---|---|---|
| 01 | スプラッシュ画面Splash screen | 認証/初期化Auth/init | 全画面Full screen | 初期化・ログイン状態判定・必須マスター取得Bootstrap, session check, essential master data | GET /v1/mobile/views/boot, Supabase Auth getSession() |
| 02 | オンボーディング画面Onboarding | 認証Auth | 全画面Full screen | 初回利用者への価値訴求(3〜5枚のスライド)Value pitch for first-time users (3–5 slides) | — |
| 03 | 認証画面Auth screen | 認証Auth | 全画面Full screen | サインイン / サインアップ / OTP / PW再設定Sign-in / sign-up / OTP / password reset | GET /v1/mobile/views/auth-config, POST /v1/mobile/actions/auth/request-otp / POST /v1/mobile/actions/auth/verify-otp / POST /v1/mobile/actions/auth/sign-up / POST /v1/mobile/actions/auth/sign-out, Supabase Auth SDK(JWT 取得) |
| 04 | ホーム(Map)画面Home (Map) | 検索Search | 全画面Full screen | 地図上で駐車場を検索・閲覧、アプリのエントリーポイントMap-based parking search and the app's main entry point | GET /v1/mobile/views/home-feed, GET /v1/mobile/views/search-results, Mapbox |
| 05 | 検索絞り込み設定画面Search filter settings | 検索Search | モーダルModal | フィルタ・検索条件の詳細設定Detailed filter and search-criteria settings | —(ローカル状態のみ)— (local state only) |
| 06 | 検索結果一覧画面Search results list | 検索Search | タブ/ボトムシートTab / bottom sheet | 検索結果をリスト形式で表示Search results rendered as a list | GET /v1/mobile/views/search-results |
| 06a | AI検索画面AI search | 検索Search | 全画面Full screen | 自然言語で検索条件を入力 → LLM が構造化クエリに変換 → 検索実行。プリセット保存もここから。Enter search conditions in natural language; an LLM converts them to a structured query and runs the search. Users can also save presets from here. | GET /v1/mobile/views/ai-search, POST /v1/mobile/actions/ai-search/query |
| 06b | 検索プリセット選択シートSearch preset picker sheet | 検索Search | ボトムシートBottom sheet | 保存済み検索条件を素早く呼び出すピッカー。デフォルト表示あり。Quick picker for saved search conditions, with a default option. | GET /v1/mobile/views/search-presets |
| 06c | 検索プリセット管理画面Search preset management | 検索Search | 全画面Full screen | 検索条件プリセットの作成・編集・削除・デフォルト切替。16項目の構造化フォーム(user_search_presets テーブルに対応)。Create, edit, delete, and toggle default on search-condition presets. A 16-field structured form (matches user_search_presets). |
GET /v1/mobile/views/search-presets, POST /v1/mobile/actions/search-presets(create / :id/update / :id/delete / :id/set-default) |
| 07 | 駐車場詳細画面Parking lot detail | 検索Search | 全画面Full screen | 駐車場の詳細・料金・レビューをタブで表示Lot details, pricing, and reviews shown via tabs | GET /v1/mobile/views/lot-detail/{id}, POST /v1/mobile/actions/lots/{id}/toggle-save, POST /v1/mobile/actions/lots/{id}/report-incorrect |
| 08 | 駐車開始画面Start parking | 駐車Parking | モーダルModal | 駐車開始前の確認・条件設定Pre-parking confirmation and options | POST /v1/mobile/actions/sessions/start |
| 09 | 駐車管理画面Parking management | 駐車Parking | 全画面Full screen | 駐車中・過去の駐車履歴を一覧Current and past parking sessions | GET /v1/mobile/views/parking-sessions |
| 10 | 駐車詳細画面Parking detail | 駐車Parking | 全画面Full screen | 駐車中の詳細情報(経過時間・料金・グラフ)Live session details (elapsed time, fare, graph) | GET /v1/mobile/views/parking-session/{id}(料金計算・アラート・セッション状態を集約) |
| 11 | 駐車終了フロー画面End parking flow | 駐車Parking | 全画面Full screen | 終了確認〜Good/Bad 評価〜レビュー導線Confirm → Good/Bad rating → review entry | POST /v1/mobile/actions/sessions/{id}/finalize, POST /v1/mobile/actions/sessions/{id}/cancel |
| 12 | レビュー投稿画面Post review | レビューReview | モーダルModal | 評価・コメント・写真投稿Star rating, comment, and photo upload | GET /v1/mobile/views/review-compose/{lot_id}, POST /v1/mobile/actions/reviews/create(R2 upload は BFF 発行 presigned URL 経由) |
| 13 | 駐車履歴詳細画面Parking history detail | 駐車Parking | 全画面Full screen | 過去履歴の確認・メモ編集Review past sessions and edit memo | GET /v1/mobile/views/parking-history |
| 14 | メディア一覧画面Media list | メディアMedia | 全画面Full screen | 記事コンテンツ一覧Article content list | GET /v1/mobile/views/media-list |
| 15 | メディア詳細画面Media detail | メディアMedia | 全画面Full screen | 記事詳細表示(WebView or ネイティブ)Article detail view (WebView or native) | GET /v1/mobile/views/article-detail/{slug} |
| 16 | Saved(お気に入り)画面Saved (favorites) | 保存Saved | 全画面Full screen | 保存した駐車場一覧List of saved parking lots | GET /v1/mobile/views/saved, POST /v1/mobile/actions/saved/{lot_id}/remove |
| 17 | 通知一覧画面Notifications list | 通知Notifications | 全画面Full screen | アプリ内通知を時系列で表示In-app notifications in chronological order | GET /v1/mobile/views/notifications, POST /v1/mobile/actions/notifications/mark-read |
| 18 | プロフィール画面Profile | 設定Settings | 全画面(タブ4)Full screen (tab 4) | プロフィール表示、ゲーミフィケーション、各サブ画面(編集・設定・プレミアム等)への導線Profile overview, gamification, and navigation to sub-screens (edit, settings, premium, etc.) | GET /v1/mobile/views/profile, GET /v1/mobile/views/profile/gamification, GET /v1/mobile/views/profile/referrals |
| 18a | プロフィール編集画面Edit profile | 設定Settings | 全画面Full screen | 表示名・アバター・自己紹介の編集。R2 へのアバターアップロード付き。Edit display name, avatar, and bio. Avatar upload goes to R2. | GET /v1/mobile/views/profile, PATCH /v1/mobile/actions/profile/update, POST /v1/mobile/actions/profile/avatar-upload |
| 18b | 設定画面Settings | 設定Settings | 全画面Full screen | 言語・単位・通知・地図スタイル等のアプリ設定。パスワード変更・プライバシー設定への導線。App settings (language, units, notifications, map style). Also links to change-password and privacy screens. | GET /v1/mobile/views/profile/settings, GET /v1/mobile/views/notifications/preferences, PATCH /v1/mobile/actions/notifications/preferences/update |
| 18c | パスワード変更画面Change password | 設定Settings | 全画面Full screen | 現パスワード確認 → 新パスワード更新Verify current password → set new password | Supabase Auth SDK updateUser({ password })(JWT 管理系のため SDK 直接) |
| 18d | プライバシー設定画面Privacy settings | 設定Settings | 全画面Full screen | 位置情報共有・履歴公開・分析トラッキングの ON/OFF。Toggle location sharing, history visibility, and analytics tracking. | GET /v1/mobile/views/profile/settings, PATCH /v1/mobile/actions/profile/update |
| 19 | 駐車場登録画面Parking lot registration | 投稿Submission | 全画面Full screen | 新規駐車場の登録申請Apply to register a new parking lot | GET /v1/mobile/views/lot-registration, POST /v1/mobile/actions/lot-registration/submit |
| 20 | プレミアムプラン画面Premium plan | 課金Billing | 全画面Full screen | プラン登録・契約状況・解約Subscribe, view status, cancel | GET /v1/mobile/views/premium, POST /v1/mobile/actions/premium/verify-iap, POST /v1/mobile/actions/premium/cancel, POST /v1/mobile/actions/premium/apply-coupon |
| 21 | サポート画面Support | サポートSupport | 全画面Full screen | 問い合わせ作成・履歴・チャットCreate inquiry, history, chat | GET /v1/mobile/views/support, POST /v1/mobile/actions/support/submit-ticket |
| 22 | ポリシー / 規約画面Policy / terms | その他Other | 全画面Full screen | 利用規約・プライバシーポリシーTerms of use and privacy policy | GET /v1/mobile/views/policies |
| 23 | 検索履歴 / 保存条件画面Search history / saved conditions | 検索Search | 全画面Full screen | 過去の検索履歴と保存した検索条件Past search history and saved conditions | GET /v1/mobile/views/search-history, POST /v1/mobile/actions/search-history/clear |
| 24 | 権限リクエスト画面Permission request | システムSystem | モーダルModal | 位置情報・通知の権限を説明・要求Explain and request location / notification permissions | GET /v1/mobile/views/permissions, POST /v1/mobile/actions/permissions/record(OS ダイアログは permission_handler) |
| 25 | エラー画面Error screen | システムSystem | 全画面Full screen | 通信エラー・位置情報取得失敗・メンテナンス時Network error, geolocation failure, maintenance | GET /v1/mobile/views/error-fallback, POST /v1/mobile/actions/error/report |
代表的な画面の詳細 Detailed anatomy of key screens
04. ホーム(Map)画面 04. Home (Map)
目的Purpose
Parky の中心画面。地図上で駐車場をピン表示し、フィルタ・並び替え・AI 検索のエントリーポイントとなる。
The heart of Parky. Parking lots appear as pins on a map, and this screen is the entry point for filtering, sorting, and AI search.
主要UIKey UI
- 上部:検索バー(目的地入力 / AI検索切替)
- Top: search bar (destination input / AI search toggle)
- 右上:現在地ボタン、表示オプション
- Top-right: current-location button, display options
- 中央:Mapbox 地図、駐車場ピン(通常 / ランキング 🥇🥈🥉 / 広告プロモ)
- Center: Mapbox map with pins (normal / ranking 🥇🥈🥉 / promoted)
- 下部:ボトムシート(検索結果リスト、並び替えチップ、フィルタチップ)
- Bottom: bottom sheet (results list, sort chips, filter chips)
- フローティング:駐車中のセッションがあれば「駐車中バブル」
- Floating: active-session "parking bubble" when one exists
- タブバー:ホーム / Saved / 通知 / プロフィール
- Tab bar: Home / Saved / Notifications / Profile
主要操作Key operations
- 地図パン/ズーム → デバウンス250ms後に再検索
- Pan / zoom the map → re-query after a 250 ms debounce
- ピンタップ → ボトムシートに詳細プレビュー
- Tap a pin → preview appears in the bottom sheet
- ピンダブルタップ or プレビュータップ → 駐車場詳細画面へ遷移
- Double-tap a pin or tap the preview → navigate to the lot detail screen
- 検索バータップ → 検索ボックス展開、入力中は候補表示
- Tap the search bar → expand with live suggestions while typing
- フィルタチップ → 検索絞り込み設定モーダル
- Filter chip → open the search-filter settings modal
状態States
loading/success/empty(該当駐車場なし) /errorloading/success/empty(no matching lots) /error- GPS 未許可:許可ダイアログを1回表示後、拒否継続時は現在地ボタンを無効化
- GPS not granted: show the permission dialog once; keep the current-location button disabled while denied
呼び出しAPICalled APIs
GET /v1/mobile/views/home-feed— 画面起動時 1 回。ピン・ボトムシート・アクティブセッション・広告を集約GET /v1/mobile/views/home-feed— fired once on open; aggregates pins, bottom-sheet, active session, adsGET /v1/mobile/views/search-results— 地図パン/ズーム後の 250 ms デバウンス再検索GET /v1/mobile/views/search-results— debounced 250 ms after pan / zoom- Mapbox Geocoding(目的地入力時のみ、クライアント SDK)
- Mapbox Geocoding (only when typing a destination; client SDK)
- 広告・プロモピンの判定は BFF 側で home-feed / search-results に混ぜて返す
- Promoted pins and ads are merged into home-feed / search-results on the BFF side
06a. AI検索画面 06a. AI search
目的Purpose
自然言語で「屋根付き・EV充電あり・1時間500円以下」などと入力すると、LLM が構造化クエリに変換して検索結果を返す画面。プリセット化して次回から1タップで呼び出せる。
Users type conditions in natural language (e.g. "covered, with EV charging, under JPY 500/hour"). An LLM translates the text into a structured query and returns results. The query can be saved as a preset for one-tap reuse.
主要UIKey UI
- 大きな入力欄、音声入力ボタン、サジェスト例
- Large text input, voice-input button, suggestion chips
- 解釈結果(構造化クエリのプレビュー)
- Interpretation preview (the parsed structured query)
- 「この条件をプリセット保存」ボタン → 06c へ
- "Save as preset" button → 06c
- 検索結果リスト(06 と共通)
- Results list (shared with 06)
呼び出しAPICalled APIs
GET /v1/mobile/views/ai-search— 画面起動時に suggestion / 直近クエリを取得GET /v1/mobile/views/ai-search— pulls suggestions / recent queries on openPOST /v1/mobile/actions/ai-search/query— 自然言語を BFF が構造化クエリに変換 + 検索実行まで 1 call で完結POST /v1/mobile/actions/ai-search/query— BFF converts NL to a structured query and runs the search in one callPOST /v1/mobile/actions/search-presets(プリセット保存時)POST /v1/mobile/actions/search-presets(when saving a preset)
06c. 検索プリセット管理画面 06c. Search preset management
ユーザーが保存した駐車場検索条件プリセットの一覧・追加・編集・削除・デフォルト切替。16項目の構造化フォーム(user_search_presets テーブルに 1:1 対応、admin portal の Search Presets タブと同じスキーマ)。
List / add / edit / delete / toggle-default for a user's saved search presets. A 16-field structured form that maps 1:1 to the user_search_presets table (same schema used by the admin portal's Search Presets tab).
07. 駐車場詳細画面 07. Parking lot detail
目的Purpose
駐車場1件の情報を全て表示し、駐車開始・保存・レビュー投稿の導線を提供する。
Shows everything about a single parking lot and acts as the entry point for starting a session, saving, and posting a review.
タブ構成Tabs
- 基本情報:名前、住所、座標、収容数、構造、営業時間、車両制限(高さ/幅/長さ/重量/最低地上高)、決済手段
- Basics: name, address, coordinates, capacity, structure, hours, vehicle limits (height/width/length/weight/clearance), payment methods
- 料金:時間帯/曜日別ユニット料金+最大料金。リアルタイム計算機付き(入出庫時刻を指定して想定料金を算出)
- Pricing: time-of-day / day-of-week unit charges plus cap rules, with a live calculator (enter arrival/departure times for an estimate)
- レビュー:星評価の分布、レビュー一覧(新着順/評価順)、写真ギャラリー
- Reviews: star-rating distribution, reviews list (newest / top-rated), photo gallery
- 画像:施設の外観・入口・内部写真をスワイプ表示
- Images: swipeable photos of the exterior, entrance, and interior
- タグ/属性:24h・屋根付き・EV・大型車対応等のタグ
- Tags / attributes: tags such as 24h, covered, EV, large-vehicle friendly
主要操作Key operations
- 「駐車開始」ボタン → 駐車開始モーダル
- "Start parking" button → start-parking modal
- ハートアイコン → Saved に追加/削除
- Heart icon → add to / remove from Saved
- 「誤情報を報告」 → 誤情報報告モーダル
- "Report incorrect info" → error-report modal
- 「レビューを書く」 → レビュー投稿画面
- "Write a review" → post-review screen
- 共有ボタン → Deep Link 共有
- Share button → share via deep link
呼び出しAPICalled APIs
GET /v1/mobile/views/lot-detail/{id}— 基本情報・画像・タグ・料金ルール・レビュー・自分の保存状態を 1 本で集約GET /v1/mobile/views/lot-detail/{id}— single aggregate of basics, images, tags, pricing rules, reviews, and current save statePOST /v1/mobile/actions/lots/{id}/toggle-save— ハートアイコンによる保存トグルPOST /v1/mobile/actions/lots/{id}/toggle-save— heart-icon togglePOST /v1/mobile/actions/lots/{id}/report-incorrect— 誤情報報告POST /v1/mobile/actions/lots/{id}/report-incorrect— report incorrect infoPOST /v1/mobile/actions/sessions/start— 駐車開始(モーダル 08 の確定)POST /v1/mobile/actions/sessions/start— start a session (confirmed from modal 08)
10. 駐車詳細画面(駐車中) 10. Parking detail (active session)
目的Purpose
駐車中の状態をリアルタイムに可視化。経過時間・累計料金・ルール適用内訳を表示し、アラート設定を行う。
Visualizes an active parking session in real time — elapsed time, running fare, rule-by-rule breakdown — and lets users configure alerts.
主要UIKey UI
- 大きなタイマー(経過時間 / 予定時刻まで)
- Large timer (elapsed time / time until planned end)
- 累計料金(1分ごとに更新)
- Running fare (updated every minute)
- 料金推移グラフ(時間帯ごとのユニット料金を折れ線表示)
- Fare-trend graph (line chart of per-period unit charges)
- 料金ルール適用内訳リスト
- List of which pricing rules were applied
- アラート設定カード(料金閾値 / 予定時刻)
- Alert-settings card (fare threshold / planned end time)
- 「駐車終了」ボタン(確認ダイアログ付き)
- "End parking" button (with a confirmation dialog)
- メモ・写真編集
- Edit memo and photos
更新戦略Update strategy
- 料金・累計は
GET /v1/mobile/views/parking-session/{id}のdataに含まれる料金ルールを元に、クライアントの純関数で 1 分ごと再計算(BFF 負荷を下げるためのローカル投影) - The running fare is reprojected client-side every minute from the pricing rules returned in
GET /v1/mobile/views/parking-session/{id}(local projection to reduce BFF load) - 最終確定は必ず
POST /v1/mobile/actions/sessions/{id}/finalize(Action が唯一の真値) - The final amount is always committed through
POST /v1/mobile/actions/sessions/{id}/finalize(the Action is the source of truth) - Push 受信で復帰したら ViewEnvelope を再フェッチしてローカルを再同期(Realtime 直叩きはしない)
- On return from a push, re-fetch the ViewEnvelope and re-sync local state (no direct Realtime subscription)
- geofence / 位置サンプルは
POST /v1/mobile/telemetry/eventsで fire-and-forget - Geofence events and location samples fire-and-forget via
POST /v1/mobile/telemetry/events
11. 駐車終了フロー画面 11. End parking flow
遷移Transitions
- 「駐車終了」タップ → 確認ダイアログ
- Tap "End parking" → confirmation dialog
- 確定 →
POST /v1/mobile/actions/sessions/{id}/finalizeで最終金額確定、ActionEnvelope のnavigationで Good/Bad 画面へ - Confirm →
POST /v1/mobile/actions/sessions/{id}/finalizelocks the final amount; the ActionEnvelopenavigationdrives the transition to the Good/Bad screen - Good/Bad 評価(finalize の request body に同梱 or フォローアップの action で送信)
- Good/Bad rating (sent in the finalize body or as a follow-up action)
- 駐車後メモ入力(任意)は同じ finalize のレスポンスに続く
navigationに従う - Optional post-parking memo follows the
navigationreturned by finalize - 「レビューを書く」 → 画面 12(
/v1/mobile/views/review-compose/{lot_id})、スキップ時はnavigationで履歴詳細へ - "Write a review" → screen 12 (
/v1/mobile/views/review-compose/{lot_id}); skip honours thenavigationback to history detail
18. プロフィール / 設定画面 18. Profile / settings
セクションSections
- プロフィール:表示名、アバター、メール、車種(
vehicle_typeコード)、プレミアムステータス - Profile: display name, avatar, email, vehicle type (
vehicle_typecode), premium status - ゲーミフィケーション:現在レベル、総EXP、獲得バッジ、テーマ
- Gamification: current level, total EXP, earned badges, themes
- 通知設定:Push 種別ごとの ON/OFF、静音時間
- Notification settings: per-push-type on/off, quiet hours
- 一般設定:言語、単位、検索半径デフォルト、地図スタイル
- General settings: language, units, default search radius, map style
- データ:検索履歴、駐車履歴エクスポート(CSV / PDF、Premium 限定)
- Data: search history, parking-history export (CSV / PDF, Premium-only)
- アカウント:パスワード変更、メール変更、退会
- Account: change password, change email, delete account
- サポート:問い合わせ、FAQ、規約、プライバシーポリシー
- Support: inquiries, FAQ, terms, privacy policy
- アプリ情報:バージョン、ライセンス
- App info: version, licenses
17. 通知一覧画面 17. Notifications list
構成Structure
- タブ:全て / 未読 / システム / プロモーション
- Tabs: All / Unread / System / Promotions
- リスト:アイコン、タイトル、本文、日時、既読/未読バッジ
- List: icon, title, body, timestamp, read/unread badge
- タップ → 対応する画面へ遷移(駐車セッション / 駐車場詳細 / 記事等)
- Tap → navigate to the matching screen (parking session / lot detail / article, etc.)
- スワイプで既読化 / 削除
- Swipe to mark as read / delete
データData
GET /v1/mobile/views/notifications(ViewEnvelope)で一覧・未読カウント・タブ区分を一括取得。更新は pull-to-refresh / push 復帰で再フェッチ(Realtime 直叩きはしない)。既読化は POST /v1/mobile/actions/notifications/mark-read。
The GET /v1/mobile/views/notifications ViewEnvelope returns the list, unread counts, and tab grouping in one shot. Refresh happens via pull-to-refresh or on push resume (no direct Realtime subscription). Mark-as-read is POST /v1/mobile/actions/notifications/mark-read.
09. 駐車管理画面 09. Parking management
目的Purpose
駐車中のセッションと過去履歴を横断的に一覧する。
A unified list of the active session and past history.
構成Structure
- 上部:駐車中カード(あれば)
- Top: active-session card (if any)
- リスト:過去セッション(日付降順、月グループ)
- List: past sessions (newest first, grouped by month)
- 各行:駐車場名、入出庫時刻、利用時間、合計金額、Good/Bad
- Row: lot name, arrival/departure time, duration, total fare, Good/Bad
- フィルタ:期間、駐車場、Good/Bad
- Filters: period, lot, Good/Bad
- 「エクスポート」ボタン(Premium)
- "Export" button (Premium)
20. プレミアムプラン画面 20. Premium plan
構成Structure
- ヒーロー:Premium で得られる価値訴求
- Hero: value pitch for going Premium
- プラン選択:月額 / 年額(年額に割引バッジ)
- Plan picker: monthly / yearly (discount badge on yearly)
- 機能比較表:Free vs Plus(AI検索使い放題、広告非表示、履歴エクスポート、優先サポート)
- Feature comparison: Free vs Plus (unlimited AI search, ad-free, history export, priority support)
- 現在の契約状況(契約中なら更新日・解約ボタン)
- Current subscription status (renewal date and cancel button when subscribed)
- 利用規約・特商法リンク
- Links to the terms of use and the Specified Commercial Transactions Act disclosure
24. 権限リクエスト画面 24. Permission request
対象権限Target permissions
- 位置情報:使用中(Always は駐車中 Live Activity で必須)
- Location: while-in-use (Always is required for the Live Activity during a session)
- 通知:Push 受信
- Notifications: for receiving pushes
- 写真/カメラ:レビュー・メモ写真投稿時に要求
- Photos / camera: requested when attaching photos to reviews or memos
- モーション:駐車自動検出(将来)
- Motion: automatic parking detection (future)
挙動Behavior
- 最初にアプリ内説明画面 → その上で OS ダイアログを要求(UX ベストプラクティス)
- Show an in-app explainer first, then trigger the OS dialog (UX best practice)
- 拒否時は設定アプリへの導線を表示
- If denied, show a deep link to the system Settings app