SlideShare a Scribd company logo
1
APOLLOを使って、REACT, REDUX
の世界にGRAPHQLを持ち込む
chuck
2016/9/2 @Gotanda.js
14
ABOUT ME
3
• フロントエンドエンジニア
• 平成3年産
• @chuck0523 FollowMe :)
ABOUT ME
11
ABOUT ME
Global triple worker
8
TONIGHT’S TOPIC
7
React.js, Redux, GraphQL
6
Integrated by Apollo
15
APOLLO
• Created by Meteor
guys
• GraphQL tool
• Both Client and
Backend
• With React, Angular,
Meteor
7
SIMPLE DATA FLOW
8
HOW IT WORKS
8
ReactコンポーネントをGraphQL(の
クエリ発⾏行機能)でラップするだけ
14
IT’S LIKE RELAY
15
RELAY.JS
• Created Facebook
guys
• Connect React and
GraphQL
• But so much magics…
8
APOLLO TOUR
6
SEEING UP
8
$ npm install -S apollo-client react-apollo
13
Initialise apollo client
13
With Arguments
9
Wrap by ApolloProvider
6
WRITING GRAPHQL
9
In Template literal
8
COUPLE WITH
COMPONENT
9
Empower Component
withGraphQL
9
Condition with State
6
WITH REDUX
9
9
Create store
8
THAT’S IT
4
APPOLOの良いところ
• isomorphic : クライ
アント・サーバサイド
の⾯面倒を⾒見てくれる
• new tech : GraphQLが
使える
• reusability : フェッチ
するデータをコンポー
ネントが知っている
• less code : ボイラー
プレートが減る
4
むずいところ
• less info : 情報が少な
い。記事によって⼿手法
が異なる…?
• learning cost : 社内に
GraphQLできる⼈人間い
る?
3
REFERENCES
• Apollo Client: GraphQL with React and
Redux (網羅的)
• How to use GraphQL in your Redux app
(実践的、だけど動かない…)
• Your First GraphQL Server(⼿手軽に
GraphQLサーバを作るなら)
• Tutorial: How to build a GraphQL server

More Related Content

What's hot

アプリケーションへのRubyインタープリターの組み込み
アプリケーションへのRubyインタープリターの組み込みアプリケーションへのRubyインタープリターの組み込み
アプリケーションへのRubyインタープリターの組み込み
Kouhei Sutou
 
Reactを使ったVR環境
Reactを使ったVR環境Reactを使ったVR環境
Reactを使ったVR環境
KatsuyaENDOH
 
Responsableを使ったadr実装
Responsableを使ったadr実装Responsableを使ったadr実装
Responsableを使ったadr実装
Kenjiro Kubota
 
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
健太 田上
 
WebGL Performance Tuning Tips
WebGL Performance Tuning TipsWebGL Performance Tuning Tips
WebGL Performance Tuning Tips
Yukio Andoh
 
Amebaプラットフォームの作りかた
Amebaプラットフォームの作りかたAmebaプラットフォームの作りかた
Amebaプラットフォームの作りかた
Kazunari Hara
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
Takayoshi Tanaka
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Kenjiro Kubota
 
WebWorker and Atomics
WebWorker and AtomicsWebWorker and Atomics
WebWorker and Atomics
Taketoshi 青野健利
 
Lambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作ったLambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作った
Terui Masashi
 
Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発
Kenjiro Kubota
 
CA流 フロントエンドエンジニアの働きかた
CA流 フロントエンドエンジニアの働きかたCA流 フロントエンドエンジニアの働きかた
CA流 フロントエンドエンジニアの働きかたKazunari Hara
 
Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術
LIFULL Co., Ltd.
 
Skinny framework勉強会
Skinny framework勉強会Skinny framework勉強会
Skinny framework勉強会
Yusuke Arakaki
 
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL についてLIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULL Co., Ltd.
 
Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方
LIFULL Co., Ltd.
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
 
ZappaでDBもパッケージしたサーバーレスAPIを構築してみた
ZappaでDBもパッケージしたサーバーレスAPIを構築してみたZappaでDBもパッケージしたサーバーレスAPIを構築してみた
ZappaでDBもパッケージしたサーバーレスAPIを構築してみた
Yasunori Kirimoto
 
