ReactNative所感
ReactNativeをProduction開発で書き始めたので感じたことをつらつらとまとめます。
ReactNativeを開発していていくらかつらみを感じることがあります。素のReactと比較して、あるいはそれ単体でのつらみ。
1. Inspector
Reactを開発していると必ずと言ってもいいほど入れておきたいのがReactDevToolsです。 GithubのこいつとChrome Extensionを合わせるとChromeの開発者ツール画面で素敵なInspectorを拝むことができます。 Chrome開発者ツールのElementsタブのように、Componentのstate, propsなどにアクセスできます。React開発者の必需品ですね。
一方, ReactNativeでアプリ開発をしたいときもWebのReactと同様にComponentの中身を見たいことはあります。 しかし、Emulatorで起動するという都合上ReactNativeのInspectorはなかなか微妙と言わざるを得ません。非常に使いにくい。
どうですか、これ。わかりにくいでしょう! 私は開発しながらInspectorを起動することは殆どありません。どなたかInspectorの便利な使い方を教えてください。
2. Libraryの未対応問題
Reactの利点は何と言ってもCommunityの活発さですね。 React開発者が作った便利コンポーネントや便利Libraryを使い放題です。
ところがReactNativeのCommunityはReactほどの活発さは未だないため、かゆいところに手が届きません。 Reduxなど、Reactで人気爆発のLibraryを使える場合ももちろんあります。 しかし、ComponentはまるっとReactNative用にコードを書かないといかないためなかなか完全に対応しているものはいまだ多くはありません。
3. NativeModulesのつらみ
Libraryが未対応だと自前で用意しないといけないことが多々ありますね。 特に、iOSやAndroidのネイティブモジュールを実行したいときなどはNativeModulesを書く必要がありますね。 こちらが取っ掛かりはかなり面倒くさい。
JavaScriptプログラマだからReactNativeで開発しているのに結局ObjCもJavaも書かなきゃいけないんです。
しかし、このNativeModulesやサードパーティのモジュールなどをうまく駆使することができれば、ReactNativeはとてもたくさんのことを実現できます。 これからネイティブアプリ開発をお考えのそこのあなた!ReactNativeを是非考慮してみてください!
Takamichi