プログラミング道場Top

開発言語やフレームワークの選び方

更新日:

開発言語やフレームワークは、どのように選ぶのでしょうか?
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)を知っている人であれば、新たに勉強することは少ない。

こちらも、詳細な理由を知りたいという方は、こちらの記事を読んでみて下さい。

さまざまな状況を確認して決めましょう

ここまで読んできたところで、まだシックリこない方もいるはずです。
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!

-プログラミング初心者

Copyright© プログラミング道場 , 2018 All Rights Reserved Powered by AFFINGER4.