Slide 1

Slide 1 text

株式会社クリモ CTO 渡邊達明 React Native for WebでもOGP対応がしたい! ~ TECH STAND #2 React Native 2020/12/18 ~

Slide 2

Slide 2 text

◉ 自己紹介と最近作っているもの ◉ React Native for Webの仕組み ◉ Expoを使ったセットアップ ◉ SPAでの課題 ◉ Cloudflare Workersの紹介 ◉ Workersを使ったSPAでのOG画像差し替え ◉ デモ 目次

Slide 3

Slide 3 text

◉ 渡邊 達明(わたなべ たつあき) ◉ Twitter,GitHub: @nabettu ◉ 富士通株式会社→面白法人カヤック→独立 ◉ 妻(代表)と二人で法人 ◉ React Nativeアプリ, Webフロント, Firebaseが専門 ◉ 趣味はマンガとボルダリング 自己紹介

Slide 4

Slide 4 text

AnotionというWebサービスを作ってます

Slide 5

Slide 5 text

“ みなさん React Native for Web 使ってますか?

Slide 6

Slide 6 text

引用元 なかざんさん(@nkzn)のブログ https://blog.nkzn.info/entry/2018/05/29/210030 React Native for Webの仕組み

Slide 7

Slide 7 text

超ざっくりいうと React Nativeのこれが Webでこれになるイメージ ※ホントはもっと色々複雑

Slide 8

Slide 8 text

React Native for Web のセットアップ with Expo $ npm install -g expo-cli $ expo init $ expo build:web web-buildディレクトリにブラウザで動く React Native製アプリケーションがビルドされる! S3とかFirebase Hostingにデプロイすればもう動く!

Slide 9

Slide 9 text

SaaSのExpo(会社) - Expoのコミッターが経営 - Expo ClientやSnack等を開発 - Expoを使ったPush通知やOTA 用サーバーシステム、クラウド ビルド環境などを提供している ソフトウェアのExpo - React Nativeをラップして、完全にjsだけ で書けるようにしたツール郡(Xcodeや Android Studioも不要) - React Native for Webも入っててWebで も動く - 基本こっちのことを話します Expoって?

Slide 10

Slide 10 text

SPAでの課題(Vue.jsやFlutter Webでも) ExpoでビルドするとSPAとして動きます。 しかし質問箱やマシュマロのようなサービスを 作るにはシンプルなSPAではできません。 最近人気のNext.jsを使ってVercelなどにデプ ロイすればできますがアプリとソースを共通化 したい! SPAのままなんとかならんのか!

Slide 11

Slide 11 text

“ OG画像の差し替えくらいなら、 SSRしなくても出来ます!

Slide 12

Slide 12 text

Cloudflare Workersの紹介

Slide 13

Slide 13 text

Cloudflare Workersとは Cloudflare Workersとは、Cloudflare社が提供するCDN(コンテンツデリバリーネット ワーク)のエッジで開発者がJavaScriptを実行できるサーバーレスなサービスです。 Lambdaなどのサーバーレスサービスの問題ともいえるコールドスタート問題です が、Cloudflare Workersでは他のサーバーレスプラットフォームよりコールドスタート のスループットが最大50倍高速となっています。 引用元:Classmethodさんのブログ https://dev.classmethod.jp/articles/cloudflare-workers-tutorial/

Slide 14

Slide 14 text

Workersを使ったSPAでのOG画像差し替え

Slide 15

Slide 15 text

デモとコード紹介 ※登壇用に書きなぐったコードになっているので、お目 汚しすいません - ネイティブアプリとしても動作する、React Native for WebでできたWebアプリの紹介 - (ただちょっと間に合わず画像アップロードだけアプリだとコケるw) - - Cloudflareにデプロイしてるコード

Slide 16

Slide 16 text

サンプルとデモ - サンプルサイト https://telop-maker.tokyo/ - サンプルリポジトリ https://github.com/nabettu/telop-maker

Slide 17

Slide 17 text

まとめ - React Native Expoを使ってると、ネイティブアプリ向けで作ってた ソースほとんどそのままでWebでも動く - その場合シンプルなSPAになってしまうので、Edge Workerを使っ てOG画像対応を解決 プラスの工数を少なく「RNアプリのWeb対応」が可能!

Slide 18

Slide 18 text

質問あればTwitterでも https://twitter.com/nabettu YouTubeコメントなどでもどうぞ Thanks!