エキスパートがぶっちゃけトークで語る「ハイブリッドアプリ開発、ホントのトコロ」

  • 6
  • 3
  • 114

HTML5を活用したハイブリッドアプリ開発について、Web業界を代表するエキスパート陣が様々な観点からレポートをお届けした「ハイブリットアプリ開発最前線」特集。

最後のレポートは「ハイブリッドアプリ開発、ホントのトコロ」と題し、第48回HTML5とか勉強会「ハイブリッドアプリ開発最新動向」の懇親会で行われたぶっちゃけトーク対談を再現レポートします。


▲登壇者(左から):株式会社ニューフォリア 畠田喜丈さん、アシアル株式会社 久保田光則さん、AngularJS Japan User Group管理人 金井健一さん、Google Developer Expert(Chrome)吉川徹さん
モデレーター:HTML5 Experts.jp編集長 白石俊平

ハイブリッドアプリ開発にしてよかったことは?


白石:ハイブリッドアプリ開発が注目され出してもう数年が経つんですが、まだくすぶってる感があると思うんです。今日は本音でいろいろ聞けたらと。まず、ハイブリッドアプリ開発にしてよかったと思うことを聞かせてください。

久保田:僕はハイ・フィデリティ(忠実度の高い)なプロトタイプをさくっと作れることですね。アプリの機能は動かないけど、アプリのユーザーインターフェイスやインタラクションがわかる。動きやさわった感じが確かめられるし、アプリケーションの見た目の“ガワ”を作るのが断然早くなります。

これがいいアプリなのか判断に迷うフェーズでも、実際のUIの“ガワ”をがっちり作ることで、高い確度で確かめることができる。それに、クロスデバイス,クロスプラットフォームでがしがし動くので、アプリのUIを確かめるのに役立っています。サービスの受託でやってたときに、お客様にもそんなに早くできるのかって驚かれたこともありますね。

アシアル株式会社 久保田 光則さん

アシアル株式会社 久保田 光則さん


白石:ちなみにそのプロトタイプって、PCのWebブラウザでも動くんですか?

久保田:動きますよ。開発スタイルにもよりますが、モバイルでいちいち確認するより、Webブラウザでも確認できたほうが早かったりします。お客さんにもすぐ触ってもらえるし、開発の後半で「ここのUIがいけてない」と指摘されるのを最初からつぶせるので便利です。

畠田:そんな高品質なプロトタイプを無料で作っちゃうと、受注先のシステムインテグレーション企業とかに、「こんなに簡単にできるんなら安くして」って言われたりすることがありそう。なんかすごく頑張って作ったのに、損した気分にならない?

久保田:もちろんハイブリッドアプリの利便性を理解してくれる、リテラシーが高いお客さんであることは条件になるかなと思います。

畠田:やっぱり(笑)。

畠田:私がハイブリッド開発で良いと思える点は、デザイナーとエンジニアの分担作業がしやすいところですね。モバイルアプリの案件って、だいたいUI上の要件は似たようなものが多いし、そういう繰り返し作業ってエンジニアにはつらいんですよね。同じことをずっとやり続けるのって技術力の向上も期待できないし。

その点、ハイブリッドアプリはUIのデザインはコーディングも含めてデザイナーにお任せしやすいので、エンジニアはロジックに集中できる。早い・安いだけではない、エンジニアのモチベーションの根っこの部分に寄与することも多いような気がします。

白石:HTML5を書けるデザイナーさんは増えてますもんね。

金井:僕はある程度動くものがサクッと作れるので、早い段階からアプリのイメージをお客さんと共有できることですね。コストをかけずにハイブリッドアプリでまずリリースして、人気が出たらネイティブにしてもいいし、ダメならそのままで、みたいな選択肢がある。はじめからAndroidとiPhone用のネイティブアプリを両方開発するより、リスクが少ない。


白石:ところで、ここまでクロスプラットフォームでの移植性の話があまり出てきていませんね。ハイブリッドの利点といえばそこだと思っていたので、意外。

畠田:ああ、移植性については、まずありきのつもりで話してました。

久保田:そうですね。ちなみに私はAndroid版は動作が遅いので、先に作るようにしています。前にiOSから作ってAndroidに移植したら遅くて大変な目に合ったことがあって…。

