技術書展7の入稿自体は先週にやったけど、色々合って今日もろもろ完了しました。
本の情報
BOOTHの方ではDL版を購入できるようにしました。 これの物理の本を技術書典7で販売します。
[
サークル情報
上記で委託で販売します。
- 日付: 9月22日(日)
- 場所: 池袋サンシャインシティ 展示ホールC/D(文化会館ビル2/3F)
- 配置:い04C
- タイトル:「React Native開発日記 -スケジュール管理アプリ「ペペロミア」が出来るまで-」
内容
- ペペロミアができるまでを1冊にまとめました。
内容は以下の目次の通りです。
⽬次
- はじめに
- 本書の内容について. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 対象バージョン. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 筆者情報. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
- ペペロミアについて
- ペペロロミアって、どんなアプリ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
- 使⽤している技術. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
- アプリ作成のスケジュール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
- 開発体制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
- 1 ⽇⽬アプリを作る準備
- 1.1 どんなアプリを作るか考える. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
- 1.2 技術選定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
- 1.3 作成するアプリの内容を考える. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
- 1.4 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
- 2 ⽇⽬UI のプロトタイプを作成する
- 2.1 他アプリを研究する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
- 2.2 Marvel でのUI のプロトタイプ作成. . . . . . . . . . . . . . . . . . . . . . . . 18
- 2.3 Figma について. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
- 3 ⽇⽬UI コンポーネントを作るその1
- 3.1 React Native の環境を整える. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
- 3.2 アプリを起動してみる. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
- 3.3 Storybook を使⽤してcomponent を作成. . . . . . . . . . . . . . . . . . . . . 26
- 3.4 component のフォルダ構成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
- 3.5 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
- 4 ⽇⽬UI コンポーネントを作るその2
- 4.1 React Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
- 4.2 React Native Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
- 4.3 react-native-easy-grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
- 4.4 @expo/react-native-action-sheet . . . . . . . . . . . . . . . . . . . . . . . . . 32
- 4.5 react-native-swipe-list-view . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
- 4.6 react-native-sortable-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
- 4.7 react-native-action-button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
- 4.8 react-native-root-toast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
- 4.9 react-native-app-intro-slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
- 4.10 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
- 5 ⽇⽬画像を作ってアップロードする37
- 5.1 はじめに. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
- 5.2 作成する素材について. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
- 5.3 作成環境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
- 5.4 アイコンを作る. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
- 5.5 画像最適化する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
- 5.6 画像をCloud Storage for Firebase にアップロードする. . . . . . . . . . . . . . 41
- 5.7 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
- 6 ⽇⽬アプリのデータを管理する43
- 6.1 アプリで使⽤しているデータストアの構成. . . . . . . . . . . . . . . . . . . . . 43
- 6.2 AsyncStorage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
- 6.3 SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
- 6.4 Cloud Firestore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
- 6.5 予定共有機能の実装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
- 6.6 React Native for Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
- 6.7 Firebase Hosting でWeb 画⾯を公開する. . . . . . . . . . . . . . . . . . . . . 49
- 6.8 予定共有機能の動作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
- 7 ⽇⽬問い合わせフォームを作る
- 7.1 問い合わせについて. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
- 7.2 Cloud Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
- 7.3 Golang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
- 7.4 Slack API のToken を取得する. . . . . . . . . . . . . . . . . . . . . . . . . . . 56
- 7.5 お問い合わせAPI を作成する. . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
- 7.6 お問い合わせのUI を作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
- 8 ⽇⽬チュートリアルを作る
- 8.1 チュートリアルについて. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
- 8.2 アプリのガイドを作る. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
- 8.3 予定作成まで誘導する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
- 9 ⽇⽬E2E テストを書く
- 9.1 Detox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
- 9.2 導⼊. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
- 9.3 E2E テストの書き⽅. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
- 9.4 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
- 10 ⽇⽬LP を作る
- 10.1 LP とは. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
- 10.2 Figma でデザインを作る. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
- 10.3 Web サイトのレスポンシブ対応. . . . . . . . . . . . . . . . . . . . . . . . . . 74
- 10.4 利⽤規約、プライポリシー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
- 10.5 Netlify でホスティングする. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
- 10.6 LP のドメインを設定する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
- 10.7 アプリで利⽤規約とプライポリシーを表⽰. . . . . . . . . . . . . . . . . . . . . 82
- 10.8 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
- 11 ⽇⽬スクリーンショットを作る
- 11.1 スクリーンショットとは? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
- 11.2 スクリーンショット作成⽅法について. . . . . . . . . . . . . . . . . . . . . . . 86
- 11.3 AppLaunchpad で作成する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
- 11.4 Figma で作成する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
- 11.5 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
- 12 ⽇⽬アプリを公開する
- 12.1 事前準備. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
- 12.2 iOS アプリをストアに公開する. . . . . . . . . . . . . . . . . . . . . . . . . . . 95
- 12.3 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
- 13 ⽇⽬デバイスの表⽰に対応
- 13.1 iPhoneSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
- 13.2 Android のノッチに対応する. . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
- 14 ⽇⽬バックアップ機能を作る
- 14.1 機能の設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
- 14.2 ソーシャルログインを実装. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
- 14.3 バックエンドにFirebase OAuth を実装する. . . . . . . . . . . . . . . . . . . . 118
- 14.4 バックアップAPI を作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
- 14.5 バックアップ作成とデータ復元のUI を作る. . . . . . . . . . . . . . . . . . . . 125
- 15 ⽇⽬デザインをブラッシュアップする
- 15.1 アプリアイコンの変更. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
- 15.2 Figma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
- 15.3 Figma でカラーを管理する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
- 15.4 Figma で画⾯を作成する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
- 15.5 共通パーツをコンポーネント化する. . . . . . . . . . . . . . . . . . . . . . . . . 136
- 15.6 ProtoType で画⾯遷移を管理する. . . . . . . . . . . . . . . . . . . . . . . . . . 138
- 15.7 ブラッシュアップ前、ブラッシュアップ後のデザイン⽐較. . . . . . . . . . . . . 139
- 15.8 まとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
- 16 ⽇⽬ペペロミアの成果物リンク集
- 16.1 リンク集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
- あとがき
できたけど。。。
大体150ページくらいです。 ぺぺロミアの内容を全部詰め込みたかったけど、 これでも全部詰め込めなかったなーって感じです。
まぁ、その内ネタが溜まったらPart.2でも出そうかなと思います。
ペペロミアの公式サイト更新
公式サイトに本の紹介を追加しました。
ダウンロードカード
当日は本と一緒にダウンロードカードも付ける予定です。
デザインはFigmaで作りました。
****にパスワードが入って入力する感じの予定
さいごに
これで一段落ついたので、来週から4日に1回の更新ペースに戻します