React NativeでExpoを使用する場合の制限


ここに書いてあること

Expoのドキュメントの「Why not Expo?」の内容です。(2019/05/16時点)
※もし「これ重要なのに書いてないじゃん!?」みたいのあったら教えてください。

要約

  • ExpoはRubyにおけるRailsのようなReact Native版のマネージドワークフロー(フレームワークみたいのもの?)である。
  • ExpoはXcodeやAndroid Studioを使わずjavascriptだけでスマホアプリ開発ができる。
  • Expoはいくつか制約があるので作成するスマホアプリの要件に適合するか事前に検討したほうがよい。

制約

全てのiOS/AndroidのAPIを使用できない

  • BluetoothやWebRTCは使用できない。
  • でも開発中だからAPIのリリースをチェックしてほしい。Expoブログ
    • 例えばこのブログを見ると最近(2019/5/10)、画像の圧縮がExpoCLIで対応したことが分かります。

バックグラウンド実行はできない

  • アプリが最前で動いていない時やスマホがスリープ状態のときは実行できない。
  • ただし、位置情報の取得はバックグラウンドでも可能。
  • OSが提供する音楽再生やバックグラウンドでのプッシュ通知はできない。

アプリのサイズを小さくできない

  • Expoは使用しないAPIも含まれているので、iOSで20MB、Androidで15MBのアプリサイズにはなる。

特定のプッシュ通知機能は使えない

古いOSバージョンはサポートしていない

  • iOS 10以降 / Android 5以降

OS特有のAPIを実装することはないでしょう