いつ ReactNative を使っても大丈夫か

AirBnb がReactNativeをやめることが話題になってますね。

medium.com

以下私見です。

RN採用可否のフローチャート

自分がRN使いたいといって相談された際にはこういう感じで返してます。基本的にはExpo 採用可能か否かで判断してます。 Expo ではじめる ReactNative 開発環境 - Qiita

  • プラットフォームごとにUXを突き詰める必要がある => RN やめとけ
  • Q: 社内にモバイルのエンジニアがいない
    • YES:
    • NO:
      • Q: Web開発者多数 + モバイルエンジニア少数の環境である
        • YES: => RN採用可能
        • NO: 別の案を検討
  • とにかくエッジなのを採用してモチベーション上げたい => Flutter
  • C# 派 => Xamarin
  • Web標準派 => PWA

Expo を推してる理由は、RNの根本的に不安定な部分を、比較的安定している Expoに押し付けることができるからです。Expoを使わない場合、現時点ではRNのバージョンアップの追従で3プラットフォーム全てに習熟する必要があり、技術的な要求レベルも割くべきリソースも必要です。

正直なところ、 RN も PWA も、現時点では貧者のツールなのは否定できません。また、RN 開発で必要なノウハウはWebのスキルと言うより、もはや GUI 開発のスキルなので、JSが使える以上のスキル転用は望めません。僕のようなSPA開発者が漲ってコード書ける環境、という方が近いでしょう。

UXを突き詰めたい、というのも温度感次第で、突き詰めたくないと思ってる人はいないので、程度問題です。簡単な答えはなく、結局チーム構成に依存します。AirBnbのような会社なら重いパラメーターでしょうが、とりあえずAppStoreのディスカバリーに載せたい程度の気持ちで作ってるならRNでも十分だと思います。色々いいましたが、いわゆるウェブサービスのモバイルアプリは、ほとんどはこれに該当すると思います。

以下ツイートから引用