開発環境を作る Mac

【連載】初めてのReact Native + Expo開発環境構築入門(Macベース)

 MacにExpoを使ったReact Nativeの開発環境を1から構築し、サンプルアプリを作成するところまで連載していきます。

 なお、この記事は以下の2019年記事から許可を得て、同じ内容を2020年のMac向けで書き直したものです。

Windows用元記事はこちら

環境

開発環境は、2020年10月時点最新の以下のソフトウェアで構築します。

  • Chrome 最新 (85.0.4183.121(Official Build) (64 ビット))
  • Visual Studio Code 最新 (1.49.0)
  • Node.js + npm 最新 (12.18.4 (同梱 npm 6.14.6))

Expoを選択する理由

 モバイルアプリ開発のクロスプラットフォームには、Cordova (ionicやMonaca含む)、Xamarin、最近ではFlutterなどいくつもの選択肢がありますが、その中で以下のメリットが強いときにReact Native + Expoを使うのがよいかと思います。

  • とにかく開発工数を小さくしたい。
  • 同じプロジェクトのサーバー側がJavaScriptなので知識や技術者を流用したい
  • 同じプロジェクトのWebフロントがReactなので知識や技術者を流用したい
  • 業務用アプリなどで、細部にはあまりこだわらない
  • Web開発の知識をなるべくそのまま応用したい。
  • JavaScriptの知識をメインにして作りたい
  • Reactの知識がすでにある
  • デバイス固有の機能は使わないプロジェクト、またはモックアップ用
  • 実機でデバッグを簡単に実施したい
  • 簡単に配布したい

 マルチプラットフォームの開発環境としては、2020年現在だとFlutterとXamarinが競合になるでしょう。XamarinはMicrosoft系なのですが、最近Macにもしっかり環境を整えてくれているので、Macユーザーも選択肢に入れていいと思います。個人的な経験上では、React Native (+ Expo) を選択する一番の理由はやはりJavaScriptであることが一番大きいですね。

React Nativeから始めるか、React Native Expoから始めるか

 React Nativeはライブラリのバージョン管理が大変で、React Native本体のバージョンアップに必死でついていく感じになります。Expoのいいところは、これをしなくいいところです。Expo側が勝手にライブラリ管理して、ラッピングされたコンポーネントに影響が出ないようにしてくれます。

 一方、ExpoではiOSやAndroidのネイティブコードを開発者が自分のプロジェクトに導入することができないので、アプリの機能面でExpoの制限を受けることになります。たとえばBluetooth通信に難があったり、アプリにコードを埋め込むことを要求されるReproのプッシュ通知サービスが使えなかったりします。

 一長一短のある非ExpoとExpoですが、Expoから非Expoにプロジェクトをコンバートすることはかんたんなので(これをEjectと呼びます)、とりあえずExpoで簡単に始めるのが良いかと思います。

連載記事リスト

連載内容の予定です。途中で大幅に変更する可能性があります。

- 開発環境を作る, Mac

© 2024 今日からプログラマー