この度は、本書「Re:ゼロから学ぶReact Native入門」を手に取っていただき誠にありがとうございます。 興味を持ってもらえて感無量です。 本書は、React Native初心者の方を対象としたReact Nativeの入門書です。 JavaScriptについての基礎はすでに学んだ方を対象としています。 この本ではReact NativeでiOSアプリを作成して、実際にシミュレータで動作できるようになるのを目標としています。 近年、スマートフォンアプリの開発をReact Nativeを使って行うことが増えています。 私自身、仕事や個人アプリの開発においてReact Nativeを日常的に使用しています。 私のReact Nativeの知識が少しでもみなさまの役に立てるのならばと思い、この本を書きました。 == 本書を書こうと思ったきっかけについて 2016年冬ごろ、React Nativeがスマートフォンアプリ開発のプラットフォームとして脚光を浴び始めました。 当時、私はSwiftを使ってiOSアプリ開発を行っていました。 React NativeではJavaScriptを使って、iOSとAndroid両方のアプリを作ることができます。 そうと聞いて胸が高鳴りました。 当時、Webの技術である「React」も盛り上がっていました。姉妹品の「React Native」も当然、魅力的に見えました。 Reactという時代のビックウェーブが来ていると感じました。 早速、私はReact Nativeを手にとって試しに使ってみました。 しかし結果として私はReact Nativeに挫折しました。 挫折した原因は、当時React Nativeの情報が少なすぎたことです。 当然、入門書のような書籍はありません。 インターネットで検索しても、React Nativeの情報は特に日本語の情報が壊滅的にありませんでした。 その時の私の結論としては、「React Nativeはまだ時期が早い」でした。 その後、しばらくReact Nativeとは疎遠になっていました。 一年後、2017年冬、私は再びReact Nativeにチャレンジしました。 再チャレンジした理由は、React Nativeの技術が成熟してきて、Web上の知見も豊富になってきていたからでした。 この時、筆者はReact Nativeでアプリを開発しiOS/Android両方ともストアにリリースすることができました。 この頃になると2016年に比べて爆発的にReact Nativeの情報が増え、インターネットを検索すれば大抵の問題は解決できました。(英語とGithubのissueを読み解くのが必須ですが…) 今では仕事でもReact Nativeを使うことが多くなってきています。 躓くことも多かったですが、おかげでReact Nativeのバッドノウハウの知見が多く溜まりました。 今年になってReact Nativeの勉強会を開こうとしたことがありました。 理由は、これまで得たReact Nativeの知見を共有したかったからです。 そこで勉強会で使うReact Nativeの入門書を探していました。 その時に勉強会で使う適切なReact Nativeの入門書がないことに気づきました。 だったら自分で書くしかないと一念発起しました。 元から技術書執筆にはチャレンジしてみたいという気持ちはありました。 実際、肌感覚として本を書く敷居は下がっていると私は感じています。 本を出す方法によっては出版社を通す必要がないですし、 技術書典のような同人誌販売会、電子書籍でセルフパブリッシングなど方法はたくさんあります。 ここ最近技術書典が盛り上がっているみたいなので、自分もお祭りに参加してみたいという気持ちが強くなりました。 ---------------------------------------------------- 目次 第1章 はじめに 1.1 ごあいさつ 1.2 本書のソースコードについて 1.3 著作権について 1.4 環境について 1.5 本書を書こうと思ったきっかけについて 1.6 著者について 1.7 ReactNativeについて 1.7.1 本書で扱う React Native やライブラリのバージョン 1.7.2 ReactNativeで個人アプリ開発が楽しい 1.7.3 筆者がReactNativeで作成したアプリの紹介 第2章 React Native の概要 2.1 ReactNativeとは? 2.1.1 ES6(ES2015) 2.1.2 JSX 2.1.3 React 2.2 ReactNativeの特徴 2.3 React Native を採用している有名アプリ 2.4 Expo.io 第3章 環境設定 3.1 インストール 3.2 設定 3.2.1 React Native アプリのプロジェクトを作成する 3.2.2 ReactNativeアプリをビルドして実行する 3.2.3 リロードする 第4章 React Native で開発するための基礎知識 4.1 ReactNativeのコードを見てみよう 4.1.1 ReactNativeBookSample 4.2 import 4.3 宣言var/let/const 4.3.1 var 4.3.2 let 4.3.3 const 4.4 分割代入 4.4.1 配列の分割代入 4.4.2 オブジェクトの分割代入 4.5 テンプレートリテラル 4.6 Platform 4.6.1 OSごとに処理を分ける 4.7 コンポーネント 4.8 render 4.8.1 JSX形式のコンポーネントを返す 4.8.2 render メソッドで返すのは単一のコンポーネント 4.8.3 JSXでの処理の分岐 4.9 子コンポーネント作成してみる 4.10 props 4.11 state 4.12 constructor 4.13 メソッド 4.14 アロー関数 4.14.1 thisの固定 4.15 仮想DOMとデータバインディング 4.16 コンポーネントのライフサイクル 4.16.1 componentWillMount 4.16.2 componentWillReceiveProps 4.16.3 componentDidMount 4.16.4 shouldComponentUpdate 4.16.5 componentWillUpdate 4.16.6 componentDidUpdate 4.16.7componentWillUnmount 4.17 イベント 4.18 コールバック 4.19 Promise 4.20 async/await 4.21 SFC(ステートレス・ファンクショナル・コンポーネント) 4.21.1 コンポーネントの作成方法は二種類 4.22 レイアウト 4.22.1 CSSライクスタイルシート 4.22.2 高さや幅の指定 4.22.3 Flexbox 第5章 React Native 標準のコンポーネント 5.1 View:何もない画面を表示する 5.2 Text:文字を表示する 5.3 Image:画像を表示する 5.4 Button:ボタンを配置する 5.5 TextInput:文字を入力する 5.6 FlatList:リストを表示する 5.7 StackNavigator:複数の画面を行き来する 第6章 React Native で TODO アプリを作ってみよう 6.1 TODO 一覧 6.2 TODO 作成 6.3 TODO 編集 6.4 TODO 削除 第7章 おわりに 7.1 この後、React Native をどのように学習していくのか