これからのWebブラウザはどうなるのか
今月初め、AppleからVision Proが発売された
日常的なインターネットとのインターフェースの1つだったディスプレイが
3D空間に置き換わる未来を見せてくれたな、というのが個人的な感想
そこで、インターネットにおける重要な機能であるWebブラウザが今後どうなるのだろうか
ひいてはWebエンジニアはどうなるのだろうか、ということが気になったため調べ始める
Appleの Vision Pro の空間コンピューティングには3つの要素があるらしい
- ウィンドウ
- 基本的に2Dで表示される。3Dコンテンツを追加して奥行きを出すこともできるらしい。
- ボリューム
- 3Dコンテンツを表示できるシーン。
- スペース
- ユーザーをコンテンツ内に没入させられる、フルイマーシブなシーン。
今のVision Pro ではブラウザであるSafari はウィンドウで表示されている。
以降、Vision Pro 以外でもわかりやすさのためこの3つの要素の言葉を共通して使用する。
認識しているWebブラウジング/アプリケーションとアプリケーション違い
決定的に違うのは、リクエストベースでコードを取得するのか、バイナリコードをストレージに持っておいてしまうのか、だと思っている。
Webブラウジング/アプリケーション
- Webブラウザのアプリケーションを起動し、そのアプリケーションがhttp通信して必要なHTML や JS や API からデータを取得したりする。
- これらはクローリングされて検索エンジンにインデックスされる。
- VRデバイスではWebブラウザのアプリケーションによるので現時点だとウィンドウで表示されることになる。
アプリケーション
- ストアに並んだアプリケーションをインストールすることでデバイスにバイナリファイルが保存される。
- 立ち上げると必要に応じてhttp通信でAPI からデータを取得したり、Webページを表示したりする。
- VRデバイスでボリュームやスペースとして表示されるのは全てこちらの認識。一部ウィンドウで表示されるものももちろんある。
Webブラウザ/アプリケーションとアプリケーションの決定的な違いを踏まえると
今後のブラウジングは以下の2パターンのいずれか or いずれもになると考えられそう。
1. 現状と同じくウィンドウで行われるパターン
この場合、特定のリンクをクリック(タップ?)するとバイナリコードがインストールされる。
インストールされたものがボリュームまたはスペースに表示される、という体験になりそう。
2. ボリュームまたはスペースで行われるパターン
今のブラウザのレンダリングエンジンとJavascript エンジンがパワーアップした場合
ボリュームまたはスペースでブラウジングを行うこともありえそう。
膨大にあるインターネットの情報を扱うためには httpを利用しないといけず、
形式は基本的にHTMLとJavascriptで構成されているため
ボリュームやスペースにレンダリングできないのでは、とも思ったけれど
新しいviewport が登場したり Javascriptエンジンとレンダリングエンジンで
空間的的に描画できるようになりそうな気はする
ここからはよくわかっていないので、以下をやってみようと思う
- 実際に Three.js を触ってみる
- canvas x Three.js の場合Javascript エンジンとレンダリングエンジンがどのように機能するのか調べる
参考
- Web ブラウザの仕組みで参考になった記事
- https://qiita.com/umashiba/items/8cb47825624c5cb043d6
- ブラウザ、レンダリングエンジン、Javascriptエンジンで構成されている
- Webブラウザのレンダリングエンジンの仕組みで参考になった記事
- https://zenn.dev/oreo2990/articles/280d39a45c203e
- Bytes -> Charactors -> Tokens -> Nodes -> DOM -> CSSOM Tree -> JS -> Render Tree -> Layout -> Painting