Thunkableをより詳しく見る

  • イベント駆動型プログラミングについて学びます
  • Thunkableプラットフォームのブロックの種類を理解します

イベント

モバイルアプリは、イベント駆動型プログラミングに基づいています。 

イベント駆動型プログラミングは、コードを上から下へ実行するのではなく、イベントを起点として実行します。一度にすべてのコードを実行するプログラムもありますが、モバイルアプリはユーザーがどのように操作するかによって実行が変わります。

モバイルアプリは、イベントに基づいて動作します。 イベントとは、コードが実行されるきっかけとなるような出来事のことです。例えば、ユーザーがボタンをクリックする。これはイベントです。そして、そのイベントが起こったときに実行されるコードを イベントハンドラと呼びます。

ストップ&ディスカッション

あなたがスマホを使うとき、どんなふうにやり取りし、そのときスマホが何をしているか考えてみてください。下の例を参考にしましょう。

  • アプリのアイコンをクリックすると、アプリが開く。
  • テキストメッセージの「送信」をクリックすると、メッセージが送信され、音が鳴る。
  • アプリにログインしようとすると、アプリはパスワードの入力を求める。
女子の議論

まずはThunkableプラットフォームの様々な部分を見てみましょう。

Thunkableには、アプリを作成するために使用する2つのウィンドウがあります。一番上のメニューバー(画面左上)のDesignをクリックすると デザイナーウィンドウに移動します。デザイナーウィンドウはユーザーインターフェースをデザインできるウィンドウです。ユーザーインターフェースとは、ユーザーが操作できるアプリ内のすべてのものを指します。例えばボタン、ナビゲーションバー、テキストボックス、画像などです。

デザイナー画面

Thunkableのデザイナーウィンドウ
1

コンポーネント一覧

アプリに追加したすべてのコンポーネントが、画面ごとに階層化されてここに表示されます。

3

ワークスペース

この中央のワークスペース にあるスマホの上にコンポーネントをドラッグします。コンポーネントを配置する場所やサイズを変更することができます。

2

コンポーネントの追加

このパネルからビジュアルコンポーネントをワークスペースにドラッグします。 

4

プロパティパネル

プロパティパネルでは、各コンポーネントのプロパティを設定することができます。 プロパティは、幅、高さ、色など、各コンポーネントに設定できるさまざまな特性です。モックアップ上でコンポーネントを選択し、プロパティパネルでそのプロパティを変更することができます。

誰かがあなたのアプリを使うとき、ボタンをクリックしたり、テキストを入力したりして、ユーザーインターフェイスと対話します。あなたのアプリが何をすべきかを決定し、それを実行するようにプログラムするのはあなたです。

ブロックエディター

Blocksをクリックすると ブロックエディターウィンドウが表示されます。ブロックエディターウィンドウでは左側のパネルから画面中央のワークスペースにブロックをドラッグすることでコーディングをすることができます。

サンクナブル・ブロック・エディター
1
ブロックパレット

左側にはブロックパレットがあります。上部にはUIコンポーネントがあります。アプリの各コンポーネントには、それぞれブロックのセットがあります。コンポーネントをクリックすると、ワークスペースにドラッグできるブロックが表示されます。

4

コーディングワークスペース

ここは、すべてのブロックをドラッグするワークスペースです。ブロックを移動させたり、ブロック同士をスナップさせたりすることができます。また、不要なブロックを削除することもできます。

2

コアブロック

コアブロックは、アプリで使用する標準的なコーディングブロックです。種類によって分類され、色分けされています。

3

アプリの特徴

これらは、アプリに追加できる目に見えない機能です。クリックして追加し、プロパティを設定したり、その機能のコードブロックをドラッグすることができます。

イベントハンドラ

Thunkableのイベントハンドラブロックは金色で、開いたブロックの形をしているので、その中にブロックをスはめ込むことができます。これらのブロックは、そのイベントが起こった時だけ実行されます。

Thunkable ボタンクリックイベントブロック

ボタンがクリックされたとき
これはすでに使ったことがあるだろう。ユーザーが特定のボタンをクリックしたとき、アプリに別の画面を開いたり、メッセージを送信したりといった動作をさせたいでしょう。

Thunkable リストビューアアイテムクリックイベントブロック

ListViewerの項目がクリックされたとき
ListViewerはドロップダウンメニューのようなものなので、このイベントはユーザーがリストの項目を選択したときに発生します。アプリはクリックされた項目に対して何かを行う必要があります。

Thunkable スクリーンオープンイベントブロック

画面が開いたとき
このイベントは、アプリが最初に起動したときや、アプリが別の画面に切り替わったときに何かをしたいときに使用します。変数を設定したり、クラウドから情報を更新したりできます。

機能

