Slide 1

Slide 1 text

株式会社クリモ CTO 渡邊達明 React Navigationを使って React Native WebでSPAを試してみた ~ React Native Meetup 2020/5/29 ~

Slide 2

Slide 2 text

◉ 自己紹介と最近作っているもの ◉ 画面遷移ライブラリなに使ってますか? ◉ React Navigationのアップデート内容と使い方 ○ ルーティングの指定方法 ○ Deeplinkとの併用 ○ Linkコンポーネントの登場 目次

Slide 3

Slide 3 text

◉ 渡邊 達明(わたなべ たつあき) ◉ Twitter,GitHub: @nabettu ◉ 富士通株式会社→面白法人カヤック→独立 ◉ 妻(代表)と二人で法人 ◉ ネイティブアプリ(React Native with Expo)& Webフロント (Vue.js, React.js)& Firebase周りが専門です 自己紹介

Slide 4

Slide 4 text

NTTコミュニケーションズ 社内ベンチャー発 リアルタイムスポーツ実況解説アプリ ブンデスリーガの配信始めます! SpoLive

Slide 5

Slide 5 text

tabmemo タブで仕分けできるメモアプリ

Slide 6

Slide 6 text

作ってます

Slide 7

Slide 7 text

- wix/react-native-navigation - aksonov/react-native-router-flux - react-navigation/react-navigation - ReactTraining/react-router - その他 React Nativeのルーティング何使ってますか?

Slide 8

Slide 8 text

- wix/react-native-navigation - aksonov/react-native-router-flux - react-navigation/react-navigation - ReactTraining/react-router - その他 今日はReact Navigationについてのお話をします React Nativeのルーティング何使ってますか?

Slide 9

Slide 9 text

React Navigation on the Web 公式ブログ https://reactnavigation.org/blog/2020/05/16/web-supp ort/

Slide 10

Slide 10 text

React Navigation on the Web - 前から React Native Webでの利用は自体はできたけど、 画面が変わるだけでURLも変わらず、リロードしたら状態 がすべてリセットされてました - 個人的にExpoがv34からWebをサポートしたときに、それ を使って3プラットフォーム対応アプリの本を書いてました - https://nabettu.booth.pm/items/1569367 今回はその当時からのアップデート内容について発表します

Slide 11

Slide 11 text

今回のアップデート内容と 実際の利用方法

Slide 12

Slide 12 text

SPA的な”普通の”ルーティングが できるようになりました! - URLでルーティングを保持できるようになった! - navigation.navigate実行時に自動で↑のURLが 更新されるようになった! - historyのpush/popが動くようになった!

Slide 13

Slide 13 text

ルーティングの指定方法 React Navigation v5からの書き方でつけてたname と同じkeyでlinkingを指定すると、自動でURLを変更 してくれます - パラメータもURLに含めたい場合にはコロンで入 れるだけ - URLに載せたい情報だけをパースしたりもできる (stringifyやparseを指定)

Slide 14

Slide 14 text

ルーティングの指定方法

Slide 15

Slide 15 text

これらのルーティングとdeeplinkを 複合的に使えるようになった - ネイティブとアプリ両方を作ってると必要になって くるdeeplink - 特別な実装をしなくても、deeplinkのURLを指定 するだけで実装できます! ←ここんとこ

Slide 16

Slide 16 text

Linkコンポーネントの登場 ~ パスを指定してWebのリンクっぽく書ける - 今までのReact NavigationではWebのaタグが使え ず、リンクにhref属性がつかなかった - 「右クリックで別タブで開く」とかが使えるセマンティッ クな書き方ができるように - Navigation.navigate無しで遷移できる! ※ただ、現状のはテキスト専用になっており、ボタンなどに設定できな いので注意

Slide 17

Slide 17 text

その他細かいアップデート アドレスバーが隠れるように&ドロアーメニュー

Slide 18

Slide 18 text

サンプルとデモ - サンプルサイト https://upgradeexpo37navi5--telopmaker-sampl e.netlify.app/ - サンプルリポジトリ https://github.com/nabettu/telopmaker-sample/t ree/upgradeExpo37Navi5

Slide 19

Slide 19 text

質問あればTwitterでも https://twitter.com/nabettu YouTubeやコミュニティSlackでどうぞ Thanks!