日本は世界でも珍しくiOSとAndroidが同じくらいのシェアになっています。また、企業の現場ではiPadが多数使われています。そのため、iOSのSafariにおけるAPI実装によって、本腰を入れてそのAPIを使った機能開発ができるかどうかが決まってきます。
iOS11がリリースされたことで、多数のAPIが追加されました。今回はそれらについて紹介します。
WebRTC
P2Pの通信技術であるWebRTCがiOS11にも実装されました。元々Androidにはありましたので、これでWebブラウザベースの動画チャットなどの実装が現実的になります。
H.264のハードウェアアクセラレーションなので動画の動きはとてもスムーズです。
Media Capture API
Webカメラやマイクへのアクセスができるようになりました。Videoタグの中に描けますので、Canvasの中に取り出したりするのも難しくないでしょう。その画像を分析すれば、QRコードリーダーなども実装できるはずです。
これに伴うものか分かりませんが、iPhoneにおいても動画が埋め込み表示のままできるようになっています。これにより、動画とテキストを合わせたコンテンツなども表現しやすくなっています。
Media Capture and Streams API (Media Streams) – Web API インターフェイス | MDN
WebAssembly
すべての実装ができている訳ではなさそうですが、WebAssemblyも実装されています。Rustなどで書いたコードをWebAssemblyに変換し、Webブラウザ上で実行できるようになっています。
今後、Webアプリケーションのニーズが伸びていく中で大事な機能になっていくことでしょう。
WebCrypto API
MD5、SHA1、RSAなどの暗号化技術を提供するAPIです。Promiseオブジェクトになっており、非同期で結果が返ってきます。これまでも暗号化ライブラリは幾つかありましたが、標準で提供される点が大きいと言えるでしょう。
Web Crypto API – Web API インターフェイス | MDN
ドラッグ&ドロップAPI
筆者の環境では確認できなかったのですが、iOS11 Safariにおいてondragstartなどのイベントが使えるようになっているようです。本格的なWebアプリケーションを作っていく上で必要な機能なので、使いどころも多そうです。
WebKit DOM Programming Topics: Dragging and Dropping
もちろんiOS10以下で使っている環境もあるので、すべてのAPIがそのまますぐに使える訳ではありません。また、WebAssemblyのように実装がまだ完了していないものもあります。しかし、今後のWebアプリケーション開発時において必要となるAPIが実装されているのは間違いないでしょう。