この記事書きながら調査。ある程度調査した後気づいたけど、ReactNative、WebView上で動かない意味でアーキテクチャ全然違うので比較として微妙だ…。
- GitHub
- ReactNative
- ionic2
- スター数ではReactNativeが勝利
- アーキテクチャ
http://qiita.com/naoya@github/items/ecda4d3089902dcbea53
- ionic2: Angular2を使う。
- 普通にWebView上で動作するシステムとなっている
- ReactNative: Reactを使う
- が、ちょっとアーキテクチャが特殊で、WebView上で動くものではない
- JavaScriptエンジンを内部に持っていて、それのブリッジからOS標準のビューを生成してくれるもの。スタイルシートっぽいのが出てくるがスタイルシートではないし、HTMLっぽいのが出てくるがHTMLではない。
- JavaScriptでネイティブアプリ。フレコミとしてはTitaniumと似てる
- React Native ファーストインプレッション - Qiitaは必ず読むべし
- ionic2: Angular2を使う。
- Resposive Grid Systemの有無
- ionic2はGridコンポーネントを使う。Bootstrap等のgridと同じ。
- ReactNativeはflexboxチックな記述を使う
- ネイティブプラグイン
- ionic2はcordovaに依存するので、cordova pluginを書けば同じように使える
- ionicのせいではないが、cordova pluginは入れ直すとすぐキャッシュが残ったりするのか、動かなくなるので非常に奇妙。プラグイン制作したときに、このあたりで非常に苦労した。おかしくなったらStackoverflowに行くが、すぐに
cordova platform remove android
したあとcordova platform add android
しなおせが沢山出る。 - cordova plugin作るときはplugmanを使うが、
plugman platform add android
するとxmlがminifyされる。(GitHubの更新見てるとまだメンテはしているようだったけど…。)節子、それ人がいじるファイルや
- ionicのせいではないが、cordova pluginは入れ直すとすぐキャッシュが残ったりするのか、動かなくなるので非常に奇妙。プラグイン制作したときに、このあたりで非常に苦労した。おかしくなったらStackoverflowに行くが、すぐに
- ReactNative:
- Android:各種プラグインをライブラリプロジェクト(言い方が古いかも。GradleModule)として作成する
- この点で、cordovaのようなビルドの問題が起きにくそう
- iOS:未調査
- Android:各種プラグインをライブラリプロジェクト(言い方が古いかも。GradleModule)として作成する
- ionic2はcordovaに依存するので、cordova pluginを書けば同じように使える
- データベース
- ionic2: @ionic/storageがある
- ReactNative: Realmのモジュールがある
- 各種ネイティブモジュールの形式
- ionic2: cordova pluginを使うので、
cordova plugin add ...
でいろんなプラグインを入れる。 - ReactNative: npm modulesとして公開されているものを
npm install
して利用する。
- ionic2: cordova pluginを使うので、
認識あってるんかなー