はじめに
開発初期の段階で、Emulator(ローカル環境)ではdockerでたてたサーバーとAPI接続して試したいけど、TestFlightやBuilderXなどにデプロイして実機でテストするときはダミーデータを使いたい!ということがあったため、備忘録に残しておきます。
結論
早速、調べてみると、StackOverflowに同じお悩みを持っている人がいました
なるほど、react-native-device-info というライブラリで判断できるみたいです。
このライブラリは様々なデバイス情報を取得するためのライブラリで、iOS、Android、Windows、Webのそれぞれ細かく取得できる情報が記載されています。 各種APIの説明はこちら
今回はエミュレーターかどうかを判別するための isEmulator
関数を用いるだけですが、プロジェクトを進める上で他のAPIを使う場面も出てきそうです
## おまけ(実装)
react-native-device-infoは汎用的に使える便利そうな関数が多いので、utils
に書きたいと思います。
アーキテクチャは人それぞれかと思いますが、(特にReact Nativeは...)私の場合は、root直下にsrc
ディレクトリを作成し、ファイル / フォルダはすべてその中に追加していっています。
今回はsrc/utils
フォルダの中にdeviceInfo.ts
というファイルを作成しました。(JavaScriptの人はdeviceInfo.js
)
import DeviceInfo from 'react-native-device-info'
const isEmulator = () => {
// https://github.com/react-native-community/react-native-device-info#isemulator
return DeviceInfo.isEmulator()
}
export default { isEmulator }
特にisEmulator
関数は、開発の途中で使わなくなる可能性が高いので、モジュールとしてロジック部分と分割しておいた方が、保守しやすいかと思います。