スマートフォン上で現在の位置情報を表示するための Expo (React Native) アプリです。
- Node.js 18 以上
- npm または yarn / pnpm
- Expo CLI (
npx expoで自動的に利用できます) - iOS / Android 実機またはエミュレータ
npm installnpx expo start- 表示された QR コードを Expo Go アプリで読み込むことで実機で動作確認できます。
- iOS シミュレータを使う場合は
i、Android エミュレータを使う場合はaをターミナルで入力してください。
- アプリ起動時に位置情報へのアクセス許可をリクエストします。
- 許可されると、高精度で現在地を取得し、緯度・経度・高度・精度・最終更新時刻を表示します。
- 権限が拒否された場合は、再リクエスト用ボタンと共にメッセージを表示します。
- Android では精度向上のために高精度位置設定を促すメッセージを表示します。
- HP(上限100)と、初期値5の護力・響力をプログレス表示で確認できます。
- 複数の危険源が設定されており、各地点で距離に応じた二次関数的なダメージ計算と最大値を
App.js内のDANGER_ZONESから調整できます。 - ダメージは護力(防御力)で軽減され、UI では総被ダメージと地点ごとの素ダメージ/軽減後ダメージを確認できます。
- 仮想円内を移動しつつ円周で鏡面反射する危険源を 1 つ追加しており、こちらはダメージ上限なしで設定できます。
HP_REGEN_PER_SECONDの値に応じて HP が毎秒自然回復(デフォルト 1)するようになっています。- 直近ダメージが 1〜未満3 / 3〜未満6 / 6以上で 3・2・1 秒間隔のバイブを継続発火し、危険度に合わせた通知を行います(
App.jsの設定で閾値とスタイルを調整可能)。
- iOS では
app.jsonのinfoPlist.NSLocationWhenInUseUsageDescriptionを必要に応じて編集してください。 - Android ではエミュレータの位置情報が適切に設定されていることを確認してください。
- 端末の省電力設定によって位置情報の更新が遅くなる場合があります。
本番ビルドやストア配信を行う場合は、Expo Application Services (EAS) の利用を検討してください。依存パッケージのバージョンは package.json を参照してください。