無限大な夢のあと

テニスとアニメが大好きな厨二病SEのブログ

【書評】基礎から学ぶReact Native入門 ( @yyamada )

WINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。
今回は表題にある通り「基礎から学ぶReact Native入門」の書評となります。

早速、レビューに入ります。

TL;DR

端的にいうと、実務でReactNative扱っている方が情報をうまく取捨選択しながら、執筆した書籍だなという印象でした。
React開発経験 or モバイルアプリ開発がある人なら、こちらの書籍でReactNative開発のスタートをしっかりできそうに見えました。
もし、チームでReactNativeを扱うことになったら、この書籍を一冊目に薦めます。

前提としての自分の実務経験や知識など

私の今回の書籍に関係するところでの実務経験や知識はこんな形です。

  • モバイルの知識
    • iOSアプリ開発 実務3年弱
    • Androidアプリ開発 実務半年弱(コードレビューは2年ほど参加)
    • Flutter 副業で3ヶ月弱(技術検証のみ)
    • React Native/Expoでの検証(技術検証のみ) 副業で1ヶ月弱
  • Webの知識
    • HTML/CSSは苦手、JavaScript/TypeScriptは問題なく使える
    • AngularJS、Angular2での開発 半年弱
    • Vueでの開発 0から立ち上げ 半年弱
    • 直近 React(FC、Hooks含む)、StyledComponentsでの開発 4ヶ月ほど

実務でReactNative扱っている方が執筆したと感じた点

具体的にはそう感じたのは以下でした。

  • 関数コンポーネント+Hooksでの説明があること
  • 影の付け方などのiOS/Androidが違うなどのレイアウトの説明があること
  • UIライブラリ/画面遷移/データ永続化/TypeScript活用などの説明があること
  • 細かい部分だと日付周りライブラリがmoment.jsではなく、date-fns使っていたりすること
  • 書籍全体で紹介してきた集大成としての実際のアプリ作成の紹介があること

上記以外の書籍の中身について

個人的に非常に嬉しいなと思ったのは、以下のスタイルでの装飾、レイアウト、UIライブラリを丁寧に紹介している点でした。

  • 第6章 React Nativeでアプリの見た目を整えよう - スタイルでコンポーネントを装飾する
  • 第7章 React Nativeでアプリの見た目を整えよう - スタイルでコンポーネントをレイアウトする
  • 第8章 UIライブラリで美しいデザインを手軽に利用する

ここまで丁寧に紹介されていると、私のようにReactやり始め、HTML/CSSなどが苦手勢でも、これでアプリをまずは動かす最初の一歩から、実際にアプリを作り始めて細かくレイアウトを組んでいく2歩目を踏み出せるなぁと思いました。

また、そこそこアプリ開発の他の経験があったとしてもリリース周りは、今回のExpo使うケースだと別知識なのでそこの紹介も「第13章 リリース用のアプリファイルを用意しよう」にあったのもありがたかったです。

他の部分だと、説明の都合上とは思いますが、4章/ClassComponentでの実装→5章FunctionalComponent/Hooksでの実装という例で紹介していますが、実際はFunctionalComponent/Hooksでの実装をメインで使うと思いますので、最初この説明順だったときに混乱はしました。
ただ、React自体の知識が全くなかったり、FunctionalComponent/Hooksの知識がなかったら、この方がすっと頭には入ってくるので、より広い層に向けては良いように思いました。

今回の書籍の続編やページ数があれば+αで欲しかった点

個人的には入門という範囲ではとてもベストな内容/分量に収まっていると思います。
逆にもっとページ数があればor応用編みたいなところなどが今後出版できるなら、以下の知識周りがあるとより嬉しいなと思いました。

  • FirebaseやCognitoなどを使った認証機能の実装など(可能なら、FirebaseAuthやFirebaseAuthUI使ったものとか)
  • ネイティブアプリだけではなく、PWAのサンプルなど
  • ReactNative周りで、簡易にPush通知できるサンプルがあれば(ダメならOneSignalでの実装例とか)

まとめ

2018年頃にReactNativeの書籍を読んだりした際には、レイアウト部分などがそこまで詳しく書いていなく、私のようにCSS弱い勢には大変で諦めてしまい、個人開発でちょっとしたものを作るのにはiOS/AndroidネイティブやFlutterに寄っていてしまっていました。
ただ、現在の自分の知識だとReactの知識も活用できるうえ、こっちの方が実務側にも知識を還元でき、将来モバイル対応などが発生した際には今のチームにはReactNativeがマッチする選択肢もあるので、本腰入れて使ってみようかなと思いました。

最後に目次や中身のソースコード、今後追加されるであろう正誤表については、こちらのリンクから確認できます。
wings.msn.to

以上、書評とさせていただきます。

React.js&Next.js超入門

React.js&Next.js超入門