白石:ちなみに最近は、Androidは2.3以上をターゲットにして開発しているんですか?まだ2.2もスコープに入ってるのかな。

畠田:2.2が要求仕様書に入ってるところはまだ多いですね。ただ「端末買い換えが2年だからそこは切り捨てましょう」って、そこは削ってもらうように説得しようと試みますけどね(笑)。

吉川:私は一エンジニアとしての視点から、ハイブリッドアプリでよかった点をお話すると、やはりWebエンジニアがJavaやObjective-Cが書けなくても、AndoroidやiOSアプリの仕事が受けられることですね。最近はWebのコードで書いて、Cordovaでコンパイルすればアプリが作れる。仕事の幅が広がって楽しいです。

──ここで会場から質問が寄せられた

Q.ハイブリッドアプリというと移植性の話もあるけど、クックパッドの事例が成功として挙げられます。ユーザーを絞り込んだABテストが容易にできるだけではなく、デブロイの早さなどを考慮してハイブリッドアプリにしていると聞いたことがあるのですが、そのほかにハイブリッドアプリにしかできないことってありますか?

畠田:ハイブリッドアプリって遅いんじゃないか?というハイブリッドアプリに否定的な声に対抗できるので、クックパッドさんの成功事例は我々にとってありがたいですね。

詳しくは存じ上げないのですが、クックパッドさんにとっては、新機能のデプロイまでの時間を短くするための、現時点での最善策がハイブリッドアプリなのではないでしょうか。

株式会社ニューフォリア 畠田喜丈さん

株式会社ニューフォリア 畠田喜丈さん


久保田:機能面やUXの観点からいうと、なんだかんだ言っても“ネイティブが最高!”だと思ってます。だって、FacebookやTwitterはプラットフォームに合わせて書き換えてるじゃないですか。結局、それが一番いい体験だからなんですよね。ハイブリッドの利点は、機能やUXとは別の側面から語られるべきかな、と思います。

──さらに会場からの質問が飛ぶ

Q.最近、ハイブリッドアプリを開発するときに、(PhoneGap)プラグインを使わないでできることが少なくて苦戦しています。時には、ネイティブコードでプラグインを書く必要が生じたりとか。これって、Web技術で全部書くという理想から言うと残念なのですが、どうお考えですか?

久保田:さっき“ネイティブが最高!”と言ったのは、アプリの要件と環境によります。FacebookやTwitterみたいに開発予算があって、エンジニアが揃えられればなんでもできると思いますが、全部のプロジェクトがそんなことができるかというとできない。プラットフォームごとに最高のUXを提供することよりも、リリースのスピードや限られた予算と言った事情が優先されることもあるということです。

だから絶対HTML5で書かなければいけないと思い込む事自体、ナンセンスかなと。例えばリリースのスピードが優先されている場合に、ネイティブで書いたほうが早ければ、ネイティブで書けばいいと思います。

吉川:ネイティブでしか書けないものはネイティブアプリで作ればよいので、私は基本的にはハイブリッドアプリで“ネイティブコードで書いたら負け”と思ってます。ただ、お客さんはモバイルアプリ大好きなので、何でもかんでもモバイルで作ってくださいと言ってくることが多いのも現実としてあります。その時は機能面で妥協できるのかとか、それなりのコストがかかることを提示して、なるべくプラグインで書かなくていいようにしています。それくらいプラグインを書くのはつらい(笑)。

ハイブリッドアプリで開発してドはまりしたことある?


白石:ところで、ハイブリッドアプリでドはまりした経験はありますか?デバックが全然できなかったとか、移植したら動作が違うとか。

金井:端末によって同じCSSなのに見た目が全然違うのもそうですが、JavaScriptの挙動も違うところ。一方の端末は滑らかに動くのに、別の端末だとカクカクだったり、もっさりしたり。とにかく端末ごとに挙動が違うのは予想できないので、トライ&エラーを繰り返すことになりましたね。

html5j Web先端技術味見部部長 AngularJS Japan User Group 管理人 金井 健一さん

