目次
企業でのDX(デジタル・トランスフォーメーション)が進む昨今、モバイルアプリを開発することも必要となってきています。そのような中、アプリ開発のスピードも求められるようになってきており、それは企業によっては課題となっている現状もあります。この課題解決には、クロスプラットフォームを活用することがとても有益です。今回は、このいくつかあるクロスプラットフォームの中でもFacebook(現在のmeta)社が開発をしたReact Nativeというフレームワークについて解説をしていきたいと思います。
React Native(リアクト・ネイティブ)とは何か?
React Nativeとは、Swift(iOSアプリ用のアプリ開発言語)やKotlin、Android Java(Androidアプリ用のアプリ開発言語)を使用せずに、JavaScriptでモバイルアプリを開発することができるFacebook(meta社)が独自に開発したフレームワーク(以下、FWとします。)のことを指します。このReact Nativeを使うことで、iOS/Android/Webアプリをまとめて開発することができます。スマホアプリとWebアプリを一つのソースコードで開発できるのは大きなメリットと言えるでしょう。また、UIはネイティブのUIを採用しています。React Nativeが利用されているサービスの実例としては、Instagram、Twitter、NAVITIME、Progateなどが挙げられます。
React Nativeを活用するメリットとは?
このようなReact Nativeを活用することで、どのようなメリットがあるのでしょうか?主に以下の3点が考えられます。
・高速開発が可能
・ホットリロードにより、確認/検証作業時間を短縮できる
・「Learn once, Write anywhere」(一度学べば、どこでも書ける)
それでは、一つ一つメリットの詳細を見ていきます。
高速開発が可能
先述しましたように、React Nativeはクロスプラットフォーム開発用のFWです。iOSとAndroidのアプリを1つの言語で同時に開発を進めることができるので、開発工数を大幅に削減することができます。
ホットリロードにより、確認/検証作業を短縮できる
React Nativeには、コンパイルなしで変更が反映されるホットリロード機能があります。SwiftやJavaの場合、小さな修正をおこなっただけでも1からコンパイルして確認・検証する必要がありますが、React Nativeの場合、ソースコードの保存時に自動でリロードが行われるため、コンパイルが不要です。ホットリロードにより、開発がスムーズかつ容易に行える点も大きなメリットの一つでしょう。
アプリストアのリジェクトを回避できる
開発したスマホアプリをApp StoreやGoogle Playにアップロード(掲載)するためには、アプリストアを運営するApple Inc, Googleを運営するAlphabet Inc,による審査・レビューを受ける必要があります。アプリストア運営会社が公表するガイドライン等に抵触する場合、リジェクト(却下・不合格)判定を受け、アプリストア上へのアップロードが認められません。リジェクトを受ける理由は様々ですが、アプリ上に潜む些細なバグやリンク切れなどのシンプルなものであっても、改修してから再申請・再審査を受けるまでに数営業日待つケースもございます。このような実情に対し、Apple Inc,はJava Scriptをベースとした一部修正・一部変更に関しては、審査・レビューをしないことを公表しているため、React NativeのFWを利用する場合、アプリストア側によるリジェクトを回避することができます。これは大きな利点の一つと言えるでしょう。
「Learn once, Write anywhere」
Reactという言語は「Learn once, Write anywhere」という1度学べばどこでも使える、という考えの下、開発されたFWです。言い換えると、Reactを使える技術者はReactNativeも実装ができるという利点があります。考え方によって、複数の言語を使用できなくとも、開発を進めることができることから、プロジェクト自体を進めやすくなるという意味でも、React Nativeを使用する利点があるでしょう。
React Nativeのデメリットとは?
良い点が多いReact Nativeですが、ネイティブアプリと比較した場合のデメリットに関してもご紹介したいと思います。
・ネイティブのエンジニアは不向き
・エラーの修正に時間がかかる
・ゲーム開発には向いていない
・アップデートへの対応が手間に
ネイティブのエンジニアは不向き
SwiftやKotlinなどネイティブでの開発を得意とするアプリエンジニアにとっては、0からJavaScriptを学習することになるため、学習コストがかかります。Reactに精通しているエンジニアにとっては便利なReact Nativeですが、そうではないエンジニアにとっては、活用が難しいFWと言えるでしょう。
エラーの修正に時間がかかる
これは他のFWでも言えることですが、エラーが起きた場合に、ネイティブ側で発生しているのか、JavaScript側で発生しているのかを探す必要があります。また、iOSアプリではエラーは出ないが、Androidでは起きてしまうというケースも考えられるので、一筋縄では解決し得ない問題も起こり得るという点はデメリットと言えます。
ゲーム開発には向いていない
React Nativeはツール系のアプリ開発によく利用されます。ゲームの開発にはUnity、Robroxなどのプラットフォームが適しているといえます。
アップデートへの対応が手間にも
現状のReact Nativeは大規模なアップデートが頻繁に行われています。比較的新しいFWならではの問題と言えるでしょう。アップデートが行われる度、使用環境も全てアップデートをしていかなければならないことになります。アップデートが追いつかないことで、普段は問題なく動作していたアプリケーションが停止するといった、ユーザー離脱につながる事象が起きる可能性が出てきます。そうならない為にも、アップデートの都度、手元の使用環境もアップデートをかけることが重要です。
React Nativeを用いて開発されたアプリ事例
ここまでReact Nativeについて詳しく見てきましたが、実際に活用されて開発されたアプリの事例を見ていきたいと思います。中でもまだ事例の少ない国内のものに特化してご紹介していきます。
・NAVITIME
・Progate
NAVITIME
NAVITIMEは世界初のナビゲーション技術である「トータルナビ」をコアに、公共交通機関を始めとする自転車・バイクなど各移動手段ごとに最適化されたナビ情報を提供するというアプリケーションです。
NAVITIMEの事業のうちインバウンド事業部という部署が React Nativeを採用し導入しました。主に自治体向け観光アプリの開発や外国人観光客の誘致などのコンサルティングを行う部署です。React Nativeを導入した背景には、開発工数の削減やAppStoreのリジェクト回避という目的がありました。
活用した内容としては、実績がない状態では全てをReact Nativeにするのは難しいという背景から、簡単な画面からReact Nativeしていくこととなりました。地図の部分に関してはReact Nativeで動くようにはなっておらず、「ネイティブとReact Nativeのハイブリッドアプリ」として運用することに。
結果として、ネイティブの知識もあるエンジニアがいないと開発は難しいこともあるので、活かせる部分をうまく活かしてアプリケーションを開発するにはとても有効な手段であると語られています。
Progate
プログラミング初学者向けの学習プラットフォームを開発するProgateは、Web版のサービスはReactで開発をしていました。ゆえに、国内でまだ実績があまりなかったにも関わらずReact Nativeでのアプリ開発を決定。
Web版でのサービスが好評で軌道に乗っていたため、わざわざ開発コストを高くして、未経験者がネイティブツールの使い方をイチから勉強するのは時間がかかり過ぎ、Web版と同じ工程で開発ができるReact Nativeを活用することはリスクを取ることではあったそうですが、結果として成功だったと語っています。
「少数で・高速に・高品質に」の3つを常に追求しているProgateは、React Nativeのビルドの速さを特に評価しています。3秒もあれば動作確認ができるホットリロード機能が標準搭載であることは作業の効率化につながり、開発もしやすかったとのことです。
Instagram(インスタグラム)
ショート動画や画像、ストーリー投稿を中心として全世界に大ヒットした人気アプリ、Instagramは、2016年からReact Nativeの導入を開始しました。既存のInstagramのアプリがネイティブで開発されていたため、プロジェクト序盤は一部の機能に限定して開発がスタートしました。最もシンプルなUI機能、Push通知からReact Nativeによる実装をはじめ、徐々にその範囲を広げました。最終的には、Push通知の他、SMS(ショートメッセージサービス)キャプチャ&チェックポイント、ポストプロモート、コメントモデレーション、リード・ジェネレーション広告機能にReact Nativeが活用されており、これらの機能はiOSアプリとAndroidアプリ間で約80%~99%の共通ソースコードが使用されています。
まとめ
いかがでしたでしょうか。
メリットの多いReact Nativeですが、まだまだ国内での資料が少なく開発をスムーズに行うのが困難だと感じる方も多いのが現状です。しかし、その一方でReact Nativeは開発コストが大幅に削減できます。海外では成果の得られているフレームワークでもあるため、開発の効率化が避けられない現状、国内でもどんどん活かしていく必要があります。私たちの普段使うアプリケーションでも活用されていることからも、ハイブリッドアプリ開発における良い選択肢と言えるでしょう。
-
GeNEEの開発実績製造業、小売業、流通業、印刷・出版業など、業界別のベストプラクティスを保持しています。
弊社の開発実績にご関心のある方はこちら一部公開可能な事例を掲載中
-
GeNEEの事業内容
現在、6事業を展開しております。お客様の状況や目標に合わせて、FITするソリューションを提供いたします
6事業の詳細はこちら
-
弊社主催セミナー
最大月に1回のセミナーを開催しております。毎回30名以上の方にご出席いただいております。
テック系のセミナーにご興味ある方はこちら月に1回テック系セミナー開催中
-
オウンドメディア
GeNEE は技術に関する情報発信を積極的に行っています。 弊社のお客様だけでなく、業界全体に貢献のできる品質の高い情報提供を心掛けています。
最先端テクノロジーの情報配信中
-
GeNEEの会社概要
ビジネスxテクノロジーxデザインの三位一体で、お客様の課題を解決する独自のアプローチをご紹介
創業から15年の実績
-
GeNEEの5つの特徴
なぜGeNEEはコンサルティングやシステム開発のプロジェクト成功率が高いのか。
競合他社との違いや優位性についてまとめております。GeNEEの5つの特徴
-
GeNEEへのお問い合わせ
DX/ITコンサルティングのご依頼やシステム開発・スマホアプリ開発のご相談はこちらのフォームからお願いいたします
お問い合わせフォームはこちら
-
GeNEEの資料をダウンロード
ご希望の会社様にGeNEEのパンフレットをお送りしております。
ITベンダーとの繋がりをお探しの方は是非お気軽にリクエストください。資料ダウンロードはこちら
取締役
慶応義塾大学経済学部、慶応義塾大学大学院・慶応義塾大学ビジネススクールMBA(経営学修士取得)卒業。
大手目がベンチャー企業の株式会社ディー・エヌ・エーで国内利用者数約200万人のメガヒットアプリ、マンガボックスアプリをゼロベースから開発。その後複数の大手企業を経て、株式会社GeNEEの取締役に就任。
MBA(経営学修士)等


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>