W4 センサーとスマホアプリ OLIENT TECH 2026 Spring

OLIENT TECH 実践教育プログラム 2026 Spring

WEEK 4

センサーとスマホアプリ

スマホ内蔵のカメラやセンサーを活用し、現実世界で役に立つアプリにする

講師: 上津原 和弘 2026 Spring

OLIENT TECH 実践教育プログラム 2026 Spring

センサーとスマホアプリ

スマホ内蔵のカメラやセンサーを活用し、現実世界で役に立つアプリにする

Week 4 | 講師: 上津原 和弘

1. アプリは現実世界の問題を解決する手段

ここまでのWeekでは、AIを使ったコード生成やデータベースの活用を学んできました。しかし、アプリの本質は「現実世界の問題を解決すること」にあります。画面の中だけで完結するアプリよりも、カメラやセンサーを通じて現実世界と繋がるアプリの方が、ユーザーにとって本当に価値のあるものになります。

今週は、スマートフォンに内蔵されたセンサー群をWeb APIから活用する方法を学び、さらにPWA技術でアプリとしてインストール可能にするところまでを扱います。

現実世界との接点がアプリの価値を高める

QRコードでチケットを管理する、ジャイロセンサーでコンパスを作る、バイブで触覚フィードバックを返す――ブラウザだけでこれらが実現できる時代です。センサーを活用して、アプリの可能性を広げましょう。

2. センサー入門

Web APIs: アプリの手足

ブラウザで出来ることは意外と多く、9軸センサ、バイブレーション、Bluetooth、USB制御など、従来ネイティブアプリが必要だった機能もブラウザから利用可能になっています。これらは Web API として標準化されており、JavaScriptから呼び出すことができます。

動作環境について

Android x Chrome x マナーモードOFFの組み合わせが最も確実に動作します。iPhoneではセキュリティ上の制限により、一部のWeb APIが動作しない場合があります。なお、多くのセンサーAPIはHTTPS環境でのみ利用可能です(localhost は例外)。

QRコードを活用しよう

QRコード を使えば、チケット管理、荷物追跡、イベント受付など、現実世界の情報をアプリに取り込む多くのユースケースに対応できます。ブラウザからカメラにアクセスするには MediaDevices API を使用し、読み取りには jsQR などのライブラリを組み合わせます。

  1. プロンプトを入力する: v0で「QRコードを使ったチケットアプリを作って」と入力します。
  2. 生成結果を確認する: イベント作成とQRコード表示ができるアプリが生成されます。
  3. 運営スキャン機能を追加する: 必要に応じて「運営がスキャンするページも作って」と追加指示を出します。

ヒント

QRコードがあれば、チケット、荷物追跡、来場者管理など可能性は大きく広がります。Week 3で学んだデータベースと組み合わせることで、より実用的なアプリを構築できます。

ジャイロセンサーを活用しよう

ジャイロセンサー を使えば、スマートフォンの傾きや向きを検知し、コンパスや水平器といった実用的な機能を実現できます。ブラウザでは DeviceOrientation API を通じて端末の姿勢情報(alpha / beta / gamma)を取得できます。

  1. プロンプトを入力する: v0で「ジャイロセンサーを使ったコンパスアプリを作って」と入力します。
  2. スマホで開く: PCでもコンパスは表示されますが、センサーが搭載されていないため、Publish してスマホで開きます。
  3. 動作を確認する: ボタンを押すとスマホの向きに応じてコンパスが動きます。

活用のポイント

  • GPSマップAPI との併用で、ナビゲーションアプリなどに拡張可能
  • AR(拡張現実)的な体験にも応用できる

iPhoneでの注意点

iPhoneでは DeviceOrientationEvent.requestPermission() によるユーザー許可が必要です。また座標系の違いにより、コンパスの回転方向が逆転することがあります。必要に応じてv0に修正を依頼してください。

バイブを活用しよう

Vibration API を使えば、視覚だけでなく触覚によるフィードバックをユーザーに提供できます。ゲームやアラートなど、ユーザー体験を豊かにする手段として有効です。

  1. プロンプトを入力する: v0で「バイブを使って、触覚で楽しめるアプリを作って」と入力します。
  2. スマホで開く: Publish してスマホのブラウザで開きます。
  3. 動作を確認する: ボタンをタップするとバイブレーションが発動します。

バイブが動作しない場合

