前述の通り、Android/iOSでもHTML5を使ってアプリが作れますが、レスポンスの遅さや、機能が制限されることからそこまで普及はしていません。なぜ、Webアプリではパフォーマンスが出ないのでしょうか。
例えば、原因の1つとしてOSのアーキテクチャと、ブラウザ自体の性能が挙げられますが、「作ってみたら失敗」という自体を避けるには、その仕組みをざっくりでも理解したうえでアプリ企画や方向性を決める必要があります。
Webアプリを動作させるには大きく分けると3段階の処理があります。1つ目がHTML/CSSを解析、2つ目スクリプトの解析と実行、3つ目が画面への描画です。
独立したアプリとしてブラウザを有しているAndroid/iOSではデータの橋渡しも含め、処理が分散してしまいます。また、2013年7月現在はモバイルOSに搭載されるブラウザはPCと違うので、結果的に「PCだと速いのに」といった具合になってしまいます。
2012年、Windows 8と併せて登場したWindowsストアアプリでは、Webベースの開発環境が本格的に整備されました。ネイティブ開発言語としてC++やC#もカバーしていますが、HTML/CSS/JavaScriptでもアプリを開発できます。
Windows 8〜第三極モバイルOSの登場でHTML/CSSとJavaScriptで本格的にアプリを開発できるようになり、「OS個別の開発ではなく、土台となるコードを作って配置すれば動く」時代がやってきました。「スマートフォン」「スマートデバイス」「スマートhogehoge」といいながら、アプリを作る手法は全然「スマート」ではなく泥臭い開発をしていたものですが、「スマート開発」が実現できる時代になったのです。
Webベースの開発環境を正式にカバーしていないAndroid/iOSもPhoneGapなどのフレームワークを利用することで同じように対応ができるので、理論上は、「ほとんどのスマートデバイスで同様に動作するコード」を作ることが可能になったのです。
この連載を通じて紹介する「6OS対応」は各OSで異なっているアプリの構成を整え、共通して利用できる「ベースパッケージ」を作成することで全方位対応を容易にする手法です。
次回からは、このパッケージの作り方を具体的に紹介していきます。
Webアプリはこれまでのアプリ開発手法を根底から変革し、ゆくゆくはモバイル端末の在り方を変えることになると思います。
ただ、何でもできる「銀の弾丸」といったものではなく、当然ながら現状では課題はたくさんあると思います。
次回以降の連載では全方位対応するアプリを作りながら、出現する課題への対処方法と原因となる仕組みを解説しながら進めていきたいと思います。
最先端テクノロジーを使って「新しくて面白くて既成概念をデストロイしてくれるもの」を模索しています。
普段はWindowsストアアプリ開発コミュニティ「Windows 8 Developers」を主催したり、Firefox OSやTizenのコミュニティにもいろいろ顔を出させてもらっています。日々のお仕事では「HACKIST」という活動でクリエイティブとテクノロジーを掛け合わせて面白いことやってます
Copyright © ITmedia, Inc. All Rights Reserved.