3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[React Native] Emulatorか実機か判定する

Posted at

はじめに

開発初期の段階で、Emulator(ローカル環境)ではdockerでたてたサーバーとAPI接続して試したいけど、TestFlightやBuilderXなどにデプロイして実機でテストするときはダミーデータを使いたい!ということがあったため、備忘録に残しておきます。

結論

早速、調べてみると、StackOverflowに同じお悩みを持っている人がいました

なるほど、react-native-device-info というライブラリで判断できるみたいです。
このライブラリは様々なデバイス情報を取得するためのライブラリで、iOS、Android、Windows、Webのそれぞれ細かく取得できる情報が記載されています。 各種APIの説明はこちら

今回はエミュレーターかどうかを判別するための :link: isEmulator関数を用いるだけですが、プロジェクトを進める上で他のAPIを使う場面も出てきそうです

## おまけ(実装)
react-native-device-infoは汎用的に使える便利そうな関数が多いので、utilsに書きたいと思います。
アーキテクチャは人それぞれかと思いますが、(特にReact Nativeは...)私の場合は、root直下にsrcディレクトリを作成し、ファイル / フォルダはすべてその中に追加していっています。
今回はsrc/utilsフォルダの中にdeviceInfo.tsというファイルを作成しました。(JavaScriptの人はdeviceInfo.js

deviceInfo.ts
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関数は、開発の途中で使わなくなる可能性が高いので、モジュールとしてロジック部分と分割しておいた方が、保守しやすいかと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?