Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。 まずはとにかく自由を目指すエンジニアのブログです。

哲学とプログラミングとブログがメインになるかと。
プログラミング

【React Native】iOS・アンドロイドアプリ開発React Nativeとは?

どうも、とがみんです。

最近はモバイルファーストと言われるほど、スマートフォンを多くの人が使うようになってきました。

そんな中で、今後もスマートフォンアプリの需要も上がってくると思います。

今回はiOS、アンドロイドアプリの両方に対応したスマホアプリを開発することのできる「React Native」について紹介します。

React Nativeとは

React Native はFacebook社が2015年に発表したネイティブアプリのクロスプラットフォームの開発フレームワークです。

ネイティブアプリとは、あるプラットフォーム上(OS上)で直接動作するアプリのことを言い、Androidアプリや、iOSアプリがそれにあたります。

クロスプラットフォームとは、異なるプラットフォームで共通して利用できるもののことです。

プログラミング言語の「Swift」では、iOSアプリしか開発できず、アンドロイドアプリを開発する際は「Java」、「Kotolin」を扱うのですが、それではiOSアプリを開発することができません。

しかし、React Nativeはそれら両方に対応しているので、React Native を勉強することによって、AndroidアプリとiOSアプリの両方に対応したプログラムを同時に書くことができます。

>React Native

>お試し10分】React Nativeことはじめ!サンプルアプリをサクッと動かす

Reactってなに?

React Native と聞いて、「Native」はネイティブアプリのことを指すのだろうと推測できるのですが、じゃあ、

「React」って何?

という疑問が湧いたので調べてみました。

React の語源になっているものがリアクティブ(Reactive Programing)です。

リアクティブプログラミングとは、変更があるたびに、その変更を反映させるようなプログラミングの考え方です。

例えば、GPSの位置情報を取得して、取得した情報をどこかに送信するというプログラムがあった際に、

一定期間の位置情報のデータを一片に送信するのではなく、位置が変化する度にデータが送信され、受け手は、データを受け取る度に処理をしていくといったようなものです。

リアクティブプログラミングとは、このように何か変更があった際に、データが流れるように、受け手に送信され、

受けてはデータを受け取る度に、そのデータを処理するようなプログラミングの考え方のことです。

React Nativeでのアプリ開発に置いて、プログラムを変更した際に、リアルタイムで、結果がアプリに反映されていきます。

SwiftでiOSアプリを開発していた時は、コードを変更した後に、ビルドをし直す必要があり、プログラムの規模が大きくなればなるほどと、ビルドの時間がどんどん長くなっていき効率悪く感じていたのですが、

React Nativeでの開発はリアルタイムで結果に反映されて行くので、非常に効率良いです。

この点がReactという名前がついた理由です。

>SwiftエンジニアがReact Nativeでアプリを作って感じたこと

>リアクティブプログラミングとは

その他調べたこと

eact Nativeについて、その他調べて気になったことをまとめていきます。

React Nativeは発表が2015年と、新しい技術なので、使える機能がまだまだ少ないそうです。

また、アップデートの頻度が2週間に1度と多く、不安定で、アップデートによる不具合が多いのではないかと思います。

アンドロイドアプリ、iOSアプリの両方の開発を同時に行えることもあり、開発スピードはReactNativeでのアプリ開発のスピードは断然早いそうですが、

まだまだ発展途上ではあるので、保守性を重視する場合は向かないとのことです。

>SwiftエンジニアがReact Nativeでアプリを作って感じたこと

まとめ

アンドロイドアプリ、iOSアプリの両方を開発でき、現在発展途上で不安定ではあるものの、

将来的に需要はどんどん上がって行くのではないかと考えています。

また、何か記事に関して、不明点等あれば、指摘していただけると幸いです。

参考文献

>React Native

>お試し10分】React Nativeことはじめ!サンプルアプリをサクッと動かす

>SwiftエンジニアがReact Nativeでアプリを作って感じたこと

>リアクティブプログラミングとは

>SwiftエンジニアがReact Nativeでアプリを作って感じたこと