マナーモードや端末設定でバイブレーションを無効にしている場合は発動しません。テスト時はマナーモードをOFFにしてください。また、iOSのSafariはVibration APIに対応していないため、iPhoneではバイブ機能は利用できません。

3. スマホアプリ化

アプリだと思ったらブラウザ!?

PWA(Progressive Web Application)とは、「インストール」できるWebアプリのことです。軽量なブラウザ上にWebアプリを載せることで、単体アプリとしての動作を可能にします。一度の開発でPC・スマホ・Webの全てに対応できる注目の技術です。

PWAのメリット

  • アプリストアを経由せずインストール可能
  • ホーム画面にアイコンが追加される
  • PC・スマホ・Webを一度の開発でカバー
  • 追加開発でオフライン動作にも対応可能

対応方法

  • manifest.jsonService Worker を追加するだけ
  • HTMLだけのシンプルなサイトでも適用可能
  • 特別なフレームワークは不要(v0が自動生成してくれる)

インストールできるアプリを作ろう

実際にPWA対応のアプリを作成し、インストールできることを確認しましょう。

  1. プロンプトを入力する: v0で「PWAに対応したスマホアプリを作って」と入力します。
  2. 公開URLを取得する: Publish して公開URLを取得します。
  3. インストールボタンを確認する: PCならブラウザの検索バー横にインストールボタンが表示されます。スマホではポップアップが表示されます。
  4. インストールして実行する: インストール後、アプリ一覧に表示され単体で実行できるようになります。

インストールがうまくいかない場合

スマホはインストール判定条件がPCより厳しいため、先にPCでテストすることを推奨します。Chromeでは manifest.jsonnameicons(192px・512px)、start_urldisplay が正しく設定されていること、さらにサイトがHTTPSで配信されていることが必須条件です。動かない場合はDevToolsの Application タブでManifestの警告を確認するか、ChatGPTに分析してもらいましょう。

オフライン動作について

PWAではService Workerのキャッシュ戦略を実装することで、オフライン環境でもアプリを動作させることが可能です。Chromeではインストール時にService Workerの登録が求められるため、v0で生成したコードに含まれているか確認しましょう。まずはインストール可能にすることを優先し、オフライン対応は段階的に進めてください。

今週の課題

  • 課題1: インストールできるようにしよう
    制作アプリをPWA対応し、インストールできることを確認した後、公開URLを提出してください。
  • 課題2: 現実世界で役に立つアプリを作ろう
    センサーやカメラを活用して現実世界の問題を解決する機能を作り、公開URLを提出してください。

提出方法

  • 課題提出チャンネルにてURLを共有してください(後から更新可能)。

注意

課題告知メッセージにリアクション必須です。また、不完全であってもまず提出することを優先してください。完成度は後から高められます。

Appendix: もっと知りたい人へ

学習リソース

今週の内容をさらに深めたい方は、以下のリソースを活用してください。

Web APIs

ブラウザが提供するWeb APIは多岐にわたります。MDN Web API リファレンス で一覧を確認し、気になった機能をv0に投げて実際にアプリを作らせてみましょう。試行錯誤が最良の学習方法です。

PWA & モダンWeb開発

web.dev にはPWAの構築ガイドやパフォーマンス最適化のベストプラクティスが掲載されています。センサーAPIやPWAの実装例も含む自作の教材も併せて活用してください。

用語解説

用語 解説
ジャイロセンサー 相対的な傾きを取得するセンサー。安定した値を返す。9軸センサーと組み合わせて補正に使用。
9軸センサー(加速度+地磁気) 加速度3軸・ジャイロ3軸・地磁気3軸を統合し、絶対的な傾きを導出する。単体では不安定。
Bluetooth 近距離無線通信技術。Web Bluetooth APIを通じてブラウザから周辺デバイスと通信可能。
QRコード 二次元コード。多少の汚れや破損があっても読み取れる高い堅牢性が特徴。
バイブ スマートフォンに内蔵された小型モーターによる振動機能。Vibration APIで制御可能。
PWA Progressive Web Applicationの略。Webアプリをインストール可能なアプリとして動作させる技術。
manifest.json PWAのアプリ名、アイコン、テーマカラーなどの基本情報を定義する設定ファイル。
HTML HyperText Markup Languageの略。Webサイトの構造と要素を定義するマークアップ言語。
フィードバック ユーザーの入力や操作に対するシステムからの反応。視覚・聴覚・触覚など多様な手段がある。