自分用まとめ。誤りあったらごめんなさい(すぐ修正します)。
■前提知識
・Homebrew:macOS用に使うパッケージを管理してくれる。似たものでMacPortsもあるがHomebrewで実装されていることが多いっぽい
■Rails関連のキーワード
・rbenv(Simple Ruby Version Management):Rubyをバージョン切り替え管理できる
・Rails 5.1からフロントエンド周りの強化としてYarnとWebpackerが実装されて、React実装がかんたんになった
・Yarn(A new package manager for JavaScript):RubyGemsっぽいもの
・Webpacker:JavaScriptアプリをRailsでかんたんに扱えるようにしたものっぽい
・Gemは使わなくてよいなら極力使わないこと。下手に使うと依存関係の修正対応が延々と終わらない。「使われなくなっている/使わないGem」などで調べるといろいろ見つかる
■React関連のキーワード
・Node.js:JavaScriptで動かせる実行環境。これなくてもRailsに実行環境を用意すれば動かせる
・npm(Node Package Manager):Node.jsで使うパッケージを管理してくれる。Node.jsインストールすると一緒に付いてくる。Railsだけで動かしているとパッケージの依存関係が大変になるので本気でやるならこれがいるっぽい
・実装は、Rails 5.1のYarnとWebpacker使った方法や、Gemfileに「gem 'react-rails'」でインストールする方法などがある
・シングルページアプリケーション(SPA)を作らないなら無理してReact使わなくてよい。Reactのよさが活用できそうにないなら自分の得意なものを選択したほうが効率よい
・UIだけならMaterial Design使えばよい
・Reactやると、学習コストがReact以外に関連技術(実行環境とか)もいろいろ必要になるので大変そう。Reactのコードや学習自体が難しいわけではない
・React Native:JavaScriptで開発して、iOSとかAndroidのようなネイティブな描画ができる。
■React Native
React Native:React NativeのviewはiOSのUIViewにしてくれる。ただし、さらに関連技術(Redux/Fluxとか)の学習が必要。発展途上なので2017/10時点だといろいろと開発が大変らしい
■Material Design(CSSフレームワークとしての)関連のキーワード
・Material Design Lite:Google作成。コンポーネント足りないものがややあり。これの後継になるMaterial Components for the Webが発表された
・Material Components for the Web: Google作成。コンポーネントが相当豊富でなんでも揃ってる
・Materialize:すごい学生さんたちがMaterial Designに則って作成。jQuery依存あり。コンポーネントが相当豊富でなんでも揃ってる。GitHub上も活発
・Material-UI:Reactを使ってMaterial Designを実装となる。Call-Em-Allという会社が作成
・RailsでインストールできるGem(rubysamurai/material_design_lite-sass など)もあるが、Material Design Liteの実装自体が非常にかんたんなので、どんなシーンでこのGemを利用すべきか不明
■わかりやすい参考サイト
Rails関連
・依存関係をなくそう : Rubyアプリ・Gemの開発者への提言
React関連
・Rails 5.1でReact.js連携アプリを構築してみよう
・react-railsを使ってReactのTutorialをやってみる
・react + rails 構成パターンまとめ。・npm とか bower とか一体何なんだよ!Javascript 界隈の文脈を理解しよう
・React系(別言語含む)の サーバーサイドレンダリング について考えよう
・シングルページアプリケーション(SPA)の導入メリット&デメリット
React Native
・React Native開発のつらい点まとめ
Material Design(CSSフレームワーク)関連
・マテリアルデザインをサクッと実装できるCSSフレームワーク6選【2017年版】
・CSSフレームワークを使って今から始めるお手軽マテリアルデザイン