AirBnb がReactNativeをやめることが話題になってますね。
以下私見です。
RN採用可否のフローチャート
自分がRN使いたいといって相談された際にはこういう感じで返してます。基本的にはExpo 採用可能か否かで判断してます。 Expo ではじめる ReactNative 開発環境 - Qiita
- プラットフォームごとにUXを突き詰める必要がある => RN やめとけ
- Q: 社内にモバイルのエンジニアがいない
- YES:
- Q: ネイティブAPIが Expo 組み込みのAPIで足りて(https://docs.expo.io/versions/latest/ 参照)、開発側で広告SDKなど外部要件がコントロールできる
- YES: => RN+Expo
- NO: 諦めた方が無難
- Q: ネイティブAPIが Expo 組み込みのAPIで足りて(https://docs.expo.io/versions/latest/ 参照)、開発側で広告SDKなど外部要件がコントロールできる
- NO:
- Q: Web開発者多数 + モバイルエンジニア少数の環境である
- YES: => RN採用可能
- NO: 別の案を検討
- Q: Web開発者多数 + モバイルエンジニア少数の環境である
- YES:
- とにかくエッジなのを採用してモチベーション上げたい => Flutter
- C# 派 => Xamarin
- Web標準派 => PWA
Expo を推してる理由は、RNの根本的に不安定な部分を、比較的安定している Expoに押し付けることができるからです。Expoを使わない場合、現時点ではRNのバージョンアップの追従で3プラットフォーム全てに習熟する必要があり、技術的な要求レベルも割くべきリソースも必要です。
正直なところ、 RN も PWA も、現時点では貧者のツールなのは否定できません。また、RN 開発で必要なノウハウはWebのスキルと言うより、もはや GUI 開発のスキルなので、JSが使える以上のスキル転用は望めません。僕のようなSPA開発者が漲ってコード書ける環境、という方が近いでしょう。
UXを突き詰めたい、というのも温度感次第で、突き詰めたくないと思ってる人はいないので、程度問題です。簡単な答えはなく、結局チーム構成に依存します。AirBnbのような会社なら重いパラメーターでしょうが、とりあえずAppStoreのディスカバリーに載せたい程度の気持ちで作ってるならRNでも十分だと思います。色々いいましたが、いわゆるウェブサービスのモバイルアプリは、ほとんどはこれに該当すると思います。
以下ツイートから引用