ReactNativeとは何かを解説

今回は、ReactNativeとは何か、何が良いのか、SwiftやJava/Kotlinで開発するのと何が異なるのかなどを説明していきます。

ReactNativeについて理解できるようにしていきましょう。

ReactNativeとは何か

ReactNativeとは、Facebookが開発したフレームワークで、iOSアプリ開発に必要な言語のSwiftやAndroidアプリ開発に必要な言語のJava(Kotlin)を使わずにJavaScriptでモバイルアプリを開発をすることができるものです。

2013年にReactというJavaScriptライブラリを開発し、のちにモバイルアプリ開発でも利用できるように生まれました。

SwiftやJava(Kotlin)以外の言語でモバイルアプリを作れる、いわゆるクロスプラットフォームフレームワークは多く存在していますが、その中で1つで人気があります。

補足

クロスプラットフォームとは、異なるプラットフォーム上で、同じ仕様のものを動かすことが出来るプログラムのことを言います。

類似フレームワーク

他のクロスプラットフォームフレームワークと、ReactNativeとの比較表です。

React NativeFlutter(フラッター)Xamarin(ザマリン)
開発元FacebookGoogleMicrosoft
開発言語JavaScript, TypeScriptDart (独自)C#, F#
開発環境Nuclide, Visual Studio CodeAndroid Studio, IntelliJ IDEA, Visual Studio CodeVisual Studio
GitHub スター数89k97.8k4.3k
プラットフォームiOS, Android, Web(Windows)iOS, Android, Web, Windows, Mac, LinuxiOS, Android, Windows, Mac(Web, Linux, Tizen)
UIネイティブ独自ネイティブ/独自
利用サービスInstagram, Facebook, Facebook Ads, Skype, Tesla
メルカリ, クックパッド, Pinterest
Xianyu, Hamilton, Google Ads新型コロナウイルス接触確認アプリ, NHK 紅白, Nintendo Switch Online

人気

Githubスターで判断すると、現在はReactNativeとFlutterが人気です。

Flutterは、Googleが開発しているフレームワークで独自の言語(Dart)を用いて開発したりと、独自の路線を走っています。

プラットフォーム

ReactNativeは、iOS/Android/WEB/Windowsアプリケーション開発ができます。

WEBはReactがありますが、ReactNative for WEBが出てきたりしています。モバイルとWEBでコードを使いまわせる点が利点です。

UI

ReactNativeは、ネイティブのUIを採用しています。

例えば、ボタンを表示する時にiOSアプリであればiOSのボタンを表示し、AndroidアプリであればAndroidのボタンを表示します。

ReactNativeの良い点

ReactNativeとは何かがわかってきたところで具体的にReactNativeを使うと何が良いのかを説明します。

ネイティブアプリ体験を実現できる

上で説明した通り、ReactNativeはネイティブのAPIを使ってUIを描画しているのでパフォーマンスがよく、ネイティブ同様の体験をアプリに組み込むことができます。

ほぼネイティブと遜色ないレベルまできているので心配せずに使えます。

Learn once, Write anywhere

Reactは、「Learn once, Write anywhere」の思想の元作られています。

これは、一度学べばどのプラットフォームでも使えるよという意味です。

React自体も非常に人気があり実績もあるライブラリですし、Reactが使えるエンジニアはReactNativeも抵抗なく実装ができる点は大きいです。

それによって、開発メンバーも集めやすくプロジェクトをよりスムーズに進めやすくなります。

コードの共通化ができる

ネイティブ言語でアプリを開発する場合は、iOSとAndroidそれぞれで開発する必要がありますがReactNativeはコードの再利用が可能です。

例えば、ログイン画面があったとして、ReactNativeで実装してしまえばiOSとAndroid共通で使うことができます。

すぐにリリースしてユーザーの反応をみたい場合など開発を素早くできるので便利です。

開発が早い

SwiftやJava(Kotlin)で開発する場合、コードを修正するごとにコンパイルを行うので時間がかかったりしますが

ReactNativeの場合は、ホットリローディングが使えるので、すぐに動かすことが可能です。

補足

コンパイル: 実行できるようにコードを変換すること

ホットリローディング: コンパイルなしで変更が反映されること

SwiftやKotlinを使って開発することも多いですが、この点に関してはReactNative素晴らしいなと特に思います。

最後に

ReactNativeについて書いていきました。

実際アプリの要件によっては、ネイティブで実装した方がいい場合もあります。(複雑なUIやOSレベルでやりたいことが多い場合など)

ぜひReactNativeでアプリを作ってリリースしましょう。