2017/09/20 16:26
ネイティブアプリ開発はReact Native一本でいいんじゃないか説
筆者は大学では建築史専攻であったし、職業としてエンジニアリングを行ったことはないが、メジャーなものからマイナーなものまで数十のプログラミング言語を読み書きできる。
先日、中国のマーケティング会社から見積を取った際、簡単なモバイルアプリを使ってアービトラージを取ることができるのではないかという仮説が生まれ、プロトタイプを作って検証することとした。
おもむろにXcodeを開いてみたのだが、Swiftで書くか、Objective-Cで書くかで迷い、手が止まった。(どちらも同程度に習熟しているが、各々短所を抱えているため)
迷うのも時間の無駄なので、Android(言語はJava)から先に書くかとAndroid Studioを開こうとして、アプリの形態的にReact Nativeで十分なことに思い至り、使い慣れたnpmコマンド(Node.jsのパッケージ管理ツール)一発でReact Nativeをインストールしてみた。
React NativeはFacebookが中心となって開発しているモバイルアプリ開発のためのフレームワークで、Facebook、Instagram、Airbnb、Skype、Walmart、Bloomberg、Baidu、Tencent QQ等々のアプリが同フレームワークによって開発されている。
言語はJavaScriptであるため、ウェブ開発チームとアプリ開発チームの統合も視野に入れることができる。
Showcase - React Native
A framework for building native apps using React
React Native
facebook.github.io
で、プロトタイプアプリの開発だが、結論から言うと、約20分後にはiOS、Android両方の端末で確認し、技術的、ビジネス的に様々な課題があることを発見できた。
筆者も長らくReact Nativeを触っていなかったが、刮目すべき進化を遂げており、Expoというストアからダウンロードできるアプリを通じてデザインやロジックを確認しながら開発する作業は凄まじい効率を産む。
Expo
Easily build React Native applications.
Expo
expo.io
ちなみに、上記のような錚々たる企業群のアプリに採用されているため、プロダクションレベルの品質は担保されているはずなのだが、React Nativeの採用に当たっては以下の注意点がある。
・ウェブにおけるReactコンセプトを理解し習熟していること
・サードパーティのライブラリの利用は可能な限り避けること
・FacebookのOSSライセンス問題
検索すると、Reactコンセプトを理解していない人物がReact Nativeを貶している文章が散見されるが、そもそもコンセプトにそぐわない設計のアプリには当然向いていない。
ライブラリ利用に関しては、React Native自体の開発速度が速すぎるため、互換性の問題が起きやすい。
ライセンス問題については検索して調べてほしい。
周りを見るに、未だに「こういうテーマで起業したので、Swiftエンジニアを探しています」等々の寝言を言っている起業家を目にするが、色々な意味でがっかりさせられる。