先日、Winc愛知が開催した起業家のビジネスプラン発表会に参加しました。そこで、ハイブリッド型のモバイルアプリ開発とは何か? React Nativeを使って、本当にAndroid, iOS両方を対応できるアプリを構築できるのか?等、沢山の質問を受けました。そこで、本記載では、React Nativeの簡単概要だけをまとめてみました。
■React Nativeとは何か?
React Nativeは、Reactを開発したFacebookがオープンソースで公開しているフレームワークです。実際に利用しているアプリとしては、Facebook, InstagramといったFacebook製アプリ、SkypeやAirbnb, Walmartなどの有名サービスのアプリ、中国検索最大手のBaiduのモバイルアプリ、WeChatの製作元のTencentのアプリなど、様々な企業が利用しています。
■React Nativeの特徴とメリット
1. 一つのコードベースでの開発
React Nativeの最大メリットは、一つのコードベースで各プラットフォーム向けアプリを開発できることです。
2. 効率の良い学習
React nativeに関するドキュメントが揃っていて、サンプルコードが沢山あります。問題に突き当たった時Webで検索すると、たいていの解決方法が出てきます。React Nativeで効率良い学習ができる理由は、ソースコードを書いてから実行されるまでの時間がとても短いからです。
3. リリース後でもソースコードを更新可能
React Nativeでは、UIへの反映やロジックの実行など、ほとんどの実装はJavaScriptのソースコードで行っています。そのため、アプリ自体をストア経由でアップデータせずとも、JavaScriptのソースコードを差し替えることで、リリース後のソースコード更新もこちらのコントロール下で行えます。
■React Nativeのデメリット
1. パフォーマンスの問題
凝ったUIを実装する場合、実装方法によってはパフォーマンスが悪くなることがあるようです。特に、Androidでの問題が挙げられることが多いです。ただ、同じUIをSwiftとReact Nativeで実装した時のパフォーマンスの差を計測していますが、ほとんど変わらない結果になっています。
2. 標準的なUIがない
iOS, Androidで開発する場合、各プラットフォームでヒューマンインタフェースのガイドラインがありますが、React Nativeでは、特に決まっておらず、何が最適かを考えてアプリのUIを実装する必要があります。
3. 未対応のライブラリ
AppleやGoogleが発表したばかりの最新機能については、React Native用のライブラリが対応するまで時間がかかることも多いでしょう。