フロントエンドエンジニアのためのGraphQL with React 入門 2018年版

GraphQLの言語仕様を学習し、GitHubのGraphQL APIと連携するReactアプリケーションを実装します!React/GraphQL/Apolloを利用し、近未来を見据えたAPI開発手法を習得しよう!

3.70 (351 reviews)
Udemy
platform
日本語
language
Web Development
category
フロントエンドエンジニアのためのGraphQL with React 入門 2018年版
3,022
students
8.5 hours
content
May 2022
last update
$49.99
regular price

What you will learn

GraphQLの言語仕様が分かるようになる

GraphQLのクライアントサイドアプリケーションの実装方法が分かるようになる

GraphQLのquery(クエリ)やmutation(ミューテーション)を理解し実装できるようになる

GitHubのGraphQL APIと連携するアプリケーションが実装できるようになる

GraphQLでPagination(ページネーション)が実装できるようになる

Why take this course?

本コースは、 概論編言語仕様編、そして実践編の3つのセクションで構成されています。

概論編では、GraphQL独特の概念を掴んでもらうために、RESTと比較しながらその特徴について学んでいきます。

言語仕様編では、実際に手を動かしながらGraphQL APIサーバと対話できるフロントエンドアプリケーションの開発に必要となる知識を体系的に身につけて頂きます。

そして実践編です。この実践編ではフロントエンドアプリケーションで最も実績のあるReactライブラリを用いてGraphQLクライアントアプリケーションの実装を行います。 GraphQLで使用されるQueryやMutationといったリクエストを Apolloという定評のあるライブラリを用いてGraphQLリクエストの送受信を行う方法についてみっちり学習します。

以上、計7.5時間のコースとなります。(但し、コースのアップデートにより時間増減の可能性あり)

尚、本コースではGraphQLの学習を第一の目的としています。 そして、Reactの基本的な学習を修了されている方を前提としています。そのため、ReactやES2015等のモダンなJavaScriptの言語仕様についての説明はコースの中では割愛させていただいております。しかしながら、GraphQLの理解の妨げになるほどの支障がある場合には積極的にこちらのQ&Aでご質問頂ければと思います。もちろん、GraphQLについてのご質問も大歓迎です。どしどしご質問をお寄せください。基本的には、日本の暦の土日祝日を除く、3営業日以内で回答をさせて頂く方針ですので、宜しくお願い致します。

Udemyの返金保証についてです。 Udemyでは、30日以内であれば100%返金保証となっております。 何かしらの理由でコースにご満足いただけない場合は、返金対応できますので その際は返金保証のシステムの活用をご検討ください。


概論編

  • GraphQLとは?

    • GraphQLにおける3つの特徴についてご紹介します。

  • RESTがMcDonald's方式だとすれば、GraphQLは何方式になる?

    • 既存のREST APIと比較しながらGraphQLについての概念を理解します。

    • RESTは静的なAPI、GraphQLは動的なAPI

    • マルチエンドポイントのREST、シングルエンドポイントのGraphQL

言語仕様編

  • GitHub GraphQL APIを利用する上での準備

    • GraphiQLの紹介

    • GitHubとのAuthorization

    • 初めてのQuery

  • クエリ(query)、フィールド(Fields)、型(Types)

    • Documentation ExplorerでGraphQL Queryの仕様を確認しながらQueryを組み立てる

  • 引数(Arguments)

    • 引数を指定し該当のフィールドを取得する

  • エイリアス(Aliases)

    • エイリアスで同名のフィールドの競合を回避する

  • フラグメント(Fragments)

    • フラグメントで重複フィールドの指定をDRYにする

  • 操作名(Operation Name)

    • 操作名(Operation Name)により多様なQueryやMutationのリクエストを確保できるようにする

  • 変数(Variables)

    • 変数(Variables)で動的なリクエストに変更する

    • ウェブアプリケーションに組み込める実践的な形式に近づける

  • ミューテーション(Mutations)

    • ミューテーション(Mutations)でデータを変更する

    • CRUDのC、U、Dを担うのがミューテーション

  • インラインフラグメント(Inline Fragments) と型名(__typename)

    • 抽象的なフィールドの指定

    • 具体的なフィールドの指定

    • 型名(__typename)の紹介とそれが解決する問題とは

  • 型システム(Type System)、スカラー型(Scalar Types)、オブジェクト型(Object Types)、そしてスキーマ(Schemas)

    • 型についてのおさらい

    • スカラー型とオブジェクト型の違い

    • スキーマ定義の存在

  • ページネーション(Pagination)

    • Relay-Style Cursor Paginationについて

    • 3つのケーススタディーでページネーションを完全理解

    • Forward方向のページ遷移

    • Backward方向のページ遷移

    • pageInfoフィールド(startCursor、endCursor、hasPreviousPage、hasNextPage)の存在とその役割

    • connectionとは

    • edgesとは

    • cursorの役割とbase64エンコードされたcursorを解剖してみよう

