体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

Reactネイティブとネイティブアプリでの開発の違いとは

本稿は、Course Reportのブログ記事を了解を得て日本語翻訳し掲載した記事になります。

本記事は、TurnToTechのAditya Narayan氏によってに投稿されました。

 

react-native-vs-native-ios-android-turntotech-620x656

AndroidとiOSの両方のモバイルアプリを構築したいとき、各OSのネイティブ言語(Androidの場合はJava、iOSの場合はSwift / Objective-C)を学ぶべきでしょうか?それとも、ハイブリッドフレームワークのReact Nativeを使用するためにJavaScriptを学ぶべきでしょうか?

 

あなたがすでに持っているコーディングスキル、アプリを開発する目的、そしてプロジェクトの長寿など、考慮に入れるべきことは多くあります。

この記事では、ニューヨークのTurnToTechのCEOでありモバイルブートキャンプを主催するAditya Narayan氏が、「React Nativeとネイティブアプリでの開発の違い」について掘り下げます。

 

React Nativeとは

Reactは最初、JavaScriptを使用してWebのインターフェースを構築するためのソフトウェアとして登場しました。

Facebookによって開発されたこと、特にWeb開発者に人気が高いこと以外は、ツールやベストプラクティスを備えた他のフレームワークと基本的に変わりません。

フレームワークにはそれぞれに利便性があるものですが、Reactの利便性は「インターフェースはデータの関数である」というシンプルな考えに基づいてUI開発にクリーンなスタイルをもたらすことです。

 

React Nativeが登場したのは約2年前ですが、モバイルのUI開発にも同じ考えをもたらしました。つまりWeb開発のコンセプトをモバイル開発の世界に持ち込んだのです。

React Nativeは、PhoneGapやCordovaなどのフレームワークと同じカテゴリに分類されますが、これらよりも技術的に優れていると私は思います。

 

なぜ開発者は、React Native vs ネイティブアプリ開発のどちらかから選ぶのか?

主な理由は2つあります。
React Nativeには大きなメリットがあります。React Nativeでアプリを一度開発すると、iOSとAndroidの両方にデプロイ(展開)できることです。このフレームワークは2つのプラットフォームに対応しています。 AndroidとiOSのネイティブアプリ開発はかなり異なっていて効率が悪いため、このメリットは非常に大きいでしょう。第一に、使用する言語がかなり異なります。iOSの場合は「Objective-Cと/またはSwift」、Androidの場合は「Java」を使用します。またAPIも異なります。たとえば、GPSを使用する方法も、アニメーションを作成する方法も、ネットワーク呼び出しの方法も異なるのです。
Web開発者にとって、React Nativeはモバイル開発の学習効果が上がりやすい、魅力的な選択です。React Nativeを使用したアプリのコード記述は、JavaScriptをコア言語としてCSSのUI関連タグを加えたHTMLによるWeb開発スタイルと似ていると、Web開発者は思うことでしょう。またツールとアーキテクチャも、Web開発者にとって馴染み深いものです。たとえば、Chromeをデバッグに使うことができます。DOMの概念もあります。これと比較すると、iOSやAndroidのネイティブアプリ開発は、Web開発と全く似ていないため、なぜWeb開発者にとってReact Nativeが魅力的であるかお分かりいただけるでしょう。

 

React Nativeでアプリケーションを構築する方法

どのプラットフォームに依存するアプリを開発するとしても、次の3つについての知識が必要です。
プラットフォームごとのプログラミング言語の選択
ツール
API

React Nativeの場合、プログラミング言語は、JavaScriptまたはJSX(JavaScriptとHTMLタイプの構文が混在する、JavaScriptに似た言語)が必要です。

1 2 3次のページ
TechAcademyマガジンの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。