React Native 勉強会に参加してきました
Osaka Mix Leap Study #23 – React Native勉強会
に参加してきましたので、備忘録的に「React Native」についてまとめてみます
そもそも React とは?
公式サイト
Facebook が開発している UI を構築するための JS ライブラリです
MVC でいうと、View の部分にあたります
React Native(RN) とは?
公式サイト
React をモバイルで使えるようにしたもの
RN を使用すると、 JS からモバイルアプリをビルドできる
RNのメリット
● Web エンジニアからでも学習コストが低くて入りやすい
(jQuery しか書けない人とか)
● ホットリロード(ビルドなしで再描画)してくれるので高速
● ios 版 / android 版 を一度に開発できる
● 有名企業が多く採用している
( Facebook 、 uber 、 pinterest 、 AirBnb(撤退済))
デメリット
● バージョンアップすると動かないことも多々
(2週間に1回は新バージョンが、、)
● デバッグが大変(開発者が少ない)
● ドキュメント不足。ほぼ英語で読んでいく感じ
● エラー画面(赤い画面なのでびっくりする)のわかりづらさ
提唱されてから年数が経っていないため、導入している人の少なさが、、
導入した人の所感
● OSS を使うことで開発速度を向上できた
(特に redux を利用したデータフロー周り)
● 慣れ親しんだ npm によるパッケージ管理ができる
● CSS のような考え方でレイアウトする。フレキシブルレイアウト
(とっても Web ライクだな、、と個人的に感じました)
● 足りない機能に関してのライブラリが豊富
( map 、 slider 、 navi )
● コードが ios 版 / android 版 で7〜8割共通化できた
拡張子でファイルごと作成する、または同一ファイル内で出し分けることができる
(ここあたりも、css のメディアクエリに考え方が似てる?)
● モバイルアプリ独特の知見は必須
UX の違い(戻るなどのタブの位置など)
deploy 周り(どうやってリリース審査に通すか)
RN を導入してもよさげな条件
● 専門チームがない、組織規模が大きくない
● 仕様がある程度コントロールできる(自社サービス、直請け)
● 要件がシンプル
● こだわり < スピード
● プロトタイプ