スタッフブログ

STAFF BLOG

アプリ業界気になるニュース

2017.03.17

WebAssemblyの登場で、ブラウザベースのアプリ開発が現実的になるかも?

サーバー開発担当の木下です。
Nintendo Switchが発売されましたね。Joy-Conに搭載されているジャイロ・加速度センサーはスマホにもありますが、これを上手に活用した1-2-Switchのおもしろさは任天堂ならではだな、と感じました。

さて今回は、WebAssemblyの話です。

WebブラウザーのWebAssembly正式対応が進む

3月7日にFirefox 52が、9日にChrome 57が正式リリースされました。Firefoxはプラグイン制度の廃止、Chromeはバックグラウンドタブの電力消費抑制などがありました。さらに、どちらも今回のリリースで「WebAssembly」がサポートされるようになり、ブラウザーで高度かつ高速な処理ができるようになりました。

WebAssemblyとは

これまでWebブラウザーで動く高度なアプリケーションといえば、Adobe FlashやSilverlight、Java Appletなどを使用するのが一般的でした。しかしどれも、ブラウザー側にプラグインを入れる必要があり、しかも動作が重いなどのデメリットがありました。
最近では、HTML5のAPIやJavaScriptフレームワークの充実のおかげで、プラグインなしで出来ることが増えてきました。たとえばYouTubeは以前Flashで動画を再生していましたが、現在はHTML5の標準仕様に沿って実装されています。さらにはAngularやReactなどの優れたフレームワークのおかげで、大規模なシステムをJavaScriptだけで構築できるようになりました。
ただ一方で、JavaScriptはその名の通りスクリプト言語であり、処理の度に必要なソースをインタープリタに通したりコンパイルしたりするため、ゲームなどに不可欠なリアルタイム性は保証されていません。
このような背景で、「どのブラウザーでもプラグインなしで、高速かつ高度な処理ができる環境」というニーズが出てきました。そしてこれを解決してくれるのがWebAssemblyです。

WebAssemblyは何がすごいのか

前述のように、JavaScriptはスクリプト言語であり、インタープリタによる処理を必要とします。それに対してWebAssemblyは、C/C++で記述し、コンパイルされたものをブラウザーに送ります。コンパイル済みなので、(ほぼ)マシン語であり、ブラウザーは受け取ったらすぐに実行することができます。
これまで、「コンパイル済みの実行ファイル」は実行環境に大きく依存していました。たとえばiOS向けに作成したアプリをAndroidやWindowsで動かすことはできませんし、CPUのアーキテクチャが変わると動かないなんていうこともあります。FlashはWindowsやmacOSで実行できましたが、iOSには結局対応せずでした。
しかしWebAssembly向けにコンパイルされた実行ファイルは、OS等の環境に依存せず、ただブラウザーが対応していれば動かすことができます。理論上はAndroidやiOSのモバイルブラウザーでも実装でき、実際開発が進められているようです。

どのような活用が期待できるのか

WebAssemblyでできそうなことを、いくつか考えてみました。

  • プラグインなしでコンテンツの著作権保護に対応する
  • HTML5には著作権保護の仕様がまだないため、huluやNetflix、DMM、GYAO!などは今でもSilverlightやFlashを使い続けています。致し方のないこととは思いますが、SliverlightはLinuxに対応していないため、Linux Mint使いの木下はDMMで悲しい思いをすることになります。WebAseemblyがこの代替になれば、環境に依存せず有料コンテンツなどを楽しめるようになるのでは。

  • ブラウザーゲームの幅が広がる
  • 既にUnityにも対応しているようですので、WebAssembly対応ゲームが増えてくるのではと期待しています。Webベースですので、PCで遊んでいたゲームの続きをスマホで、というSwitch的なことができるようになるかも。

  • Webベースのハイブリッドアプリが現実的になる
  • 個人的に大きく期待している部分です。HTML5/JavaScriptでアプリを作るというトレンドは、動作の重さなどから落ち着いてしまいましたが、WebAssemblyであればネイティブに近い動作速度を得られるため、アプリ制作が現実的になってくるのでは。

  • オンラインオフィススイートが快適になる
  • 仕事・プライベートで、Google SpreadsheetやSlides, Dropbox Paperなどを活用しています。動作速度はかなり改善されてきていますが、それでも若干重いなーと感じることがしばしばあります。ここがWebAssemblyになれば、かなり快適になるかも。