実践編 - GitHubリポジトリ検索アプリケーションの開発にチャレンジ

  • 本セクションで扱うソースコード

    • GitHub上のリポジトリをご紹介

    • 各レクチャーとブランチ名との対応表のご紹介

    • ソースコードをGitHubで管理する際によく聞かれる質問と回答(FAQ)のご紹介

  • デモアプリの説明

    • React製ページネーション対応のGitHubのリポジトリ検索アプリケーションのご紹介

    • このアプリケーションの実装方法を学びます

  • GitHub Tokenの作成

    • GitHubのアクセストークンの発行

  • Reactアプリケーションの作成からGitHubリポジトリの作成

    • create-react-appによるアプリケーション作成

    • GitHubリポジトリへのfirst push

  • 必要なnpmパッケージ(apollo-boost、graphql、react-apollo)をインストールする

    • apollo-boostのご紹介

    • 各種npm パッケージのインストール

  • 不要なコードやファイル等を除去する

  • dotenvをセットアップする

    • dotenvのセットアップ

    • GitHubアクセストークンを設定しロードする

  • GraphQLクライアントをセットアップする

    • apollo-boostの依存パッケージの説明

      • apollo-cache-inmemory

      • apollo-client

      • apollo-link

      • apollo-link-http

      • graphql-tag

    • GraphQLクライアントの作成

    • GraphQLクライアントによるGitHub GraphQL APIサーバとの通信を行う

    • 初めてのリクエストとレスポンスで疎通確認を行う

  • GraphQLのコードを別のファイルに分離する

    • 関心の分離(Separation of Concerns) により、graphqlのコードは別のファイルへ分離する

  • search queryとVariablesをアプリケーションに適用する

    • 検索のためのクエリの実行

    • 変数(Variables)の活用

  • 検索フォームを作成し動的に検索を実行できるようにする

    • 検索フォームの作成とイベントハンドラの作成

    • 状態(ReactのState)の管理

    • thisコンテキストのbind

  • タイトルを表示する

    • タイトル

    • 件数が0件の場合は、単数形(Repository)?それとも複数形(Repositories)?

  • 検索結果一覧をリスト表示する

    • 取得したdataからedgesを取り出し、nodeを掴み、名前を取得し一覧に表示する

  • 次ページ(Next)ボタンを実装する

    • target="_blank" による脆弱性とその対応についてのご紹介

    • cursorを用いてForward方向へページ遷移するボタンを実装する

  • 前ページ(Previous)ボタンを実装する

    • cursorを用いてBackward方向へページ遷移するボタンを実装する

  • starの数を表示する

    • Let's See the Stargazers!

  • starを付けているかどうかの状態を表示する

    • starred か、それとも unstarredかの状態の取得と表示

  • onClickでstarを付与する

    • starrableフィールドのviewerHasStarred状態をfalse からtrueへ変える

  • onClickでstarを解除する

    • starrableフィールドのviewerHasStarred状態をtrue からfalseへ変える

  • refetchQueriesを利用しstarの総数をstarの付与/解除に同期させる

    • partialな状態変化に伴う全体で保持する状態との矛盾の紹介

    • 矛盾問題の解決策を2つご紹介、そして1つ目をハンズオンでご紹介

    • refetchQueriesに渡すArrayとFunction

  • writeQueryを利用しstarの総数を書き換える

    • 矛盾問題の解決策の2つ目をハンズオンでご紹介

    • Mutationのupdateオプションによるコールバック処理

    • キャッシュオブジェクトstore再び

    • store.readQueryによるキャッシュの読取り

    • store.writeQueryによるキャッシュの更新

  • ReactのrefでonChangeによる過剰なquery送信を回避する

    • 過剰なquery送信問題についての紹介

    • 不要なイベントハンドラの削除

    • 控えめなsetState()

    • onSubmitの本領発揮

    • React.createRef()の機能の紹介

    • refのcurrent属性(attribute)によるDOM参照