関数は、何かを行うブロックの集まりです。このブロックはアプリ内で何度も実行することができます。Thunkableでは、関数ブロックは紫色で表示されます。プログラミング言語によっては、関数をメソッドやプロシージャと呼ぶこともあります。 関数は何かを行うので、アクションブロックと考えることができます。

関数ブロック

話す
この機能により、アプリはあなたがしゃべらせたいテキストをしゃべります。

タイマースタート&サウンド再生
タイマーコンポーネントは、カウントを開始することができます。 また、サウンドを再生することもできます。

セッターとゲッター

緑色のブロックはコンポーネントのプロパティに関係します。 

この薄緑色のブロックはプロパティの値を取得するために利用するのでゲッターと呼ばれます。

サンク可能なゲッター・ブロック

ボタン1のテキスト
テキストが取得され、変数 numberChoice に保存される。

タイマー1の時間(秒
タイマーの秒数を取得し、Lablel1のテキストに格納することで、ラベルにその値が表示されます。 

この濃い緑色のブロックはプロパティの値を設定するために利用するのでセッター と呼ばれます。このブロックははめ込むことができ、末端には空きスロットがあります。

サンク可能なセッター・ブロック

ボタン1のテキスト
Button1のTextには "Click me!"という文字が設定されている。

ラベル1.テキスト
Label1のTextには、Timer1のTime(Time in Seconds)が設定される。

タイマー1のインターバルミリ秒
タイマー1のIntervalMilliseconds(タイマーが切れる頻度)は3000、つまり3秒に設定されています。

ベストプラクティス生徒たちに、これは実際のコーディングとまったく同じであることを思い出させる。私たちが使っている奇妙な語彙(関数、ゲッター、セッター)は、まさにコーダーが使っているものです。

 

生徒への質問日常的に行っていることを思い浮かべることができますか?(例:ケーキを焼く、歯を磨くなど、繰り返しできるステップがあるもの)。関数はアルゴリズムによく似ています!

メンターTipsは、AmeriCorpsから提供されたものです。

様式化されたA、ネイビーでAmeriCorpsのロゴ

データブロック

セッターを使用する場合、データ、つまりアプリで使用できる情報を表す他の組み込みブロックを使用することがあります。使用できるデータブロックの例を以下に示します。

算数ブロック

数値
数値はアプリのデータとして使用できます。これらのブロックは、ブロックパレットのコアセクションの数学ドロワーにあります。

サンカブルテキストブロック

テキストまたは文字列
テキストは文字列と呼ばれることもあり、データとして使用できます。アプリで使用できる文字、単語、文章です。このブロックは、ブロックパレットのCoreセクションのTextドロワーにあります。

サンカブルブーリアンブロック

ブール値
このデータ型には、true(真)かfalse(偽)の2つの値しかありません。 これらのブロックは、何かの「状態」を設定したりテストしたりすることができ、条件式で使用されます。

アクティビティ:サウンドボード・チュートリアル

所要時間45分

以下のビデオチュートリアルに従ってください。

メディアファイルのダウンロードはこちら(詳細はDaveのビデオをご覧ください)
次に、以下のDaveのビデオに従って、イベントハンドラと関数を使って、スピーチを再生するアプリを作りましょう。

チャレンジ

アクティビティで、あなたはこれらを使用しました:

  • イベントハンドラブロック
  • 機能ブロック

Soundboardアプリに、セッターとゲッターのブロックを追加して、使ってみましょう。

ユーザーが関連するスピーチを再生するために画像をクリックすると、 背景の色が変わるようにしましょう。

ある特定の色に変更することはできますが、元の色である黒に簡単に戻すことはできません。代わりに画面の背景をランダムな色に変更するようにしましょう。 

 ヒント:色の引き出しで、ランダムな色を得る方法を確認してください。

振り返り

さまざまなコードブロックについて少し学んだところで、アプリのソリューションについて考えてみよう:

アプリに必要なコンポーネントは?
あなたのアプリに、どのようなイベントにイベントハンドラが必要?
あなたのアプリでイベントがトリガーされたときに起こるアクションは何?
前のスライド
次のスライド

主な用語のおさらい

  • ユーザーインターフェース - ユーザーが操作できるアプリ内のすべてのもの
  • デザイナー- アプリにコンポーネントを追加したり、見た目をデザインしたりできるウィンドウ
  • ブロックエディター- アプリのブロックをコーディングするウィンドウ
  • イベント-コードが実行されるきっかけとなるような出来事
  • イベントハンドラ- イベントが発生したときにアプリが何をすべきかを指示するコードブロック
  • イベント駆動型プログラミング- コード全体を最初から最後まで実行するのではなく、イベントに基づいて実行されるプログラミング
  • 関数- 何度も実行されるコードのブロック。

追加リソース

Dave WolberのThunkableチュートリアルをもっとチェックするには、以下をご覧ください。 draganddropcode.com

学生アンバサダー、ミーナクシ・ナイールのUdemy無料講座 Thunkableコースも素晴らしいリソースです!