html5j Web先端技術味見部部長 AngularJS Japan User Group 管理人 金井 健一さん


──会場からも同様の経験談が寄せられる

Q.2年前くらいにハイブリッドアプリを開発したとき、Android2.2と2.3の全盛期だったんですが、同じCSSを適用しているのにデバイスによって見た目が違うのが困りました。最近はどうなんでしょうか?

吉川:最近のAndroidだと4.1以降は標準ブラウザがChromeになっていますし、4.4からは、内部のWebViewもBlink(Chromeのレンダリングエンジン)が利用されるようになっているので、2.x時代に比べると大分改善されていると思います。

──ここで、当時のひどい開発事例の話が盛り上がり

畠田:昔は見た目のスピードを上げるために、ひどいハックをする端末メーカーもありました。ここにいるメンバーはハイブリッドアプリを推進する立場の人間だけど、なんでもかんでもハイブリッドアプリがいいですよと万能の薬のように言っていけないと思うんです。

ハイブリッドアプリに向いてないものは全力で羽交い絞めして、止めるべきなんですよね。そうでないとハイブリッドアプリ自体が間違った方向で捉えられてしまう。ネイティブで開発したほうがいいものは、ちゃんとジャッジして伝えてあげるのも重要ですね。

標準化の動きはどうなってる?


白石:CordovaやニューフォリアのAPI、Chrome AppsのAPIなど、モバイルデバイス向けのWeb APIは細分化しつつありますが、これって標準化できないものなんでしょうか。

──ここで、白石さんが突然会場の羽田野太巳さんを指名

羽田野さん、現状ってどんなかんじなんですか?

羽田野:最新情報はあまりよく知らないんだけど、統一はしばらくないんじゃないかと思います。もちろんいつかは一緒にするために施策を立てているとは思いますが、現在はFirefox OS/Windows 8/Chrome Appsなど、各ベンダーが独自にAPIを作り込んでるのが現状です。

でも、いつか標準化してくれるからそれまで開発を待とうなんてベンダーはないわけで。いろいろAPIが出てきて、いろんな事例を経験して、みんなが試していいものが残っていくし、ある意味健全です。だからまだまだ時間がかかる。個人的にはベンダーがそれぞれ独自のAPIで作っていくのは大歓迎ですね。

これまではネイティブでしかできなかったことが、JavaScriptで何でも開発できるようになってきました。今はばらばらだけど、一つのプログラム言語だけでできるようになりつつあると思います。これはまだデファクトではないけど、コンソーシアム標準的には前向きに捉えていいのではないでしょうか。

羽田野 太巳さん

有限会社futomi 代表取締役、株式会社ニューフォリア 取締役 最高技術責任者 羽田野 太巳さん


吉川:ちなみに、Chrome AppsのAPIはまだ標準化するつもりはないと思います。将来的にはW3Cの議題にのせるという話も出ていますが、今は各プラットフォームが独自に作ってて、そのフィードバックを収集している段階じゃないかと。

HTML5でデバイスごとの互換性や移植性がとれてない?


白石:ところで、HTML5ならデバイスごとの互換性や移植性がとれると言われていたのに、結局選ぶプラットフォームに依存していて、互換性がとれてないですよね?その辺はいかがでしょうか。

HTML5 Experts.jp編集長  白石 俊平さん

HTML5 Experts.jp編集長 白石 俊平


久保田:ネイティブの機能を呼び出すCordovaプラグインのAPIインターフェイスは、なるべく全部W3Cが出した仕様に従ってポリフィルを作っています。

羽田野:そもそもHTML5に関わらずプラットフォームに対する互換性がないとか、Web標準やHTML5に期待しすぎな面があるよう気がします。Web標準ってキャッチアップにしかすぎなくて、最先端のものがいきなり標準化されるわけではありません。これまで標準化されたのはHTML5というのはWebの延長であって、アプリプラットフォームはあとから出てきたものなんですよね。

OSが提供するAPIの数からすれば、WebのAPIなんてまだまだ足りない。はじめからHTML5が何でもできると思ってしまうこと自体ナンセンスで、足りないものは独自実装に頼るしかない。WebとOSの差分はどうしても出てしまうけど、それはしょうがないし、期待しすぎてはいけない。それでもこのトレンドでWebの技術しかなかった人がアプリを作れるようになってきたのだから、十分価値があると思います。

