강의

멘토링

커뮤니티

Programming

/

Front-end

フロントエンド開発のスパイス、Web API (feat. React)

実務で活用できるWeb APIを扱います。一度は必ず直面するであろう要件を解決するための武器を、ぜひ手に入れてください。

難易度 初級

受講期間 無制限

  • vroomfan
JavaScript
JavaScript
React
React
Web API
Web API
JavaScript
JavaScript
React
React
Web API
Web API

学習した受講者のレビュー

学習した受講者のレビュー

5.0

5.0

고슈

100% 受講後に作成

よく使われるWeb APIを見て回ることができてよかったです。エッセンスだけが集められていますね!!気軽に聞ける良い講義です。最高 👍

5.0

망고

100% 受講後に作成

WEB APIについてより詳しく知ることができて良かったです。もう少し実務的な観点や例示のコードを見せていただけたら、もっと良かったと思います

5.0

Jang Jaehoon

33% 受講後に作成

良い講義をありがとうございます!

受講後に得られること

  • ブラウザでWeb APIが動作する仕組み

  • Web Workerで負荷を軽減する方法

  • 異なるコンテキスト(window、tab、iframeなど)間で通信する方法

  • Timer, Animationをより正確に使用する方法

几帳面なFE開発者のためのWeb API
豊富なサンプルで分かりやすくスピーディーに理解!

フロントエンド開発のスパイス、Web API

FE開発を進める中で自然と触れることになるfetchやsetTimeoutだけでなく、Worker、MessageChannel、MutationObserverといった、別途学習が必要なAPIもあります。

一般的なFE機能の実装にとどまらず、タブの非アクティブ化への対応、異なるタブ間でのデータ転送、重複するサーバーリクエストの削減など、徹底したバグ対応や最適化のためにはWeb APIが不可欠です。

実務を進める中で、難しい要件の実装や、特殊なバグへの対応、パフォーマンスの最適化など、様々な問題をWeb APIで解決できることを知りました。

実務で直面しうる状況を反映した例を通じて、詳細な要件をWeb APIで実装する方法を学んでいただければ幸いです。

次のような状況に直面したことはありますか? 🤔

  1. 地図上でユーザーの移動動線を可視化する


    時間情報が含まれた座標データに基づき、経過時間ごとに地図上に線を描画して移動経路を可視化する必要があります。データは以下の通りです。


    [{ lng: 127.10, lat: 37.50, time: 1000ms },
    { lng: 127.11, lat: 37.51, time: 1700ms },
    { lng: 127.12, lat: 37.52, time: 2100ms }, ...]

    • setTimeout(drawLine, 1000); setTimeout(drawLine, 1700 - 1000); setTimeout(drawLine, 2100 - 1700); ... このように、それぞれの time に合わせて setTimeout を連続で呼び出せばよいでしょうか?

    • setTimeoutが意図通りに動作しない状況もありますか?ある場合、どのように対応すべきでしょうか?

  2. 複数タブのデータを同期する
    タブAの投稿作成ページで新しい記事を作成したとき、タブBの投稿一覧ページでも作成した新しい記事がすぐに表示される必要があります。


    • タブAで新しい投稿を作成した際、その投稿の情報をタブBに渡し、タブBでこの値を使ってリストの状態(state)を更新すればよいでしょうか?
      { type: 'newPost', title: 'title_1', author: 'author_1', ... }

    • タブAで新しい投稿が作成されたという通知をタブBに送り、タブBでその情報を受け取ったときに一覧取得APIを再実行すればよいでしょうか?


      { type: 'refetchPosts' }

    • それでは、異なるタブ間で上記のようなデータをやり取りする方法は何でしょうか?


講義を通じて学ぶWeb API 7つのポイント

  1. Chromiumのコードを通じてWeb APIが動作する仕組みを理解

  2. タブが非アクティブになった時のタイマーの動作と対応方法

  3. Workerでメインスレッドの負荷を減らす

  4. WebSocket接続を最小化してサーバー負荷を軽減する

  5. 異なるブラウジングコンテキスト間でデータを転送する

  6. アニメーションをCSSではなくJSで制御する

  7. 実務のための追加のWeb API