こんな感じでしょうか。Webの可能性をさらに広げてくれることは間違いないと思います。

サンプルなど

すでにいくつかのサンプルアプリが作られているようです。
http://webassembly.org/demo/
webassembly.orgにある公式のデモアプリです。シンプルなゲームではありますが、プラグインなしでヌルヌル動く様子はちょっと驚きです。

https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.html(直リンクです)
Mozillaが提供しているデモアプリです。100MB超なので読込に時間がかかりますが、実際の実行速度の速さはさすがです。

また弊社では、WebやUnityを使用するアプリの開発も行っております。お気軽にお問い合わせください!

BACK

お問合せ

イーディーエーに興味をお持ちいただいて
ありがとうございます!
スマホアプリに関するご相談、
お見積りや弊社へのご質問など、
お気軽にお問い合わせください。
担当者より折り返しご連絡させていただきます。

    お名前必須
    会社名
    メールアドレス必須
    電話番号必須
    お問合わせ種別必須
    お問合わせ内容必須

    アンケートにご協力ください。
    弊社サイトへはどのようにしてアクセスされましたか?

    個人情報のお取扱いに関する同意事項

    1.事業者の氏名又は名称

    株式会社イーディーエー

    2.個人情報保護管理者の氏名又は職名、所属及び連絡先

    個人情報保護管理者 小宮 保人
    Mail:[email protected]

    3.取得した個人情報の利用目的

    当フォームで取得した個人情報は、お問い合わせに関する回答のために利用し、目的外利用はいたしません。

    4.弊社が取得した個人情報の第三者への委託、提供について

    弊社は、ご本人に関する情報をご本人の同意なしに第三者に委託または提供することはありません。

    5.個人情報保護のための安全管理

    弊社は、ご本人の個人情報を保護するための規程類を定め、従業者全員に周知・徹底と啓発・教育を図るとともに、その遵守状況の監査を定期的に実施いたします。
    また、ご本人の個人情報を保護するために必要な安全管理措置の維持・向上に努めてまいります。

    6.個人情報の開示・訂正・利用停止等の手続

    ご本人が、弊社が保有するご自身の個人情報の、利用目的の通知、開示、内容の訂正、追加又は削除、利用の停止、消去及び第三者への提供の停止を求める場合には、下記に連絡を頂くことで、対応致します。

    株式会社イーディーエー 個人情報お問合せ窓口
    〒106-0032 東京都港区六本木7丁目14番23 ラウンドクロス六本木4F
    TEL:03-5422-7524 FAX:03-5422-7534
    Mail:[email protected]

    7.ご提供いただく情報の任意性

    個人情報のご提供は任意ですが、同意を頂けない場合には、第3項にあります利用目的が達成できない事をご了承いただくこととなります。

    8.弊社Webサイトの運営について

    弊社サイトでは、ご本人が弊社Webサイトを再度訪問されたときなどに、より便利に閲覧して頂けるよう「クッキー(Cookie)」という技術を使用することがあります。これは、ご本人のコンピュータが弊社Webサイトのどのページに訪れたかを記録しますが、ご本人が弊社Webサイトにおいてご自身の個人情報を入力されない限りご本人ご自身を特定、識別することはできません。
    クッキーの使用を希望されない場合は、ご本人のブラウザの設定を変更することにより、クッキーの使用を拒否することができます。その場合、一部または全部のサービスがご利用できなくなることがあります。