React.js meetup × React Native meetup に行ってきた

最近 React.js を触っていることもあり、運良くイベントに当選したので参加しました。

パネルディスカッション

React Native で iOS/Android に対応するためにはコード内に分岐が多く生まれそうなイメージですが、 Togetter アプリのコードには分岐がほとんど無いという話が驚きでした。

パフォーマンスについては、PhoneGap や Titanium で作ったアプリよりヌルヌル動くとのことでした。 先日 Swift で書かれた iOS アプリと React Native で書かれた iOS アプリのパフォーマンスやメモリの使用量を比較した記事が出ていました。 それだけで単純比較するのは良くありませんが、React Native にとってはポジティブな内容でした。

コンポーネントの共通化については、ネイティブアプリの開発環境で用意されている UI を使用する場合は共通化が難しい印象ですが デザインがオリジナルに近いアプリでは共通化できる箇所が多そうだと感じました。

React や React Native の寿命については、少なくともすぐに無くなる事はないだろうということでした。将来のことは分かりませんが少し安心しました。

React Hot Loader の話

State を保持したまま Hot Module Replacement (HMR) できるのはフォーム周りのコンポーネントを書いているときにとても便利だなと思いました。 個人的には CSS スキルが低いため何度もブラウザをリロードする必要があるので、特に CSS を書いているときに重宝しそうです。

Boilerplate でアプリを書いているとだいたい HMR できるようになっていますが、既存アプリへの組み込みは難しそうなイメージがありました。

ドメインロジックをどこに置くかという話

データベースとのやり取りや API の呼び出しなど描画に関すること以外のドメインロジックをどこから呼び出すかという話でした。 発表者が開発している Bdash は、Action Creator からドメインロジックを呼び出しているとのことでした。

Bdash は画面数が 3 つと少ないこともあり、それぞれのページで Flux アーキテクチャが構成されているイメージで State を程よい粒度で分割できて見通しが良くなる一方、ページをまたいだデータの共有が面倒だったりとデメリットもあるようでした。

hyperapp というコンパクトなライブラリの話

Virtual DOM + State 管理 + Router が合わさった SPA アプリを作るためのライブラリの話でした。 React は大きすぎる、小さい Virtual DOM がほしいなどの理由で開発されたそうです。

依存ライブラリが無いという点に驚きました。コードベースがとてもコンパクトなので学習用途にも良さそうです。 どのように機能のバランスを取って行くのか、これからが楽しみなライブラリです。

Androider から見た React Native の話

Android ガチ勢の開発者が React Native を触ってみた話でした。 ネイティブアプリ開発者が React Native をどう見ているのか聞いてみたかったのでありがたいです。

React Native で開発する時のあるあるとして、

  • 目的のコンポーネントや API が公式で提供されているか確認する
  • なければ「react native 欲しいコンポーネント/API 名 GitHub」でググる
  • それでもなければ自分で作る

というループ作業になるそうです。

やる気があれば自分でイケてるコンポーネントを作って GitHub のスターをゲット!というのは夢がありますね。 ネイティブアプリを実装している人がつまらないところ (設定画面など) は React Native で Web 開発者でも担当できるようにする、というのは良いアイデアだと思いました。


React.js や React Native について様々な情報を聞くことができた良いイベントでした。 フロントエンド系の勉強会に行ったのは初めてで、Web 系っぽい(?)方が多い印象でした。

懇親会はピザや飲み物を用意していただきました。 会場を提供していただいたリクルートテクノロジーズ様、スポンサー様、スタッフの皆様、ありがとうございました。

© 2023 暇人じゃない. All rights reserved.