畠田:Web技術の応用範囲はすごい勢いで広がっています。標準化のスピードと比較しても圧倒的に早いわけです。例えばクルマに使おうかとか、今まで思ってもみなかったところに拡大していて、私たちWeb業界の人間からすると、すごく面白いわけです。だから今は標準化はまだ先でもいいんじゃないかと思います。

羽田野:もう一つ、標準化に対してブラックな話をすると、皆さんの仕事の単価が下がることにもつながるんです。だって誰が作っても同じクオリティのアプリがプラットフォームに上がってくるんですから、お金を取る理由がなくなってくるんです。

今みたいにプラットフォームごとにばらばらのカオスな状況だからこそ、コストも請求できるといういい面もある。だから誰が作っても同じというものだけが標準化されていけばいい。価値が下がって単価が下がってもいいものだけが、標準化されればいいと考えたほうがいいと思いますよ。

さまざまなデバイスでWeb技術が果たす役割


白石:これからさらに様々なデバイスが登場し、Web技術が果たす役割も増えていくと思います。皆さんはどのようにお考えですか?


吉川:いろんなデバイスにWebの技術が広がっていくのはうれしいですね。Webの進化のスピードに合わせて、デジタル家電のUIやデザインの進化も加速するはず。期待したいです。

畠田:ユーザーインターフェイスもだんだんWebに準じたものになり、今まで古くさかったデザインやUIが洗練されたものになっていくはずです。Webで活躍しているエンジニアやデザイナーたちによって使いにくいインターフェイスやマニュアルなどが革新されていく。誰でも使えるようになる世界が早く来てほしい。

白石:ただ僕が心配しているのは、ウェアラブルなデバイスなど、デバイスの小型化がどんどん進んでいる現状では、デバイスの「非力化」も進んでいるんじゃないかと思うのです。そうなると、比較的高いCPUパワーを必要とするWeb技術は敬遠されて、ネイティブが当たり前になっちゃうんじゃないかと。Webブラウザを搭載しないデバイスも増えてきそうです。

吉川:それは心配ないんじゃないでしょうか。ハードウェアの進化があったからこそ、ウェアラブルが出てきたはず。今後もハードウェアの進化は続くでしょう。

例えば、昔のインターネット回線が遅かった時代は動画なんてありえませんでしたが、回線が早くなったからこそ品質が良くなって動画サービスがブレイクした。要は、環境次第で変わるということです。今は、ハードウェアの性能が上がってきているからこそ、Webを組み込んでも大丈夫じゃないかという流れですね。未来はそんなに暗くはないんじゃないかな。

Google Developer Expert(Chrome) 吉川 徹さん

Google Developer Expert(Chrome) 吉川 徹さん

さらに会場からは、HTMLとJavaScriptとCSSで書くから重くなるのではないかという声も。JavaScriptだけにすれば軽くなるのではという意見や、3つ以外の言語や新たなレンダリングエンジンが生まれる可能性、WebGLやFamo.usなどに対する期待の声も多く聞かれました。

未来のデバイスとWeb技術にも夢を馳せながら語り合った対談もここで終了。Webとネイティブのメリット、デメリットを合わせ持つハイブリッドアプリが、今後デバイスやWeb技術の進化とともにどう技術的課題をクリアしていくのか。編集部では今後も最新事情をお伝えしていきたいと思います。

★今回の登壇者が執筆したハイブリッドアプリ特集記事もぜひ合わせてご覧ください。

Powered byNTT Communications

tag list

アクセシビリティ イベント エンタープライズ デザイン ハイブリッド パフォーマンス ブラウザ プログラミング マークアップ モバイル 海外 高速化 Angular2 AngularJS Canvas Chrome Cordova CSS de:code ECMAScript Edge Firefox Google Google I/O Google I/O 2014 HTML5 Conference 2013 html5j IoT JavaScript Microsoft Node.js PhoneGap Polymer SkyWay spdy TypeScript UI UX W3C W3C仕様 Webアプリ Web Components WebGL WebRTC WebSocket