コンテンツにスキップ

Family mruby スタジオ

Family mruby がそのままブラウザの中で動きます。FreeRTOS のカーネル、Ruby の VM、デスクトップ、エディタ、音 — ファームウェアをまるごと WebAssembly にコンパイルして いるので、ここで起動するのは基板で動いているものと同じ OS で、描く絵も同じです。何も 入れる必要はなく、基板も要りません。

始め方

次の URL を開いて、画面をクリックしてください。このクリックが電源スイッチです。同時に、 ブラウザに音を出す許可を与える操作でもあるので、起動音が鳴ります。

https://family-mruby.github.io/studio/

初回だけ、ページが 1 回自分を読み込み直します (WebAssembly のスレッドに必要な分離を 用意する小さな service worker を入れるためです)。異常ではありません。

ブラウザのタブの中で、デスクトップの上に PicoRuby デモが動いている
同じデスクトップ、同じアプリが、ブラウザのタブの中で動きます

必要なもの

  • パソコンの、新しめの Chrome か Firefox。キーボードが要ります
  • Safari は未確認です。スマートフォンとタブレットは対象外です (キーボードが要るため)

できること

  • デスクトップを使う。左上のメニューからランチャー、エディタ、ファイルマネージャなどが 開きます。アプリは並べて動きます
  • エディタで Ruby を書いて動かす。日本語入力もできます (Ctrl+Space でかなモード、 ローマ字入力)
  • 入っているアプリで遊び、内蔵音源の音を聞く
  • アプリの店から増やす。実機と同じように動きます
  • 動画を再生する。MJPEG は Modern と同じようにページの中で動きます
  • 画面の大きさ (最大 852x480) と拡大率を選ぶ。画面を大きくすると、絵が大きくなるのではなく 広くなります
  • 全画面にする。ブラウザが許す場合は Esc も本体側が受け取ります。許さない場合、Esc は アプリに届かず全画面の解除になります

配色はページ側では選びません。実機と同じように、本体の Config でテーマを選びます。 画面の大きさは起動時に反映されるので、変えるとページを読み込み直します。

URL でアプリを 1 つ開くこともできます。?app=/app/game/blockgame.app.rb を付けると、 その回だけそのアプリが起動します。

自分のファイル

書いたものは残ります。/home (保存したプログラム、配色、サービスの一覧) と、入れたアプリが 置かれる /app/usr、それに設定が、このブラウザの中に次に来たときも残っています。他のどこにも 行きません。今これを読んでいるパソコンから出ることはありません。

この 2 つの外は毎回作り直されます。他の場所に書いたファイル、とりわけ /tmp は、次に 読み込み直すと消えています。同じページを 2 枚開くと、保存するのは最初のタブだけです。

ファイルの出し入れは画面の下の区画で行います。

内容
Add — Files… / Folder… 隣で選んだ場所に入れます。/home/inbox/home の下に自分で作ったディレクトリ、/app/usr から選べます。ページのどこかに投げ込んでも同じです
Work folder — Link a folder… パソコン側のフォルダをつなぎます。外で書き換えたものが本体に届き、Send my work back で本体側の内容を書き戻せます。ブラウザが対応している場合 (今のところ Chrome 系) に出ます
Backup — Download 設定も含めてまとめて 1 つの .tar として取り出します
Backup — Restore そのファイルから戻します。ここでも、別のブラウザでも戻せます
Backup — Erase 2 つの保存場所を消し、設定も既定に戻します

大事なものは取り出しておいてください。プライベートウィンドウでは何も残りませんし、長く 来ないとブラウザが領域を回収することがあります。

投げ込んだフォルダは、*.app.toml を持っていればアプリとして入ります。それ以外は選んだ 場所にそのまま置かれます。中身から勝手に判断することはありません。.png が勝手に壁紙に なることはない、ということです。

できないこと

  • ネットワークはページのものです。FmrbNet.request はブラウザを通して取ってくるので、 別のサイトからの取得を許していないサーバは読めません。ソケットの側 (Net::HTTP、 WebSocket) はありません
  • これは Modern 系の構成です。ハードウェアの楽しみはやはり基板の側にあります。 機種の選択 を参照してください