cRafthon

ネットワークを利用した双方向性のあるコンテンツを
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 ℃

実際に QR から開いた端末で確認した値です(2026年10月)。

3 つの要素が、どこで起きているか

使う人の働きかけで
応答が変わる
Streamlit の入力欄・スライダー・選択肢。打ち替えるたびにプログラムが動き直します。
ネットワーク越しの
送受信
「API利用」の分類にあるブロック。使う人が打った言葉がそのまま送られ、 それに応じた答えが返ります。通信を切ると止まることも、授業で見せられます。
他の人の端末で
動く
〈ツール〉→〈QR共有〉。プログラムは QR の中の文字列に入っていて、 どこかのサーバーに置かれるわけではありません。読み取った端末の中で Python が動きます。

使える窓口

鍵も登録もいらず、日本語で結果が返るものを選んであります。

住所しらべ地名を送ると緯度・経度が返ります(国土地理院)
お天気緯度・経度を送るといまの気温が返ります(Open-Meteo)
ウィキペディア語を送るとその項目の要約が返ります(日本語版)
為替レート通貨を選ぶとレートが返ります(欧州中央銀行の公表値)
ポケモン図鑑図鑑番号を送ると名前・タイプ・説明が返ります(PokéAPI)
AIに聞く文章を送ると答えが返ります

どの接続先と通信するかは 外部との通信について に一覧があります。 学校のネットワーク管理者にご相談いただく際は、そちらをお使いください。

単元の組み方の一例

  1. 自分で作れるものを作る。おみくじや診断を、乱数と分岐だけで作ります。ネットワークは使いません。
  2. 自分では作れないものに出会う。「いま札幌が何度か」は、観測している人のところへ聞きに行くしかありません。ここでネットワークを使う必然性が出ます。
  3. 使う人に入力してもらう。入力欄を付けて、打たれた言葉を送る形にします。
  4. 配って、使ってもらう。QR で隣の班に渡します。
  5. 使ってもらうと穴が見つかる。空欄のまま押された、無い地名が入った。直して、もう一度使ってもらいます。

1 と 2 の対比が肝だと考えています。 占いは自分で作れます。天気は作れません。 その違いは「その情報が自分の外にあるかどうか」で、 ネットワークを使う理由がここにあります。

4 と 5 で、作る人と使う人が分かれます。自分で動かしている間は気づかないことが、 人に使ってもらうと出てきます。設計・試用・改善の一巡りが、ここで自然に回ります。

生徒向けの手順があります

アプリ内の〈チュートリアル〉→〈Webアプリにして配る〉に、 上の天気アプリを作る手順が入っています。6 段で、できたら次へ進む形です。 その前に「変数」「もし〜なら」「繰り返す」などの回があります。

生徒どうしが書き込む掲示板は用意していません

掲示板やチャットを作る教材もありますが、cRafthon ではその機能を提供していません。 意図的な判断です。

生徒が自由に書き込める場は、作りが簡素でも、そこで起きることは本物と同じです。 一方で本物の掲示板が備えているもの——通報の導線、記録の保全、荒れたときに止める権限、 見張り続ける人——が、授業で作ったものにはありません。 結果として、監督する役割が授業中の先生ひとりに乗ります。

上に挙げた形であれば、やりとりするのは言葉ではなくプログラムです。 生徒が互いに渡すのは「作ったアプリ」で、相手がすることは「使ってみて、どこが使いにくいか伝える」こと。 学習としての手応えは保ったまま、書き込みの場だけが無い形にしてあります。

準備するもの

生徒が書いたプログラムや作品が、こちらのサーバーへ送られることはありません。 保存も端末の中で行われます。詳しくは 外部との通信について をご覧ください。

← バージョンの選択に戻る