普及期を迎えたスマートフォンの代表的なOSの一つである「Android」向けのソフトウエア開発において、素早くアプリケーションを実現できる開発ツールとして注目されているのが、米Googleが提供する「App Inventor for Android(以下、App Inventor)」である。このApp Inventorを使えば、GUI(グラフィカルユーザーインタフェース)上のプログラム部品をマウスで操作することにより、Android用のアプリケーションを比較的簡単に開発できる。

 具体的には、あらかじめ用意されたUI部品を開発画面上にドラッグしてアプリケーションの表示画面をデザインしたり、「ブロック状の部品」をパズルのように組み合わせて挙動を実装したりできる。コードを全く書かずにアプリケーションを実現できるので、開発者はプログラミング言語の仕様や開発ツールのAPI(アプリケーションプログラミングインタフェース)の使い方を習得しなくて済み、アプリケーションの画面デザインとロジックに注力できる。

ブロックを並べるだけでプログラミングが楽しめる

 コードを全く書かずに「ブロック状の部品」を並べるだけでプログラミングを楽しめるという点で、App Inventorの先輩とみなせるのが、今回紹介するプログラミング環境「Scratch(スクラッチ)」である。Scratchは、プログラミングを自分が作りたいものを実現するための手段ととらえ、米マサチューセッツ工科大学(MIT)メディアラボが開発・提供しているプログラミング環境である(図1)。

図1●コードを書かずにプログラミングが楽しめる開発ツール「Scratch」の画面
図1●コードを書かずにプログラミングが楽しめる開発ツール「Scratch」の画面

 どのようにしてプログラミングができるかは、図で説明した方が直観的に理解していただけるだろう。Scratchでは、図2に示すような様々なブロックが、「動き」や「制御」「演算」「見た目」というように分類されて、あらかじめ用意されている。マウスを使ってこれらのブロックを、例えば図3のように組み合わせていくだけでキャラクターの猫が画面内を左右に動き続けるプログラムが完成する。

図2●Scratchに用意されている命令のブロック(一部)
図2●Scratchに用意されている命令のブロック(一部)
青色のブロックは「動き」、黄色のブロックは「制御」、紫色のブロックは「見た目」、水色のブロックは「調べる」、黄緑色のブロックは「演算」、ピンク色のブロックは「音」を操作する。このほか、「ペン」「変数」のブロックもある。

図3●画面上を猫(スクラッチキャット)を歩かせるプログラム
図3●画面上を猫(スクラッチキャット)を歩かせるプログラム
開始ボタンとなる緑色の旗をクリックすると、「猫が10歩動く」、「画面の端に着いたら逆側に向く」、という動作を「ずっと」繰り返す。

 図3は、プログラムの開始ボタンとなる緑色の旗をクリックすると、猫を「(10)歩動かす」「もし端に着いたら跳ね返る(画面の端に着いたら逆側に向く)」という動作を「ずっと」繰り返すプログラムだ。「(10)歩動かす」「もし端に着いたら跳ね返る」「ずっと」といった動きや制御のブロック、および自由に定義できる変数のブロックなどを使って、マウス操作だけでアニメーションやゲームなどのプログラムを開発できる。キャラクターが動き回るアニメーションなら、おおげさでなく2~3分で作ることが可能だ。

 このようにScratchは、開発環境での操作がとても簡単なので、アルゴリズム(問題の解法)に専念できるという点で、ソフトウエア開発の主目的となるアイデアの具現化の学習に適している。実際、米国はもとより国内においてもScratchを使ったプログラミング学習が、小中学生から大学生に至るまでの幅広い年齢層を対象に広まりつつあるようだ。