まちなか保健室アプリ
緊急通報・位置追跡・リアルタイムコミュニケーション システム技術仕様書
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