SVGで描いたスマートフォンのUIを操作しながら、
スマホの基本操作をステップバイステップで学べるインタラクティブな学習ツールです。
SVG UI Simulator は、スマートフォンの操作に不慣れな初心者が、実機を使わずに
タッチジェスチャーや基本操作を安全・視覚的に学べるWebベースのトレーニングツールです。
アプリは大きく3つのエリアに分かれており、左から「シナリオ選択」「スマホ表示」「情報パネル」となっています。
クリックすることで
シナリオを切り替え
4つのシナリオがあり、それぞれ複数のステップで構成されています。合計13ステップをカバーしています。
電源ボタン長押し → ロック画面表示 → 画面を上スワイプでロック解除 → ホーム画面表示まで、スマホの起動フローを学びます。
電話アプリのタップ → ダイヤルパッドで番号を入力 → 通話ボタンを押して発信、という一連の操作を学びます。
上スワイプでスクロール → 下スワイプで戻る → ピンチアウトで写真をズーム、という代表的なジェスチャー操作を習得します。
設定アプリを開く → サウンド項目をタップ → スライダーを左右にドラッグして音量を調整するまでの手順を学びます。
各シナリオは以下の情報構造で構成されています:
6種類のタッチジェスチャーをSVGアニメーションで視覚化します。各ステップで使用するジェスチャーはハイライト表示されます。
1本指で軽く1回触れる操作。アイコンやボタンを押す際の基本ジェスチャー。指を押してすぐ離す。
最多使用1〜2秒指を離さずに押し続ける操作。電源ボタンの起動やアイコンのメニュー表示などに使用。
電源操作指を画面の下から上に向かって素早く滑らせる操作。画面スクロールやロック解除に使用。
スクロール指を画面の上から下に向かって滑らせる操作。スクロールした箇所を元に戻す際に使用。
スクロール親指と人差し指を画面上に置き、広げるように動かす操作。写真や地図の拡大に使用。
ズーム指を画面に触れたまま左右に動かし続ける操作。音量スライダーなどのUIコントロールに使用。
コントロール完全なフロントエンドのみで動作するため、サーバー不要・インストール不要。HTMLファイルを開くだけで使えます。
// タップジェスチャーをSVGで描画する関数 function renderGesture(gesture, { x, y }) { const g = document.getElementById('gestureOverlay'); if (gesture === 'tap') { g.innerHTML = ` <!-- 指の円 --> <circle cx="${x}" cy="${y}" r="14" fill="rgba(255,255,255,.7)" class="anim-tap"/> <!-- リップルエフェクト --> <circle cx="${x}" cy="${y}" r="0" fill="none" stroke="rgba(0,229,255,.6)" stroke-width="2" class="anim-ripple"/> `; } } // シナリオデータ構造の例 const step = { title: '電話アプリをタップ', gesture: 'tap', gesturePos: { x: 55, y: 455 }, gestures: ['タップ'], sceneType: 'home', tips: ['アイコンは軽く1回触れるだけでOK'] };
すべてのシナリオ・ステップ・ジェスチャー情報はJavaScriptのオブジェクト配列として定義されています。 UIコードと完全に分離されており、シナリオの追加・編集が容易です。
各画面(ロック画面・ホーム・ダイヤル等)はSVGを返す関数として実装。
sceneContent要素に動的に挿入されます。
ジェスチャーごとにSVGアニメーション要素を動的生成。
CSSアニメーションとSVGの
animateTransformを組み合わせています。
前へ・次へ・リセット・自動再生(2.8秒間隔)のコントロールを備えます。
状態は
currentScenarioIdx / currentStepIdx
の2変数で管理されます。
ブラウザで開くだけですぐ使えます。操作はすべてマウスクリックのみで行えます。
svg-ui-simulator.html
をダブルクリックするか、Chromeなどのブラウザにドラッグ&ドロップして開きます。インターネット接続・インストールは不要です(フォント読み込みに接続が必要な場合があります)。
左側のサイドバーにある「電源を入れよう」「電話をかけよう」などのシナリオ一覧から、学びたい内容をクリックして選択します。現在のシナリオはハイライト表示されます。
中央下部の「▶ 再生」ボタンを押すと自動再生(2.8秒ごとに次のステップへ)、「▶」ボタンで手動で次のステップへ進みます。「◀」で前のステップに戻ることもできます。
画面右側には、そのステップで使うジェスチャーのガイド、対応するSVGコードのサンプル、操作のポイント(Tips)が表示されます。ハイライトされているカードが今のステップで必要なジェスチャーです。
「リセット」ボタンを押すと、選択中のシナリオの最初のステップに戻ります。何度でも繰り返し確認することができます。