Screenshots

フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Screenshot_01フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Screenshot_02フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Screenshot_03フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Screenshot_04

Reviews

山川
August 1, 2022
ReactからGraphQLを利用する初歩的な実装を、サンプルを交えて理解できたのでよかったです。 他の方のレビューにもありますが、最新のApollo Clientのバージョンが上がっているのでそのままでは実行できない点と、Classコンポーネントでの実装で解説されていたのでFunctionコンポーネントでの実装にひと手間必要だったので-1させていただきます。
Masanobu
May 2, 2022
勉強用のサクっと作れるアプリの題材としてはありがたかったですが、Apolloのバージョンが古く、環境作るのに自力で調べる必要があります。Reactのバージョンも古く、FunctionalComponentではなくクラスベースなので、やはり自力でHook使った書き方の調査が必要です。
H
January 2, 2022
教材の内容自体は、フロントエンドからGraphQLを利用する際の基本を実際に手を動かしながら学べるので良かったです。 しかし、各動画ごとのオープニングとエンディング?が続けて学習するには邪魔に感じました。 はむさんの他の教材を利用した際は、そのように感じたことがなかったため、この教材が古い(3年前)からかもしれません。 他の教材をやってみて良いなとおもって購入しましたが、この教材はあまり満足できませんでした。
KiKiKi
November 23, 2021
GraphQL 自体がほぼ初めてだったので、概論・言語仕様を手を動かしながら理解していける構成になっておりとても良かったです。react ではコース自体が結構前に作成されていたものでしたので、現行の hooks な apollo client とは異なる書き方でしたが、自分で調べることでより理解が深まりました。writeQuery 言われている cache まわりが若干駆け足での理解もう少しできなかったのですが、別途自走して学習できるだけの基礎力が付いたと思います。ありがとうございます!
Shin
February 22, 2021
GraphQLの基礎を網羅的に学ぶ事ができました。 2021年2月現在では本動画のreactの書き方やApolloのimport元などは古かったりしますが、そういったところを最適化しつつ書き直しながら受講することでより理解が深まりました。
Hiro08
December 30, 2020
コードの表示が小さく、動画を観ながら写経できなかったので、時間がかかりました。ちょっとしたミスを実際に直していく様子がわかるライブ的な感じは参考になりますが、ややムダな印象もあり、動画の品質が雑という印象を持ってしまいました。
伊達京佑
December 16, 2020
restAPIとgraphQL、どちらも全く知らない状態で、reactでの外部データの扱い方が知りたいと思い受講しました。 restAPIとgraphQLの2つについてとその違いは理解できた気がします。
藤井
October 16, 2020
Reactを使い、外部サービスとの連携を学習するために本コースを受講しました。 GraphQLの仕様自体は、当初思っていた内容と少し異なりましたが、結果として、 どう情報を取得し、表示し、変更すれば良いのか、ドキュメントはどこを読めばいいのか?など いろいろなことがわかる良い学びになったと思いました。 音楽とはむさんの声の大きさにギャップがあり、声に音量を合わせると音楽がうるさく感じるなどの 些細な点が気になりました。 また、本コースでは、GraphQLを用いた外部連携はGitHubのみなので、他のサービスとの連携はありません。 GraphQLを活用してのリクエスト形式はサービスごとによって異なるようなので、 同じ仕組みだけど、このサービスと連携する場合には、ここをこう変えると良い。 みたいな内容があってもいいかと思いました。 また、別件ですがGraphQLのリクエスト回数は、こんな感じで使用されているというような解説があっても、 GraphQL未体験者によっては理解が深まると思いました。 とは言え、上記のような内容は、このコースを終えた受講生が自分で学習すれば良い内容だとも思うので、 このコースはこのコースで十分な学びになると思います。 また、私はReactの学習は本コースで3つめですが、 いまいちバージョンやcreate react appに関連する情報がよくわかっていないので、 これから受講する人は気を付けてください。 【参考】私の学習レベル HTML:https://www.youtube.com/playlist?list=PLjw-30bsJNVU87F5iCPAW9kB4QDUGQxUG CSS:https://www.youtube.com/playlist?list=PLjw-30bsJNVVa4PuUseJ5YPN1K2dJr041 JS:https://www.youtube.com/playlist?list=PLjw-30bsJNVUpFTm9FDof8B91uI3iorDH ↓ 【JS】初級者から中級者になるためのJavaScriptメカニズム https://www.udemy.com/course/javascript-essence/ 【JavaScript&CSS】ガチで学びたい人のためのWEB開発徹底実践(フロントエンド編) https://www.udemy.com/course/front-dev-tutorial/ Git: もう怖くないGit!チーム開発で必要なGitを完全マスター https://www.udemy.com/course/unscared_git/ フロントエンドエンジニアのための React ・ Redux アプリケーション開発入門 https://www.udemy.com/course/react-application-development/ React Hooks 入門 - Hooksと Redux を組み合わせて最新のフロントエンド状態管理手法を習得しよう! https://www.udemy.com/course/react-hooks-101/ 最速で学ぶ - Google Cloud Platform(GCP)入門完全攻略コース https://www.udemy.com/course/google-cloud-platform-jp/ フロントエンドエンジニアのためのGraphQL with React 入門 https://www.udemy.com/course/graphql-with-react/ 【はむ式】モジュールバンドラー webpack を1日で習得!フルスクラッチでインストールからカスタマイズまでを理解する←NEXT https://www.udemy.com/course/webpack-crash-course/
齋藤
May 3, 2020
詳しくご説明されているので、とてもわかりやすかったです。はまる箇所もほとんどありませんでした。GraphQL以外のこと(react、git )についても、勉強になりました。ありがとうございました!エンディングのキャッチーなメロディーは、しばらく口ずさんでしまいそうです。
Takeshi
March 7, 2020
ReactにGraphQL、Apolloを組み合わせるにしてもそれぞれの情報が膨大であり公式を読み進めていてもどこの部分を理解しているか分かりづらかったが、このコースを終える頃にはアプリ開発を通して使い所を理解できたと思う。 コースと関係ないが、受講終える頃にはググっても〜♪をふと口ずさんでしまうので注意が必要です。
Max
December 3, 2019
フロントでGraphQLを使うための知識としてquery, mutationの仕様がわかってよかった。 バックエンドのGraphQLサーバーの実装方法にも興味が出たので、機会があれば講座を出してほしい。
Ono
November 27, 2019
GraphQLを職場に提案するために受講しました。基礎から応用(アプリ開発)まで一通り学べました。また不明点についても丁寧に回答いただけたと思います。また、Gitの使い方も参考になりました。Reactの知識がないと「?」と部分がありますが、受講するには問題ないレベルです。次は、Reactの講座を受けてみようと思いました。
Naoki
October 27, 2018
GraphQLは言葉としては知っていて意識はしていたものの、曖昧な理解でした。このコースを通して大まかな理解と、実際のアプリケーションでのユースケースを確認できました。 とてもわかりやすい解説で迷うことなくコースをやり遂げることができます。

Charts

Price

フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Price chart

Rating

フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Ratings chart

Enrollment distribution

フロントエンドエンジニアのためのGraphQL with React 入門 2018年版 - Distribution chart

Related Topics

1734714
udemy ID
6/6/2018
course created date
11/23/2019
course indexed date
Bot
course submited by