Help us understand the problem. What is going on with this article?

どちらも触ったこと無いけどReactNativeとFlutterを雑に比較して考えたことメモ

More than 1 year has passed since last update.

比較の目的

  • 社で はやいプロダクト開発 という目標というかテーマができそう
    • 作るのが早い
    • 動作・パフォーマンスが速い
  • 作るのが早いと言う点で、クロスプラットフォームを検討してみたい
    • 社ではネイティブの開発は結構がっつりやっているが、クロスプラットフォームはやっていない
      • iOS/Androidのネイティブのエンジニアはそれぞれいる
      • react, vueを触るwebフロントエンドのエンジニアもいる

私のスペック

  • iOSネイティブ開発やっている
    • Android開発はほとんどやったことない
  • react, typescriptのwebフロント開発やっている

とても参考になった記事

このまとめがかなり示唆に富んでいる感あるなと思いました
スクリーンショット 2019-11-04 14.39.01.png

雑な感想

作るのが早い

  • どんな経験値の人がやるのかによって変わりそうな気はした

Flutter

  • ネイティブアプリ経験者ならflutterの方が初速は出そう
    • モバイルSDKの再発明と捉えると、両OSでライフサイクルが違っているところとかをいい感じに吸収して実装コスト下げれそう
    • モバイル開発の延長っぽい気がしていて、モバイル開発の知見が多少必要そう・活きるイメージ
    • react, vueやってた人が始めようと思うと学習コストは高そう?
      • でも宣言的UIの考え方はネイティブアプリには無い&reactと近く、むしろreact, vueやった人の方が学習が早い?
  • ネイティブ開発者の中で閉じてスピードアップを考えるならFlutterの方が良さそう

ReactNative

  • webフロントエンドの手法をインポートしているので、ネイティブ開発者には学習コスト高そう。短期的にはスピード落ちそう
  • 社内のwebフロントエンドエンジニアにアプリ開発に参加してもらえるようになるので、フロントエンジニアが多いなら一気にアプリ開発者の人数を増やせそう
  • 細かいところで各OSの専門知識は必要になる
    • react書ける人だけでは難しそうで、各ネイティブの専門知識わかる人は必要になりそう
  • フロントエンド開発者まで巻き込んでスピードアップを考えるならReactNativeは良さそう
  • fluxなどのアーキテクチャについて多くの知見が既に存在していて、その辺を持ち込めるのは強い
    • Flutterより大規模開発の知見が厚いイメージ

当然だが、要件次第ではある

  • ネイティブな機能をゴリゴリ使うアプリだとネイティブで書いた方がたぶん早い
    • でもそういう案件って実はあんまり無く、クロスプラットフォームで行ける案件は多いイメージ
  • webアプリ版も作りたいとなるとFlutterWebよりReactNativeWebの方が強そうなイメージはある
    • ReactNativeなら、別途react.jsで作り直すにしても再利用できるコードが多そう

動作が速い

  • 普通に考えるとネイティブアプリが最速なので、どこまで許容できるのか的な視点
  • とはいえ、よほど複雑な画面とかで無い限りあんまり問題にはならず、ほとんどの場合は許容できる範囲な気がする

まとめ

想像ばかりなのであまり身がない記事ですが...

  • ネイティブ開発者にとってはFlutter良さそう
  • webフロント開発者にとってはReactNative良さそう
  • どちらも宣言的UIだし、そういう時代だなぁ
  • 雑に社でも相談してみよう
abeyuya
Rails, AWS, Firebase, Swift, Objective-C, Serverless Framework, Node.js, JavaScript, Typescript, React.js, ReactNative
http://nkk.hatenablog.com/
sikmi
しくみ製作所株式会社は、世の中の「しくみ」を素敵にするためのソフトウェア開発集団です。オフィスのない弊社は、メンバー全員リモートワークです!
https://sikmi.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away