「ネイティブアプリかWebアプリか」の争いはいい加減やめにしよう
Mozillaの開発者であり、Webの支持者であるジェームズ・ロングは、モバイルWebアプリはネイティブアプリに敵うことはないと主張する。ロングの挑発的な物言いはわざとかもしれないが、彼の言ってる事も一理ある。
しかしながら同時に、こういった事はますます論争の種では無くなってもきている。
Forresterは「クライアント・サーバー時代はネイティブが制したが、Webに取って代わられた。歴史は繰り返す」と主張する。そうなのかもしれない。
もしフェイスブックのReactJSが何かの兆しなのだとしたら、それはネイティブ及びWebの未来はハイブリッドにあるということなのかもしれない。実際、そういったことは今現在でも見受けられる。
Webは「遅すぎる」
Webアプリの問題とは、ロングが言うようにDOM(ドキュメント・オブジェクトモデル。ドキュメントやWebページ/アプリをどの様にプログラムがアクセスするかを定義するAPI)が遅すぎるということだ。そしてこれが今後早くなることは無い。「いや、そんなことはない」という意見について、彼は以下のように言う。
根拠がまるで無い。DOMが十分速くなる兆しなどどこにも見られないし、もしそうなることがあってもモバイルにおいては到底常識的な期間内に起こり得ないことだ。速度の大幅な改善につながる様なもっともらしい説明も目にしたことが無い。これはまるで数百万のポリゴンを使ったモデルのレンダリングを速くする為にループの最適化を行う様な話だ。そうでは無い、本当にやらなければならないことはモデルに使うポリゴンを減らすことだ
これは基本的にReact Nativeが行っていることであり、DOMを使っていない。
最近のブログの投稿によると、たとえばFlipboardはこの方向をとった。Flipboardが主張するところによれば、その理由は「DOMを使って60fpsのスクロールリストビューは作れないから」との事だ。おそらく本当だろう。
あるいはジョン・グルーバーが指摘しているように、「FlipboardはDOMやCSSを完全に排除し、アプリのフレームワークをほぼ全てHTML5のcanvas要素を使って作りあげている」との事だ。これはDOM/CSSに対する手厳しい批判とも取れる。
政治的論争とモバイルWeb
Flipboardやその他が述べている政治的主張について取り沙汰することがここでの目的ではない。肝心なのは目的を達成することだ。そして問題解決においてハイブリッドアプローチはいつの場合でも素晴らしい方法だと分かる。
現実に我々が「ネイティブアプリ」について話をする時、ほとんどのアプリが少なくとも幾らかのHTMLを含んでいるという意味で「ハイブリッドアプリ」について話をしているということでもある。別にそうするべきだからという理由からではなく、出来るアプリ開発者はその様なやり方をとるからだ。
Instagramを例にあげてみよう
InstagramはタイムラインにWebビューを使っており、またそうすべき理由について多く語ってはいない。Instagramの開発者は政治的な論争ではなく、素晴らしいアプリを作るのが目的なのだ。そして彼らにとってハイブリッドアプローチは一般的にこれを達成する手段となっている。
フェイスブックのCEO、マーク・ザッカーバーグはかつて堂々と(間違えてはいたが)HTML5はフェイスブックにとって最大のミスだったと述べた。フェイスブックの参加となったInstagramがこの点について見ぬふりをしたのは明らかだ。
どんな時でもハイブリッド
これら全てにおいてキーになる事とは、アプリがどう作られるべきかということに固執するのを止め、ただ良いアプリを作ることに集中するということだ。
つまりハイブリッドアプリの美徳を讃えるニック・ラボイは、どの様に開発をするかに注力する代わりに、何を開発するのかに焦点を定めることで、正解に近づいたと言える。
自分が作ったアプリは全てのネイティブやハイブリッドアプリは、大体良いレビュー結果を得ている。Google Playを見てみると、アプリがどの様に作られたかについてコメントしている物は一つもないことがわかるだろう。ハイブリッドアプリはネイティブに比べてパフォーマンスやデザインに劣るという考えの元、嫌がらせみたいなレビューを投稿する多くの人たちがいることを考えると、これは重要なポイントだ。彼らの主張は単純に間違えている。開発者やデザインが良くないのであれば、ネイティブであろうがハイブリッドであろうが関係なくそのアプリは問題を抱えることになる
彼がWebテクノロジは習得が容易であり、ハイブリッドアプリは時間的にもコスト的にも効率が良く(ここで大事なのは開発にかかっている純粋なコストという点だ)、ハイパフォーマンスなハイブリッドアプリを提供することは可能であるといっているのは正しい事だ。
ユーザーだってこのことを気にはしない。
アプリ開発者にとって重要なことは、最高のアプリを最短の時間で仕上げることだ。そしてハイブリッドはほとんど全ての場合でこれに適している。
今日においてこのことは、アプリのネイティブでない部分はWebビューを使い倒すことを意味する。しかしReactJSの場合、意味合いが少し変わってくる。
VisionMobileが最近のレポートで述べた事によると
フェイスブックが最近公表したReact Nativeは、インターフェイスがほとんどJavaScriptで書かれたWebアプリのような物でもネイティブのパフォーマンスが達成できるという未来図を垣間見ることが出来る物だ
React Nativeが一般的になれば、アプリの機能の全てをWebで実現できるようになるかもしれない。良いことだ。
しかしそのようなアプリが出来たとしても、それはやはりハイブリッドアプリであることは変わらないのだ。これはモダンなアプリ(たとえそれをネイティブと呼ぼうとも)の作られ方だ。React NativeはモバイルWebでのアプリの作り方を変えるかもしれないが、それでもアプリがほぼハイブリッドであるということ自体は変わらない。
この事は主に開発者のマーケティングの問題だが、それは別に構わない。
トップ画像提供:Shutterstock
- 関連記事:
- YouTubeがFlashを排除し、HTML5の最後の障害を取り除いた
- ウェブは崩壊している、しかしアプリに責任はない
- グーグルはモバイルWebにどんな備えをしているのか?
- HTML5がついにW3Cの勧告に
- HTML5に最適なのはグーグルではなく、アップルだ
※本記事はReadWrite Japanからの転載です。転載元はこちらをご覧ください。