【ITニュース解説】I just finished a beginner project combining a BMI calculator, a live clock, and a GitHub profile card using the GitHub API.
2025年09月24日に「Dev.to」が公開したITニュース「I just finished a beginner project combining a BMI calculator, a live clock, and a GitHub profile card using the GitHub API.」について初心者にもわかりやすく解説しています。
ITニュース概要
初心者がWeb学習のため、BMI計算機・ライブ時計・GitHubプロフィールカードを組み合わせたプロジェクトを完成させた。GitHub APIでユーザー情報を取得し、DOMやfetch API、CSSの習得を目指した実践的な開発だ。
ITニュース解説
このプロジェクトは、Web開発の基礎を学ぶシステムエンジニアを目指す初心者にとって、非常に実践的で学ぶことが多い複合的なWebアプリケーションである。具体的には、GitHubのプロフィール情報表示、BMI計算機、そしてライブ時計という三つの機能を一つのページにまとめている。これらの機能を通じて、Webページを動的に操作するDOM(Document Object Model)、外部のデータと連携するFetch API、そしてページの見た目を整えるCSSといった、Web開発の主要な技術要素を実地で体験できる点が大きな魅力だ。
まず、このプロジェクトの根幹にある「Webページを動的に操作する」という考え方を理解することが重要である。普段我々が見ているWebページはHTMLという言語で骨格が作られ、CSSで装飾され、JavaScriptというプログラミング言語で動きが付けられている。ここで言う「動き」とは、ユーザーの操作に応じて表示内容が変わったり、リアルタイムに情報が更新されたりすることだ。この「動き」を実現するために必要となるのが、DOMという仕組みである。DOMは、Webページを構成するHTMLの要素(見出し、段落、ボタンなど)一つ一つを、JavaScriptなどのプログラムから操作できるようにする窓口だと考えるとわかりやすい。例えば、特定のテキストの内容を書き換えたり、ボタンがクリックされたときに新しい要素を追加したりといった操作は、全てDOMを通じて行われる。このプロジェクトでは、GitHubから取得したユーザー情報を表示したり、BMIの計算結果を表示したり、時計の時刻を更新したりと、様々な場面でDOMの操作が活用されている。
次に、GitHubプロフィールカードの機能に注目してみよう。これは、外部のサービスから情報を取得してWebページに表示するという、現代のWebアプリケーションでは不可欠な技術を学ぶ良い機会となる。ここで登場するのが「GitHub API」と「Fetch API」である。API(Application Programming Interface)とは、あるサービスが提供する機能やデータを、他のプログラムから利用するための窓口のことだ。GitHubは、ユーザー情報やリポジトリ情報など、様々なデータをAPIを通じて公開している。このプロジェクトでは、https://api.github.com/users/<username>という特定のURLにアクセスすることで、指定したGitHubユーザーの公開プロフィール情報を取得している。
このAPIからデータを取得する際に使われるのが、JavaScriptに標準で備わっているFetch APIである。Fetch APIは、Webサーバーに対してリクエストを送り、その応答としてデータを受け取るための機能だ。Fetch APIを使うと、プログラムは非同期的に(つまり、データの取得を待っている間も他の処理を進められるように)データを取得できる。取得したデータは通常、JSONという形式で送られてくる。JSONはJavaScriptと相性が良く、簡単にプログラムで扱えるため、Web APIで広く使われているデータ形式である。プロジェクトでは、Fetch APIで取得したGitHubユーザーのJSONデータから、アバターの画像URL、ユーザー名、自己紹介、フォロワー数、公開リポジトリ数などの必要な情報を取り出し、それらをDOMを使ってHTML要素に反映させることで、GitHubプロフィールカードを動的に生成・表示しているのである。
BMI計算機とライブ時計の機能は、JavaScriptによるクライアントサイド(ユーザーのWebブラウザ側)でのロジック処理とDOM操作の基礎を学ぶのに最適だ。BMI計算機では、ユーザーが入力した身長と体重の数値を受け取り、プログラム内で計算式(体重kg / (身長m * 身長m))に基づいてBMIを算出する。そして、その計算結果をWebページ上の所定の場所に表示する。ここでも、ユーザーの入力値の取得と、計算結果の表示にDOM操作が用いられている。ユーザーが数値を入力し、「計算」ボタンをクリックする、という一連のインタラクションを通じて、イベントハンドリング(ユーザーの操作を検知して特定の処理を実行する仕組み)の基本も学ぶことができる。
ライブ時計の機能は、Webページをリアルタイムで更新するという動的な挙動を理解するための良い例である。JavaScriptのDateオブジェクトを使って現在の時刻を取得し、それを指定されたフォーマットで表示する。さらに、「ライブ」にするためには、単に一度表示するだけでなく、1秒ごとに時刻を更新し続ける必要がある。これを実現するために、JavaScriptのsetInterval関数が活用される。setIntervalは、指定した時間間隔(例えば1秒)で特定の処理を繰り返し実行する機能だ。この機能を使うことで、時計の表示が常に最新の状態に保たれ、まさに「ライブ」な時計として機能するのである。
これらの機能すべてにおいて、Webページの見た目や配置を整えるためにCSSが使われている。プロジェクトの概要にも「a bit of CSS」とあるように、CSSはWeb開発において非常に重要な要素であり、HTMLで作成されたコンテンツを美しく、ユーザーにとって使いやすいインターフェースに仕上げる役割を担う。
まとめると、この複合プロジェクトは、単に三つの異なる機能を実装するだけでなく、Web開発の主要な技術要素であるHTML、CSS、JavaScriptがどのように連携して一つのWebアプリケーションを構築するのかを、初心者でも体系的に学ぶことができる優れた教材である。DOMによるWebページの動的な操作、Fetch APIによる外部サービスとの連携、そしてJavaScriptによるロジック処理とリアルタイム更新。これらを実際に自分の手を動かして実装することで、システムエンジニアとしてWebアプリケーション開発の第一歩を踏み出すための貴重な経験と知識を得られるだろう。座学だけでは得られない「実際に動くものを作る」という経験は、あなたの学習意欲をさらに刺激し、次のステップへと進むための大きな自信となるに違いない。