まちなか保健室アプリ

緊急通報・位置追跡・リアルタイムコミュニケーション システム技術仕様書

Flutter Firebase Mapbox リアルタイム

システム概要

🚨 緊急通報システム

GPS位置情報を活用した緊急通報機能。ワンタップで救助要請が可能で、位置情報と健康状態を自動でFirebaseに記録。

🗺️ リアルタイム位置追跡

Mapboxを利用した高精度位置追跡とナビゲーション機能。バックグラウンドでの継続的な位置情報更新に対応。

💬 リアルタイムチャット

Firebase Cloud Firestoreを活用したリアルタイムメッセージング。Google認証による安全なコミュニケーション環境。

🔔 プッシュ通知

Firebase Cloud Messagingによる緊急通知システム。バックグラウンドでも確実に通知を受信。

システムアーキテクチャ

フロントエンド層

Flutter (Dart 3.7.2)
Material Design 3
State Management (Riverpod)

サービス層

Location Service
Notification Service
Authentication Service

バックエンド層

Firebase Authentication
Cloud Firestore
Firebase Cloud Messaging

外部API層

Mapbox Maps API
Google Sign-In API
Android Location Services

主要機能

🆘

緊急通報機能

  • ワンタップ緊急通報
  • 健康状態選択ダイアログ
  • GPS位置情報自動取得
  • 通報データFirebase記録
  • 継続的緊急通知
lib/displays/call.dart
lib/displays/emergency_call_screen.dart
🗺️

マップ・ナビゲーション

  • Mapbox統合マップ表示
  • リアルタイム現在地表示
  • 目的地検索・ナビゲーション
  • 位置履歴キャッシュ
  • バックグラウンド位置追跡
lib/displays/map.dart
lib/displays/navigation.dart
lib/services/location_service.dart
💬

リアルタイムチャット

  • Firestore リアルタイムメッセージング
  • Google認証統合
  • チャットルーム作成・管理
  • メッセージ履歴保存
  • オフライン対応
lib/displays/chat.dart
🔔

通知システム

  • Firebase Cloud Messaging
  • ローカル通知
  • バックグラウンド通知処理
  • 緊急通知優先度制御
  • 通知タップハンドリング
lib/services/notification_service.dart
👤

認証・アカウント管理

  • Google Sign-In統合
  • Firebase Authentication
  • ユーザープロファイル表示
  • ログアウト機能
  • 救助者モード切り替え
lib/displays/settings.dart
lib/displays/signin.dart
⚙️

設定・管理

  • アプリ設定画面
  • 位置情報権限管理
  • 通知権限管理
  • アプリ情報表示
  • ライセンス情報
lib/displays/settings.dart

技術スタック

フロントエンド

Flutter Cross-platform UI framework
Dart 3.7.2 Programming language
Material Design 3 UI design system
Riverpod 2.6.1 State management

バックエンド・データベース

Firebase Core 3.13.1 Backend-as-a-Service platform
Cloud Firestore 5.6.0 NoSQL document database
Firebase Auth 5.5.4 Authentication service
Firebase Messaging 15.1.8 Push notification service

地図・位置情報

Mapbox Maps Flutter 2.0.0 Interactive map platform
Location 8.0.0 GPS location services
Permission Handler 12.0.0 Device permissions management

認証・通知

Google Sign-In 6.3.0 Google OAuth integration
Flutter Local Notifications 18.0.1 Local push notifications
Background Task 0.2.0 Background processing

その他ライブラリ

HTTP 1.3.0 HTTP client
SharedPreferences 2.2.2 Local data storage
WebView Flutter 4.13.0 Web content display
URL Launcher 6.3.1 External URL handling

API・サービス連携

Firebase APIs

Authentication

Google Sign-In Provider

GoogleAuthProvider.credential()

Firestore Database

リアルタイムデータ同期

collection('chats').snapshots() collection('emergency_calls')

Cloud Messaging

プッシュ通知配信

FirebaseMessaging.onMessage FirebaseMessaging.onBackgroundMessage

Mapbox APIs

Maps API

インタラクティブマップ表示

MapboxMap.flyTo() CameraOptions

Geocoding API

住所検索・逆ジオコーディング

/geocoding/v5/mapbox.places/

Directions API

ルート検索・ナビゲーション

/directions/v5/mapbox/driving/

Device APIs

Location Services

GPS位置情報取得

Location.getLocation() Location.onLocationChanged

Permissions

デバイス権限管理

Permission.locationWhenInUse Permission.notification

Notifications

ローカル通知

FlutterLocalNotificationsPlugin

ビルド・デプロイメント

開発環境セットアップ

# 依存関係のインストール
npm install

# Flutter packages取得
flutter pub get

# 開発サーバー起動
flutter run

環境変数設定

# .env ファイル
MAPBOX_ACCESS_TOKEN=your_mapbox_token

# Firebase設定
# android/app/google-services.json
# Firebase Console からダウンロード

Androidビルド

# Debug APK
flutter build apk --debug

# Release APK
flutter build apk --release

# App Bundle (Google Play)
flutter build appbundle

Firebase設定

# Firebase CLI インストール
npm install -g firebase-tools

# プロジェクト初期化
firebase login
firebase init

# Firestore ルール設定
# firestore.rules