🀄

Flutterで飲食店検索アプリを作成しリリースしてみる

2025/01/11に公開

この記事では、以下の動画を参考にFlutterで飲食店検索アプリを作成しリリースするまでの流れをまとめてみます。

https://www.youtube.com/watch?v=V8qIdW0eMnE&t=378s

要件定義としては以下の通りです。

[要件定義]

1. アプリの概要

目的: ユーザーが現在地付近の飲食店情報を簡単かつ迅速に取得できるアプリを提供する。
対象ユーザー: 外出中に飲食店を探している一般ユーザー。
プラットフォーム: Android / iOS(Flutterでクロスプラットフォーム対応)。

2. 機能要件

2.1. コア機能

  1. 位置情報取得
  • 起動時にデバイスの現在地を取得する。
  • Google Maps APIまたはGeolocatorパッケージを使用。
  1. 飲食店検索機能
  • 現在地を基点に、近くの飲食店を一覧表示。
  • 飲食店の詳細情報(店名、ジャンル、営業時間、評価)を取得。
  • Google Places APIやYelp APIを利用。
  1. 飲食店の詳細ページ
  • 店舗の詳細情報を表示(例: 写真、住所、連絡先、レビュー)。
  • マップ上に店舗位置を表示。
  • ワンタップでナビゲーションアプリに連携。
  1. 検索条件の設定
  • フィルタ機能(例: 距離、予算、ジャンル)。
  • ソート機能(例: 評価順、距離順)。
  1. マップ表示
  • 近隣の飲食店を地図上にピンで表示。
  • 現在地と店舗までの距離を地図上で視覚的に確認可能。

2.2. サポート機能

1.お気に入り機能

  • 気に入った飲食店を保存。
  • お気に入り一覧を表示。
  1. 共有機能
  • 飲食店情報をSNSやメッセージアプリで共有。
  1. 多言語対応
  • 日本語/英語をサポート。
  1. オフラインモード(オプション)
  • 最近検索した飲食店のデータをキャッシュして表示。

3. 非機能要件

  1. パフォーマンス
    起動後3秒以内に飲食店リストを表示。

  2. UI/UX

  • シンプルで直感的な操作性を提供。
  • リストとマップ表示の切り替えがスムーズ。
  1. セキュリティ
  • 位置情報の利用に関するユーザーの同意を取得。
  • HTTPS通信を使用してAPIとのデータ送受信を暗号化。
  1. 互換性
  • Android 8.0以上、iOS 13以上をサポート。

4. 利用技術

  • フロントエンド: Flutter(Dart言語)
  • バックエンドAPI: Google Places API、Google Maps API、またはYelp API
  • 位置情報: Geolocator, Google Maps Flutterプラグイン
  • データストレージ: SharedPreferences(お気に入りの保存用)、HiveやSQLite(キャッシュ用)
  • デザインフレームワーク: Material Design
  • CI/CD: GitHub ActionsまたはCodemagic

5. 開発スコープ

  1. 初期リリース(MVP: Minimum Viable Product)
  • 現在地取得
  • 飲食店検索と一覧表示
  • 店舗詳細ページ
  • フィルタ・ソート機能

2.将来的な機能拡張

  • お気に入り機能
  • SNS共有機能
  • オフラインモード

6. ユーザーストーリー

  1. 検索フロー
  • アプリを起動 → 自動で現在地周辺の飲食店をリスト表示 → 店舗をタップして詳細を確認 → ナビボタンで店舗へ移動。

2.お気に入りフロー

  • 気になる店舗をお気に入り登録 → 後から「お気に入り一覧」で再確認。

Discussion