OLIENT TECH 実践教育プログラム 2026 Spring
WEEK 4
スマホ内蔵のカメラやセンサーを活用し、現実世界で役に立つアプリにする
OLIENT TECH 実践教育プログラム 2026 Spring
スマホ内蔵のカメラやセンサーを活用し、現実世界で役に立つアプリにする
ここまでのWeekでは、AIを使ったコード生成やデータベースの活用を学んできました。しかし、アプリの本質は「現実世界の問題を解決すること」にあります。画面の中だけで完結するアプリよりも、カメラやセンサーを通じて現実世界と繋がるアプリの方が、ユーザーにとって本当に価値のあるものになります。
今週は、スマートフォンに内蔵されたセンサー群をWeb APIから活用する方法を学び、さらにPWA技術でアプリとしてインストール可能にするところまでを扱います。
現実世界との接点がアプリの価値を高める
QRコードでチケットを管理する、ジャイロセンサーでコンパスを作る、バイブで触覚フィードバックを返す――ブラウザだけでこれらが実現できる時代です。センサーを活用して、アプリの可能性を広げましょう。
ブラウザで出来ることは意外と多く、9軸センサ、バイブレーション、Bluetooth、USB制御など、従来ネイティブアプリが必要だった機能もブラウザから利用可能になっています。これらは Web API として標準化されており、JavaScriptから呼び出すことができます。
動作環境について
Android x Chrome x マナーモードOFFの組み合わせが最も確実に動作します。iPhoneではセキュリティ上の制限により、一部のWeb APIが動作しない場合があります。なお、多くのセンサーAPIはHTTPS環境でのみ利用可能です(localhost は例外)。
QRコード を使えば、チケット管理、荷物追跡、イベント受付など、現実世界の情報をアプリに取り込む多くのユースケースに対応できます。ブラウザからカメラにアクセスするには MediaDevices API を使用し、読み取りには jsQR などのライブラリを組み合わせます。
ヒント
QRコードがあれば、チケット、荷物追跡、来場者管理など可能性は大きく広がります。Week 3で学んだデータベースと組み合わせることで、より実用的なアプリを構築できます。
ジャイロセンサー を使えば、スマートフォンの傾きや向きを検知し、コンパスや水平器といった実用的な機能を実現できます。ブラウザでは DeviceOrientation API を通じて端末の姿勢情報(alpha / beta / gamma)を取得できます。
Publish してスマホで開きます。iPhoneでの注意点
iPhoneでは DeviceOrientationEvent.requestPermission() によるユーザー許可が必要です。また座標系の違いにより、コンパスの回転方向が逆転することがあります。必要に応じてv0に修正を依頼してください。
Vibration API を使えば、視覚だけでなく触覚によるフィードバックをユーザーに提供できます。ゲームやアラートなど、ユーザー体験を豊かにする手段として有効です。
Publish してスマホのブラウザで開きます。バイブが動作しない場合
マナーモードや端末設定でバイブレーションを無効にしている場合は発動しません。テスト時はマナーモードをOFFにしてください。また、iOSのSafariはVibration APIに対応していないため、iPhoneではバイブ機能は利用できません。
PWA(Progressive Web Application)とは、「インストール」できるWebアプリのことです。軽量なブラウザ上にWebアプリを載せることで、単体アプリとしての動作を可能にします。一度の開発でPC・スマホ・Webの全てに対応できる注目の技術です。
manifest.json と Service Worker を追加するだけ実際にPWA対応のアプリを作成し、インストールできることを確認しましょう。
Publish して公開URLを取得します。インストールがうまくいかない場合
スマホはインストール判定条件がPCより厳しいため、先にPCでテストすることを推奨します。Chromeでは manifest.json に name、icons(192px・512px)、start_url、display が正しく設定されていること、さらにサイトがHTTPSで配信されていることが必須条件です。動かない場合はDevToolsの Application タブでManifestの警告を確認するか、ChatGPTに分析してもらいましょう。
オフライン動作について
PWAではService Workerのキャッシュ戦略を実装することで、オフライン環境でもアプリを動作させることが可能です。Chromeではインストール時にService Workerの登録が求められるため、v0で生成したコードに含まれているか確認しましょう。まずはインストール可能にすることを優先し、オフライン対応は段階的に進めてください。
注意
課題告知メッセージにリアクション必須です。また、不完全であってもまず提出することを優先してください。完成度は後から高められます。
今週の内容をさらに深めたい方は、以下のリソースを活用してください。
ブラウザが提供するWeb APIは多岐にわたります。MDN Web API リファレンス で一覧を確認し、気になった機能をv0に投げて実際にアプリを作らせてみましょう。試行錯誤が最良の学習方法です。
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サイトの構造と要素を定義するマークアップ言語。 |
| フィードバック | ユーザーの入力や操作に対するシステムからの反応。視覚・聴覚・触覚など多様な手段がある。 |