学習カリキュラム 📚

Section 1. 講義紹介

ブラウザのソースコードを通じて、Web APIがJavaScriptの機能をどのように拡張するのか、ブラウザでどのように実装され動作しているのかを学習します。

Section 2. タイマー関数を正確に使用する

タブが非アクティブになった際のsetTimeoutの挙動を確認し、タイマーを正確に実装する方法を学習します。

Section 3. Web Workers API

メインスレッドやサーバーに負荷が発生する状況を、Workerを利用して解決する方法を学習します。

Section 4. Message API

異なるウィンドウ、異なるタブ、Shadow DOMといった隔離された状況での通信を可能にするWeb APIを学習します。

Section 5. Web Animations API

アニメーションを Web Animation API と requestAnimationFrame で制御する方法を学習します。

Section 6. ボーナス Web API

MutationObserver、requestIdleCallbackなど、実務のための追加のWeb APIレッスンがアップデートされます。

Q&A 💭

Q. 講座の難易度はどのくらいですか?

基本的なReactの文法、イベントループの概念、ウェブ関連の基礎知識は習得していることを前提に進められます。基礎知識さえあれば、新しいWeb APIはスムーズに付いていくことができます。授業資料の中で理解できないコードがあれば、お気軽に質問を残してください。

Q. 授業はどのような方式で進められますか?

セクションごとに新しい課題が提示されます。まず、その課題を基本的なJS/CSSで解決する方法を確認し、そのコードで発生する可能性のあるバグや例外状況を調べます。その後、問題をより確実に解決するためのWeb APIを紹介し、Web APIを使って目的の機能を実装します。

Q. 授業で使用する特別なライブラリはありますか?

JavaScript Web APIの講座であるため、別途ライブラリを学ぶ必要はありません。ただし、スムーズな授業進行のためにzod(TS validation)やws(ウェブソケット)などのライブラリがpackage.jsonに含まれています。

💾受講前の注意事項

  • Web、Javascript、Reactに関する基礎知識が必要です。

  • 授業で使用された全ソースコードを提供します。授業ではコードを一行ずつ読み上げることはせず、授業の進行に必要な部分だけを読み上げるため、コードを一緒に確認することをおすすめします。


👨‍🎓 推奨される学習方法

  • 提供される授業資料のコードと授業動画を一緒に見ながら受講されることをおすすめします。

  • セクションの最後に出題されるミッションは、ご自身で解いてみることをお勧めします。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • 実務でsetTimeout、fetch Web APIだけを使っている方

  • 複雑な要件をWeb APIの概念で解決したい方

前提知識、
必要でしょうか?

  • React, Javascript 基本文法

  • npmの使い方

こんにちは
です。

1,041

受講生

50

受講レビュー

87

回答

4.5

講座評価

2

講座

こんにちは。
スタートアップで4年間フロントエンドエンジニアとして働いています。
React、Next.js、地図、チャート、UIライブラリなどを扱っています。

ポートフォリオ

カリキュラム

全体

25件 ∙ (2時間 5分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

4件

5.0

4件の受講レビュー

  • go5ue님의 프로필 이미지
    go5ue

    受講レビュー 4

    平均評価 5.0

    5

    100% 受講後に作成

    よく使われるWeb APIを見て回ることができてよかったです。エッセンスだけが集められていますね!!気軽に聞ける良い講義です。最高 👍

    • fined0006806님의 프로필 이미지
      fined0006806

      受講レビュー 36

      平均評価 4.8

      5

      100% 受講後に作成

      WEB APIについてより詳しく知ることができて良かったです。もう少し実務的な観点や例示のコードを見せていただけたら、もっと良かったと思います

      • jjhgwx님의 프로필 이미지
        jjhgwx

        受講レビュー 644

        平均評価 4.9

        5

        33% 受講後に作成

        良い講義をありがとうございます!

        • yoonc017672님의 프로필 이미지
          yoonc017672

          受講レビュー 7

          平均評価 5.0

          5

          32% 受講後に作成

          ¥2,442

          vroomfanの他の講座

          知識共有者の他の講座を見てみましょう!

          似ている講座

          同じ分野の他の講座を見てみましょう!