【書評】[React Native ~JavaScriptによるiOS/Androidアプリ開発の実践]でReact Native開発の実践知を学ぶ

普段JavaScriptを書かないのですが無謀にも?色々すっ飛ばしてReact Nativeについて書かれた本書を読んだので紹介します。
2020.05.28

はじめに

 こんにちは、福岡オフィス所属、IT推進室の井手です。近年、クロスプラットフォーム開発の盛り上がりからどこかで一度キチンと学びたいと思っていた所、ひょんな事から書籍、「React Native ~JavaScriptによるiOS/Androidアプリ開発の実践」を読む機会に恵まれましたので本書を紹介します。

 この記事は、著者の一人のjanuswelより献本頂いた事をきっかけに投稿しました。ありがとうございました。

総評

 本書を読む前、私はReactどころかJavaScriptもES5前の知識で止まってましたが、本書を読む/写経する事でReact Native周辺の知識を噛み砕く事ができました。具体的には、現時点でのスタンダードなReact Nativeでの開発を知ることが出来た事で、モバイルアプリを作る時の選択肢の一つとなりました。また、後述しますがReact Native以外の部分でも知見が多く、普段の開発においても取り入れていきたいと思いました。

読み始めた時期は電子版が出た一ヶ月程前で、大きな意味でのフロントに長らく携わってなかったので、シミュレーターで動くモノが出来上がっていくのは楽しい経験でした。

こんな方におすすめ

  • JavaScriptの経験がありReact Nativeが気になる方
  • iOS/Androidアプリをクロスプラットフォームで開発したいと思っている方
  • モダンなソフトウェア開発について学習したいと思っている方

本書では以下前提となる必要スキルセットが紹介されています。

  • JavaScript(ECMAScript 5)
  • HTML
  • CSS
  • Git

私のように、JavaScriptがほぼ未経験の方の場合、あらかじめ基本的な文法は予習しておくと読み進めやすいと思います。ちなみに、本書ではJavaScript Primerでの学習が紹介されています。

特徴

 内容を一文でまとめると「React Nativeを利用したモバイルアプリ開発で、Reactとは?からストアへの公開まで、初学者にも分かるように書かれた本」です。と書くと、所謂技術全体を学べる入門書かな?と思われるかもしれませんが、689ページに及ぶ本書の特徴はこの"Reactとは?"から"ストアへの公開"までの工程が、React Nativeで開発する為の道筋や要素が整理され盛り込まれている所、また随所にプロダクト開発における実践的な内容がちりばめられている所です。

例えば、以下のような内容にも説明がなされており、サンプルアプリの開発プロセスやコードに組み込まれています。

  • リーンキャンバス
  • Atomic Design
  • Firebase
  • E2Eテスト

本書 はじめにより

(中略)...React Nativeを使ったネイティブアプリの開発手法 についてまとめた書籍です。さらに、現代のソフトウェア開発や事業構築の方法論における定石や共通認識のまとめという側面も持っています。

これら本書の概観について詳しくは本書紹介ページの目次をご覧ください。ちなみに私はこれを見て読むことを決めました。

 目次を一通り読むと、ここまで言わんとする事が伝わるかと思います。私がまさにそうですが、何かの技術に入門した時、例えば入門書を一通り読み終えた時に、「次のステップとして何を開発するか?」となる事があるかと思います。そんな時に、本書は大きな助けになる一冊だと思いました。

ここが良かった

アプリストアから実際に作るアプリを触れる

 本書で作成するアプリはiOSアプリAndroidアプリが実際に各ストアに公開されています。端的に言えば事前にインストールして触り、それと同じアプリが作れる、という事を体験できるという事です。また、リポジトリも公開されているので読み進めていく為の助けになると思います。ロールモデルと同じで、こういうアプリが作れる、という感覚はモチベーションに寄与しました。

説明が丁寧

 「初学者にも分かるように書かれた本」と書きましたが、その点は本書内でも言及されています。

本書 はじめにより

初学者のために説明を書く

特に全体を通してなぜこの技術を使うのかについて言及されている箇所が多く丁寧に感じました。その一旦は以下の目次からも見て取れます。

  • 3-1 コード編集ツールが満たすべき機能
  • 6-2 テストを書く
  • 7-7 定数化する理由

これらが全てコード付きで紹介されています。

他にも、以下の点が丁寧に感じました。特に2点目はすごいと思いました。。

  • ディレクトリ構造やコードが変更されるページは、ほぼ都度全体がフルで紹介されている
  • よく使う標準コンポーネント/ユーティリティが全てコード付きで紹介されている

具体的な技術について別Appに分けて解説がされている

 説明が丁寧に通じる部分ですが、本筋のサンプルアプリ以外にも要素に応じていくつか別Appに切り出してまっさらな状態から紹介がされています。例えば、「第8章 Atomic Designとコンポーネントの実装」や「第9章 データフローの設計および実装について」、等です。例えば、第9章はReduxの紹介が書かれていますが、サンプルアプリと地続きでない分Reduxだけ後から振り返る時に便利です。

さいごに

 本書は、前述のように初学者にも分かるように書かれています。一方、人によっては決して楽に読み通せる本ではないと思いました。そもそもページ量が多く読みきれなかったり、テーマの関係上取り扱っている周辺技術が多く最新のアップデートによって自力で解決する部分も出てくる事が予想される為です。しかし、格闘した分や本書の熱量から得られる知見は確かなものがあると思います。少なくとも私は、何度も読み返したいと思いました。著者陣が執筆してくれた事に感謝いたします。

参考リンク