• Top
  • > Blog
  • > ハイブリッドアプリは使えない?
2012/04/18 iOS関連, スマートデバイス x 企業システム

ハイブリッドアプリは使えない?

今回は私ではなく、私の友人の話から。彼は最近ハイブリッドアプリの作成に関わった方であり、その経験談とハイブリッドアプリに対する考え方をまとめてみたいと思います。

(※ハイブリッドアプリとは、ネイティブアプリの機能の一部をWebのHTMLページを利用して実装したアプリです。iOSの場合UIWebViewを使って実装します。)

以下、彼のコメント:

『僕はウェブアプリはさておき、ハイブリッドアプリは本当にダメだと思います。最近HTML5などが流行っていて、ハイブリッドアプリやウェブアプリが増えるだろうと言う人が多いですが、個人的には疑問です。

例えば、今回開発したSNSアプリもそうですが、最初は結構多くの機能をWebViewで作ったんです。ログインや会員登録から始めて、告知や友達推薦等も全部HTMLで作りました。アプリがリリースされてから、利用者から色々と問題を指摘されたり、バグが見つかったりして対応をしていますが、ほとんどの問題が、WebViewを使ったハイブリッドな実装の部分から起きていることがわかりました。特にパフォーマンスが遅いといわれる問題はWebViewを使う部分で多く発生しました。そしてアプリはWebViewの多用によってメモリーを沢山食ってしまったりもして困りましたね。

今まで2回のバージョンアップを行いましたが、今は多くのハイブリッドの機能がネイティブに変わりましたし、この作業は今でも続いています。結局、バージョンアップ作業のほとんどはハイブリッドの部分をネイティブに変えることだったと思います。

これからスマートフォンの性能が劇的に良くなるとこの問題は回避できるのではないかというという意見がありますが、そうでもないと思います。性能が良くなるほどネイティブコードを利用するUIの品質は向上しますし、それに慣れているユーザーの要求を満たすためには、ハイブリッドでは無理でしょう。ハイブリッドアプリではいくら頑張ってもネイティブアプリのパフォーマンスには追いつきませんからね。

何か作って、それがただ動けばいいのであればハイブリッドアプリでもいいだろうと思います。しかし、他のサービスと競争するためにはハイブリッドアプリでは無理なんです。勝つためにはネイティブアプリでないといけません!』

以下、私の意見

上記はあくまでも友人の個人的意見ですし、一つの事例として参考レベルで考えいただければと思います。

ウェブアプリやハイブリッドアプリは仕様変更が頻繁で、再配布が簡単ではない環境、あるいは常に最新の情報が必要な場合には良い方式です。一回配布したネイティブアプリに対して変更を加え、それを多数のユーザーに対して同時に適用すことは困難だからです。

一方、ウェブアプリやハイブリッドアプリはオンラインではないと使えない(あるいは制限的に使える)、その都度ネットワーク通信が発生するのでパフォーマンスが落ちるなどのデメリットもあります。

私が最近目にしたある案件では、アプリにおける最も重要な要件はユーザービリティ(使用性)だといいながらも、最終的にはウェブアプリで実装することに決まりました。理由は「HTML5が今後流行りそうだし、ウェブアプリとして作っておけば複数のプラットフォームに対応できそうだからだ」と聞きました。(このクロスプラットフォーム対応と言う概念の落とし穴については近日また書きます。)

しかし、残念ながら、私は数年待っても彼らが期待するものは作れないのではないか、と思っているのです。

このアプリは、非常に特殊な使用性に関する要求があり、その要求はウェブアプリには全く向いていないものでした。しかし、彼らは単に「今後流行りそうだから」と「クロスプラットフォーム対応できれば安くなりそうだから」という理由で技術的に向いていない方式を選定してしまったのです。そして根本的に方向性を間違えた技術的判断は時間が経つほど大きな痛みと費用を生み出します。

他の案件では、お客さんからの依頼はネイティブアプリの作成でしたが、弊社の提案によってハイブリッドアプリに変更したものがあります。対象システムは既存の業務用ウェブアプリケーションをリプレースするもので、業務の特徴から年に3、4回仕様が変更されるとのことでした。それを数百人のユーザーが使うことになりますが、ネイティブアプリにすると運用が大変なことが容易に想像がつきます。毎回の更新の時にアプリを再配布しないといけませんし、サーバー側もタイミングを合わせてバージョンアップするか、下位バージョンとの互換性を保証する必要があります。しかし、これをウェブブアプリにすると毎回ログインしないといけない、プッシュメッセージの送信が出来ない等、いくつかの制約がついてきます。

議論した結果、そのアプリはハイブリッドアプリとして作成し、ウェブアプリとネイティブアプリの長所だけを組み合わせたものに設計しました。しかもウェブの部分は既存ウェブアプリケーションの画面を一部修正するだけで再利用しましたので、コストもあまりかかりませんでした。

技術に対しては善し悪しの判断よりも向きと不向きの判断が大切です。プロジェクトの技術的な方向性を決める人(主にアーキテクト)としては、各実装方式のメリットとデメリット、そして対象プロジェクトの特徴をよく理解して最適な実装方式を選択する必要があります。

Roy S. Kim / 金 成哲

記事一覧へ