LoginSignup
34
28

More than 5 years have passed since last update.

Introduction - Why React Native?

Last updated at Posted at 2015-11-30

この一人React Nativeアドベントカレンダー2015を始めるにあたって、最初に前提条件を整理しておきます。

まず私のバックグランドは、外資系金融会社でインフラ業務を7年間、その間Perlを用いてツールなどを開発していました。昨年、スタートアップ業界に転職し、Rails, iOS(swift), Angularを主に業務を行っています。Reactはメイン業務では使用しておらず、ReactNativeを自分のプロジェクトで利用しています。したがって、React自体の理解不足の可能性があるのでその辺はご容赦いただき、何かありましたらご指摘していただければ思います。

What is React Native?

React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React.

React NativeはJavascriptとReactを用いてネイティブアプリを作るための開発ツールセットです。

How is React Native?

私が見るところ、ReactNativeは海外ではちらほら話題が出ているのにもかかわらず、日本ではほとんどReactNativeというワードを見ません。例えば、下記のポストのようにiOSデベロッパーのMarc氏は、"ReactNativeを始めて数ヶ月経った今、「もうObjectCやSwiftでアプリを作らない」と自信を持って言える"、と言っているように、さらにReactNativeのレポジトリのスター数は23,000を超えるモンスターレポジトリになっています。そして、Releaseスピードも早く2,3週間に一回、新しいバージョンをリリースするサイクルになっています。

'Fast-forward a couple of months, and I’m confident enough to say I may never write an iOS app in Objective-C or Swift again.'
"An iOS Developer on React Native" from Medium post

Pros and Cons of React Native

私の視点で良い点と悪い点を箇条書きしておきます。

Pros(良い点)

  • iOS,androidのネイティブアプリをJavascriptで作れる
  • iOSとAndroidのコードの共有化
    • コンポーンネントは無理なところもあるが、ロジックは共有できる
  • Reactを使う
  • Reactのエコシステムを利用できる。(Flux, Redux等)
  • BabelでtransformしているのでES6,7等の新しいシンタックスで書ける
  • 非同期のプログラムを書く(業務で同期プログラムのみを書いている人には勉強になる)

Cons(悪い点)

  • リリースサイクルが早くてバージョンアップについていかないといけない
  • 問題があるとgithubのissueをあさったり、stack overflowで探さないといけない。(英語リソースの数は少なくはありません)
  • 後発のAndroidの利用できるAPI,Component数がiOSに比べて少ない
    • したがって、githubのモジュールを入れる必要がある(が、リリースサイクルが早いため、メンテされてないと使えない場合がある。モジュールを使うリスクを考慮する必要がある)

Summary

海外では注目を集めていて、ReactとJSで開発でiOS, Androidアプリを開発できていまうReactNativeは視野に入れる価値のある開発手段であると思います。またReactやそのエコシステムを実際に触れ、学ぶことができ、それがWebにそのまま生かせる(逆の発想ですが)のも魅力的です。このアドベントカレンダーでは、稚拙ですが、ReactNativeについて色々書きたいと思います。

明日はiOSアプリを作ってみようと思います。

34
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
28