概要
SafetyBirdは、韓国のリアルタイム災害情報を 韓国語・日本語・英語 で提供する iOSアプリ です。
韓国では災害発生時、基地局を通じて携帯端末に 緊急速報メール を送信しますが、外国人や弱視者向けのアクセシビリティが不足しているという課題がありました。この問題を解決するために、SafetyBirdは 災害情報を収集・加工し、より分かりやすい形でユーザーに提供することを目的としています。
使用技術
Backend
SafetyBirdでは、サービスの高度化を図るため、マイクロサービスアーキテクチャに基づいたバックエンドを構築しました。情報収集モジュール、Push通知モジュール、REST APIサーバーをそれぞれ独立したサービスとして分離し、Dockerコンテナを使用してHTTPベースで通信する設計になっています。
- 情報収集サービス: 政府との契約を通じてリアルタイムの災害情報を取得
- Push通知サービス: 緊急度に応じてAPNsサーバーにPushリクエストを送信
- REST APIサーバー: クライアント(iOS)とのデータ通信を処理(Honoベース)
- データ管理: MongoDBを活用し、非構造化データを効率的に保存
開発言語にはTypeScriptを採用し、Bunランタイム環境で動作するように設計しました。
デプロイにはOCI(Oracle Cloud Infrastructure)のCompute環境を利用し、コンテナ化したサービスを運用しています。
iOS
iOSアプリは、SwiftUIとMVアーキテクチャを活用して開発されました。
災害通知データを保存・管理するためにSwiftDataを使用し、Firebase Analyticsを活用してユーザーの行動データを分析し、サービス改善のためのデータを収集しています。
SafetyBirdが解決した問題
既存の緊急速報システムの課題
本プロジェクトを進めるにあたり、従来のシステムで感じた課題は以下の通りです。
- 緊急速報メールは1回のみ表示されるため、見逃した場合に再確認が困難
- 情報が韓国語のみで提供されているため、外国人観光客や在留外国人は内容を理解するのが難しい
- 弱視者や視覚障害者向けのアクセシビリティが考慮されていない
- 災害の種類や危険度を直感的に把握する手段がない
- 送信地域に限定された情報のため、他の地域の状況を把握しづらい
SafetyBirdの解決策
SafetyBirdは従来の緊急速報システムの課題を解決するために、サーバーを構築し、災害情報を加工した上でモバイルアプリを通じて提供する仕組みを導入しました。
リアルタイム災害情報の収集と提供
SafetyBirdは、政府と提携し、リアルタイムの公式災害情報にアクセスできるデータ取得システムを構築しました。
これにより、ユーザーはアプリ内で最新の災害情報を確認し、過去のデータも閲覧可能になりました。
さらに、緊急度に応じたプッシュ通知機能を導入し、重要な情報を見逃さないように設計しました。
AIを活用したリアルタイム多言語翻訳
政府の公式データを活用し、Google Geminiの構造化出力を利用して英語・日本語に即時翻訳する機能を実装しました。
特に、SafetyBirdはAIモデルに災害用語を学習させることで、より正確な翻訳を実現しています。
これにより、外国人観光客や在留外国人が直感的に情報を理解し、迅速に対応できるようになりました。
視覚障害者向けのアクセシビリティ機能強化
従来の緊急速報システムは、視覚障害者や弱視者向けの配慮が欠けていました。
SafetyBirdはAppleのVoiceOver機能やDynamic Typeを活用し、アプリのアクセシビリティを向上させました。
これにより、必要な情報を音声読み上げ機能を通じて取得でき、文字サイズの調整も可能になりました。
直感的なUI設計
災害データを分析し、33種類の災害タイプに分類し、それぞれにアイコンとタイトルを付与することで、
ユーザーが一目で状況を把握できるデザインを採用しました。
今後の改善点
追加言語のサポート
- 現在の翻訳システムのトークン消費量を測定し、翻訳の精度を評価した後、中国語・スペイン語などの追加対応を予定
ユーザーごとのカスタム通知機能
- ユーザーの関心地域や現在地を考慮し、必要な情報のみを受信できる機能を導入
サービスの日本展開
- L-Alert(緊急速報メール)を活用し、日本国内の外国人ユーザーにも分かりやすい防災情報を提供する予定