タグ別アーカイブ: ブラウザ

ネイティブアプリとブラウザベースの違い

hml5

ネイティブはサクサク動くが、ブラウザは通信が必要。


GREEがブラウザベースのゲームに注力しますと発表して「このネイティブ全盛の時代に逆行してるんじゃないか」という指摘を受けたりしましたが、少なからず「ネイティブとブラウザって何が違うのよ?」という方がいると思うんですよね。ということで、解説してみたいと思います。

基本的にアプリはAppstoreかgoogleplayどちらかのマーケットに並んでいますね。で、このアプリをダウンロードして開くと、アプリの画面の中にWEBページが表示されることがありますよね?例えば、ツイッターを見ていて流れてきたリンクをタップするとWEBサイトに飛びます。これは、ブラウザでWEBページを見ているのです。こういうWEBページの表示が多いものをブラウザベースと呼びます。

一方WEBページをアプリが読み込むのではなくてアプリを開いた瞬間即座に表示される部分は、そもそもアプリに組み込まれているものです。ツイッターの例で言うと、タブボタン等はアプリ内に元々配置されているのものです。このようにブラウザでWEBを見なくとも、そもそもアプリ内に配置された要素が多いアプリは、ネイティブアプリと呼ぶのです。

ということで、

〇ブラウザベース⇒サーバーを通してWEBページを読み込んでいる領域が多い
〇ネイティブベース⇒アプリの中に組み込まれている領域が多い

ということになります。

たまに耳にする「ガワネイティブ」というのは、入れ物だけアプリだけどアプリを開いたらほとんどブラウザベースになっているアプリのことを指しています。アプリのメニューボタンに見えるものも、ブラウザベースになっているもの等です。(ただし、Appleはこのガワネイティブを推奨してないので審査で落とされる可能性があります。)


ネイティブにすることのデメリット


ネイティブ全盛と言われているのはなぜかと言うと、画面の表示やユーザーのアクションに対する反応がサクサクだからです。これはアプリ内に組み込まれているので、当然と言えば当然です。逆に、ブラウザベースのものはサーバーと通信が頻繁に発生するので、ネットサーフィンをする感覚で読み込みを待つ必要があります。
つまり、ゲームにおいてはネイティブで開発をした方が、ユーザー体験を管理しやすいのです。「パズル&ドラゴンズ」もネイティブ中心に作られており、あのなめらかなパズルの移動はネイティブだからこそ実現したと言えるでしょう。

じゃあ、ネイティブ万歳なんだから全部ネイティブで作ればいいのに?と思われそうですが、それはそれでデメリットがあります。一つ目は、ネイティブで作り込むということは高度な技術が必要だということです。特にAppstore用のアプリの開発言語Objective-Cを使いこなせるエンジニアさんは結構少ないです。
そして、完全にネイティブで作ってしまうと(フルネイティブと言います)、万が一内容に誤りがあってもappleの審査までには1週間程度かかるため、1週間は修正することが出来ないのです。これをブラウザベースで作っていれば、web側を書きかえれば良いので融通が利きます。

ということで、今のところゲームはソーシャルゲーム全盛から、徐々に動きを重視したパズルやRPGの要素が入ったものが流行りはじめているため、ネイティブ側優勢というところです。ただし、ブラウザベースにこだわって作っているところもあります。HTML5という言語は、インタラクティブなアクションが出来るということで、更新スピードを重視してブラウザベースにしているところも多いのです。サイバーエージェントの藤田社長も過去のブログでそう主張していました。(ので、サイバーエージェントのアプリはほとんどがブラウザベースですよね)

ちなみにFacebookの初期の頃はHTML5を駆使されていたらしいのですが、激重(げきおも)で、ザッカーバーグが「HTML5を使ったのは失敗だった」と認めたうえでネイティブで作り直したアプリをリリースしています。

ということで、この論争はなかなか識者の中でも意見が分かれているところなのです。