タイトル画像
琴葉葵

おねーちゃん!ここのテーマに書かれてる「GUI」ってなんなの??

琴葉茜

GUIは「グラフィカル・ユーザー・インターフェース」の略で、ウィンドウやボタン、アイコンみたいな視覚的な要素を入れて、マウス操作やタッチ操作で操作できるようにしたものだよ

解説画像1
琴葉葵

そういえば、今までやってきたプログラムは出力結果にグラフの画像とかは出せてたけど、操作自体は文字入力だけだったもんね!!

琴葉茜

ちなみに、葵が言うような今まで作ってきたものは「キャラクター・ユーザー・インターフェース(CUI)」って言われてるよ

解説画像2
琴葉葵

ほうほう
...ってことは、ここからはパソコンとかスマホで使うアプリとかゲームを作っていく感じなんだね!

琴葉茜

そういうこと!

琴葉茜

それから、GUIを作る前に感覚として持っておいてほしいプログラムの考え方があるんだ

琴葉葵

それは...難しいお話ですか...??

琴葉茜

まぁ考え方の話だから、そんなに身構えなくても良いよ

琴葉茜

まず、あおいが普段使うスマホのアプリを思い出してみてほしいんだけど、アプリの中にはたくさん「ボタン」があるよね?

琴葉葵

そうだね!ソシャゲでキャラクターを押したらステータスが出てきたり、ボタンを押したら他の画面に移動したりするよ!

解説画像3
琴葉茜

そうそう、そんな感じで「何かをすると何か動作が始まる」って仕組みを使うプログラムを作ることを「イベント駆動型プログラム」って言うんだ

解説画像4
琴葉葵

それって、今までやってた「input()」で入力されるまで待つってのとは違うの?

琴葉茜

その場合だと、キーボードで何か入力してエンターキーが押されるまで他に何もできなくなるでしょ?
GUIの場合は沢山ボタンがあるから、どれが押されるか分からない状態で待って、どれかが押されるとそれに対応した動作を始めるって感じになるんだ

琴葉葵

ほうほう
確かに、色んなボタンから反応を待つようにするってのは今までと考え方が違うね

琴葉茜

なんとなく考え方は分かったかな?まぁここから先はそんな考え方で作っていくんだって認識で丈夫だよ!

琴葉葵

なんとなくは分かった!
でもそう思うと、GUIってボタンとかを沢山使ってるから1つ1つ機能を作っていくのは大変だね(汗)

琴葉茜

良いところに気づいたね!
そこで必要なもう1つ考え方が「オブジェクト指向」だよ

解説画像5
琴葉葵

おぶじぇくとしこう??

琴葉茜

例えばゲームの中のボタンは、「表示する文字を変えられる」「ページを移動する」「攻撃する」みたいな押された時の機能をそれぞれが持ってるよね

琴葉葵

確かに、ボタンといっても押した時の機能がそれぞれ違ってることが多いね

琴葉茜

そんなボタンみたいに「機能を持った部品」のことを「オブジェクト」と言って、オブジェクトごとにプログラムを作るって考え方を「オブジェクト指向」って言うんだ

琴葉葵

まぁ言わんとすることは分かるけど、いまいちピンと来ない...

琴葉茜

この次の項目で「class(クラス)」を紹介するけど、その時にオブジェクト指向のイメージをなんとなく掴めたら良いから気にしなくても大丈夫だよ!

琴葉葵

りょーかい!