introducing vue-wait-component
introducing vue-wait-componentintroducing vue-wait-component
introducing vue-wait-component
Kenjiro Kubota
 

What's hot (20)

アプリケーションへのRubyインタープリターの組み込み
アプリケーションへのRubyインタープリターの組み込みアプリケーションへのRubyインタープリターの組み込み
アプリケーションへのRubyインタープリターの組み込み
 
Reactを使ったVR環境
Reactを使ったVR環境Reactを使ったVR環境
Reactを使ったVR環境
 
Responsableを使ったadr実装
Responsableを使ったadr実装Responsableを使ったadr実装
Responsableを使ったadr実装
 
Rails composerでrails newを楽にしよう
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
 
WebGL Performance Tuning Tips
WebGL Performance Tuning TipsWebGL Performance Tuning Tips
WebGL Performance Tuning Tips
 
Amebaプラットフォームの作りかた
Amebaプラットフォームの作りかたAmebaプラットフォームの作りかた
Amebaプラットフォームの作りかた
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
 
WebWorker and Atomics
WebWorker and AtomicsWebWorker and Atomics
WebWorker and Atomics
 
Lambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作ったLambda(Python)のデプロイについて考えたというか作った
Lambda(Python)のデプロイについて考えたというか作った
 
Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発
 
CA流 フロントエンドエンジニアの働きかた
CA流 フロントエンドエンジニアの働きかたCA流 フロントエンドエンジニアの働きかた
CA流 フロントエンドエンジニアの働きかた
 
Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術Kubernetesクラスタバージョンアップを支える技術
Kubernetesクラスタバージョンアップを支える技術
 
Skinny framework勉強会
Skinny framework勉強会Skinny framework勉強会
Skinny framework勉強会
 
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL についてLIFULLの全社アプリケーション実行基盤 KEEL について
LIFULLの全社アプリケーション実行基盤 KEEL について
 
Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方Kubernetesセキュリティの歩き方
Kubernetesセキュリティの歩き方
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
ZappaでDBもパッケージしたサーバーレスAPIを構築してみた
ZappaでDBもパッケージしたサーバーレスAPIを構築してみたZappaでDBもパッケージしたサーバーレスAPIを構築してみた
ZappaでDBもパッケージしたサーバーレスAPIを構築してみた
 
introducing vue-wait-component
introducing vue-wait-componentintroducing vue-wait-component
introducing vue-wait-component
 

Similar to Apolloを使って、React-Reduxの世界にGraphQLを持ち込む

GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料
GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料
GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料
Takumi Yokoyama
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
 
REACT & WEB API
REACT & WEB APIREACT & WEB API
REACT & WEB API
Shigeru Kondoh
 
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjug
Yuji Kubota
 
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
Rescale Japan株式会社
 
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
Sadao Tokuyama
 
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろうClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
 
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLグラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
Yutaka Tachibana
 
ngJapan報告会
ngJapan報告会ngJapan報告会
ngJapan報告会
Fumio SAGAWA
 
React VR ことはじめ
React VR ことはじめReact VR ことはじめ
React VR ことはじめ
Kazuhiro Hara
 
Angular js はまりどころ
Angular js はまりどころAngular js はまりどころ
Angular js はまりどころ
Ayumi Goto
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
Hideyuki Takeuchi
 
OpenStack Now!
OpenStack Now!OpenStack Now!
OpenStack Now!
Hideki Saito
 

Similar to Apolloを使って、React-Reduxの世界にGraphQLを持ち込む (14)

GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料
GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料
GraphQLおよびそのエコシステム解説とチュートリアル紹介のためのプレゼンテーション資料
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
 
REACT & WEB API
REACT & WEB APIREACT & WEB API
REACT & WEB API
 
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjug
 
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
 
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
 
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろうClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
 
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLグラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
 
ngJapan報告会
ngJapan報告会ngJapan報告会
ngJapan報告会
 
React VR ことはじめ
React VR ことはじめReact VR ことはじめ
React VR ことはじめ
 
Angular js はまりどころ
Angular js はまりどころAngular js はまりどころ
Angular js はまりどころ
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
 
OpenStack Now!
OpenStack Now!OpenStack Now!
OpenStack Now!
 

Recently uploaded

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 

Recently uploaded (7)

生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 

Apolloを使って、React-Reduxの世界にGraphQLを持ち込む