Airbnbでは「React Native」を使って開発することを止めたという話を聞きました。
一方で、Progateという会社では「React Native」を選択したという記事を見ました。
どちらの選択が正しいのでしょうか?
難しい質問ですが、どちらが正しいということはありません。
その理由をこの記事では説明していきたいと思います。
本記事の内容
- AirbnbがReact Nativeを使って開発することを止めた理由
- ProgateがReact Nativeを選択した理由
- さまざまな状況を確認して決めましょう
AirbnbがReact Nativeを使って開発することを止めた理由
AirbnbがReact Nativeを止めた理由を要約して説明したいと思います。
- React Nativeで開発をしても、SwiftやKotlinといったNativeのコードを書く必要がある。
- React、Swift、Kotlinの全てに精通している人は少ない。
- 複雑な実装をしようとすると、ハイブリッドアプリで、iOSとAndroidの両方に対応することは困難。
簡単なことならまだしも、難しいことをReact Nativeでやろうとすると、大変ということです。
また、全てに精通しているエンジニアを雇用することは難しいです。
それならば、SwiftのできるエンジニアとKotlinのできるエンジニアをそれぞれ雇った方がよさそうという判断なようです。
さらに詳細な理由を知りたいという方は、こちらの記事を読んでみて下さい。
ProgateがReact Nativeを選択した理由
次にProgate社が、React Nativeを採用した理由を簡単に説明したいと思います。
- 少数精鋭主義
- サーバーサイド(JavaScript)を知っている人であれば、React Nativeのために、新たに勉強するコストは少ない。
詳細な理由を知りたいという方は、こちらの記事を読んでみて下さい。
さまざまな状況を確認して決めましょう
ここまで読んできたところで、まだシックリこない方もいるはずです。
Airbnbはなぜ、最初からNativeで開発しなかったのか?
AirbnbとProgate社の、どちらの言っていることが正しいのか?
実はどちらが正しいということはありません。
会社の規模とステージの問題です。
もう少し言うと、エンジニアの獲得の難しさと人件費が関係しています。
Nativeで開発する場合と、React Nativeで開発する場合を、それぞれシミュレートしてみます。
Native開発の場合
- iOSの開発者が3人。
- Androidの開発者が3人。
- サーバーサイドの開発者が2人
このような感じで、合計で8人のエンジニアが必要になります。
エンジニアの単価が月に100万だとすると、合計で800万円になります。
これは上手く採用できた場合を想定しますが、そもそも採用することもできないかもしれません。
次にReact Nativeの場合です。
React Native開発の場合
- サーバーサイドの開発者とReact Nativeの開発者で4人。
これはReact Nativeで使う言語が、サーバーサイドのエンジニアにとって馴染みあるJavaScriptだから可能な話です。
人件費は半分の4人分で、400万円で済みます。
当然のことながら、採用も楽になります。
また、人数が少ないということは、コミュニケーションコストも大幅に減るということを意味します。
色々な状況を考えよう
Airbnbのような大きな会社では、資金と時間に余裕があるので、今ならばNative開発を選ぶことができます。
資金や時間の制約にしばられることなく、「最高のプロダクトをリリースすること」だけに焦点をあてれば、Nativeでの開発がベストです。
でも、Progateで同じことをやろうとすれば、アプリエンジニアの採用でつまづく可能性もあります。
今、都内でのアプリエンジニアの採用は、相当に難しい状況だと聞いています。
また、ベンチャー企業にとって、人件費が倍になることは辛いはずです。
プロダクト選定において、考えるポイントは以下の3点だと思っています。
- エンジニアの採用と人件費
- 既存の社員のスキルセット
- 簡単なアプリなのか、複雑なアプリなのか
これらを考慮した結果が、両者のフレームワーク選定の違いに現れています。
少し話は変わりますが、メルカリ社は、最初にプロダクトを作る時にPHPを選んだそうです。
その理由は、PHPだと、まとまった数の「そこそこできるエンジニア」を安定して採用できたからです。
ちなみに、今はGo言語に書き換えているようです。
開発言語やフレームワークの選定基準に、そういった技術以外の要素も含まれることを理解しておくと、見えてくる世界も変わってくるはずです。
Good luck for your engineer life!
この記事が面白かった人は、こちらの記事も読んでみて下さい。