2017/01/25 に iOS 10.3 beta と Safari 10.1 がリリースされました。
https://twitter.com/webkit/status/823967381026263040
従来の Safari のリリースサイクルは年単位で、Chrome のスピード感に慣れた身としては大変辛い物がありました。
- Safari の進化は1年に一度のみ、OS のメジャーバージョンアップのタイミングで新機能が追加される
- タイミングが悪いと中途半端な状態でリリースされてしまう(iOS 9 の ES6 のように) 😱
- タイミングを逃すと何年も待たなければならない 😱
今後は1年に1度ではなく、定期的に新機能追加版がリリースされる([要出典]
)ようです。
今回リリースされた Safari 10.1 と iOS 10.3 beta の Safari では、これまで無効にされていた GamePad API が利用可能になっています。
GamePad API は USB や Bluetooth で接続されたゲームパッドをブラウザから認識するための低レベル API です。
- navigator.getGamepads()
- window.addEventListener("gamepadconnected")
- window.addEventListener("gamepaddisconnected")
世の中には多種多様なゲームパッドが存在しますが GamePad API はゲームパッド毎の差分を吸収してくれません。 実際に利用する場合はそれらの違いを吸収するライブラリを用意する必要があります。
ゲームパッドとGamePad API の橋渡しを行い、差異を吸収するライブラリが GamePad.js です。
GamePad.js は DualShock4, Xbox360 などの他に Amazon 等で販売されているファミコンタイプのゲームパッドもサポートしています(Device List)。
WebModule ユーザは npm に以下の記述を追加し npm run sync
すると利用可能になります。
"dependencies": {
"uupaa.gamepad.js": "",
},
GamePad.js は common.js スタイルでも利用可能です。