ネットワークを利用した双方向性のあるコンテンツを
cRafthon で作るには
使う人の入力で応答が変わり、その入力がネットワークを越えて送られ、 作ったものが他の人の端末で動く。 この 3 つが、cRafthon の中だけで揃います。サーバーを借りる必要はありません。
たとえば、場所を入力すると、いまの気温が出るアプリです。生徒が組むブロックは 10 個ほどで、 出てくる Python はこれだけです。
import streamlit as st
st.title("天気しらべ")
place = st.text_input("場所を入力", value="札幌市役所")
st.write(await get_current_temp(await get_lat(place), await get_lon(place)))
これを QR コードにして配ると、読み取った人の端末でそのまま動きます。 打ち込んだ地名が国土地理院へ送られて座標が返り、その座標が気象データの提供元へ送られて気温が返ります。
| 入力 | 返ってくるもの |
|---|---|
| 札幌市役所 | 9.5 ℃ |
| 那覇市役所 | 26.2 ℃ |
| 使う人の働きかけで 応答が変わる |
Streamlit の入力欄・スライダー・選択肢。打ち替えるたびにプログラムが動き直します。 |
|---|---|
| ネットワーク越しの 送受信 |
「API利用」の分類にあるブロック。使う人が打った言葉がそのまま送られ、 それに応じた答えが返ります。通信を切ると止まることも、授業で見せられます。 |
| 他の人の端末で 動く |
〈ツール〉→〈QR共有〉。プログラムは QR の中の文字列に入っていて、 どこかのサーバーに置かれるわけではありません。読み取った端末の中で Python が動きます。 |
鍵も登録もいらず、日本語で結果が返るものを選んであります。
| 住所しらべ | 地名を送ると緯度・経度が返ります(国土地理院) |
|---|---|
| お天気 | 緯度・経度を送るといまの気温が返ります(Open-Meteo) |
| ウィキペディア | 語を送るとその項目の要約が返ります(日本語版) |
| 為替レート | 通貨を選ぶとレートが返ります(欧州中央銀行の公表値) |
| ポケモン図鑑 | 図鑑番号を送ると名前・タイプ・説明が返ります(PokéAPI) |
| AIに聞く | 文章を送ると答えが返ります |
どの接続先と通信するかは 外部との通信について に一覧があります。 学校のネットワーク管理者にご相談いただく際は、そちらをお使いください。
1 と 2 の対比が肝だと考えています。 占いは自分で作れます。天気は作れません。 その違いは「その情報が自分の外にあるかどうか」で、 ネットワークを使う理由がここにあります。
4 と 5 で、作る人と使う人が分かれます。自分で動かしている間は気づかないことが、 人に使ってもらうと出てきます。設計・試用・改善の一巡りが、ここで自然に回ります。
アプリ内の〈チュートリアル〉→〈Webアプリにして配る〉に、 上の天気アプリを作る手順が入っています。6 段で、できたら次へ進む形です。 その前に「変数」「もし〜なら」「繰り返す」などの回があります。
掲示板やチャットを作る教材もありますが、cRafthon ではその機能を提供していません。 意図的な判断です。
生徒が自由に書き込める場は、作りが簡素でも、そこで起きることは本物と同じです。 一方で本物の掲示板が備えているもの——通報の導線、記録の保全、荒れたときに止める権限、 見張り続ける人——が、授業で作ったものにはありません。 結果として、監督する役割が授業中の先生ひとりに乗ります。
上に挙げた形であれば、やりとりするのは言葉ではなくプログラムです。 生徒が互いに渡すのは「作ったアプリ」で、相手がすることは「使ってみて、どこが使いにくいか伝える」こと。 学習としての手応えは保ったまま、書き込みの場だけが無い形にしてあります。
生徒が書いたプログラムや作品が、こちらのサーバーへ送られることはありません。 保存も端末の中で行われます。詳しくは 外部との通信について をご覧ください。
← バージョンの選択に戻る