ハイブリッドアプリ開発ではなぜシングルページwebアプリケーション開発にするのか考えてみた
はじめに
最近ハイブリッドアプリの勉強中なのですが、ネットとかで調べながらやってるとangular.jsやbackbone.jsなどのフレームワークを使った事例やサンプルなどが多いのでそういうものだと思ってました。
angular.jsやbackbone.jsのノウハウがあるわけでもないのでその辺も調べながら実装していくと、わからないことがけっこう多くて。
そもそもjavascript使わないでローカルのHTMLを複数ページ用意してアンカーで遷移させる。
で、必要なページではjquery使ってajaxで必要なデータ取ってくるとかの方が早いんじゃないかってふと考えました。
結局、いろいろわかってないのでこういう発想になってしまったのですが、、、
いい機会なので今時点での考えをまとめておきます
webviewでwebサイトを表示するだけの形はダメなのか?
ブラウザのパフォーマンス的なことはまだよくわかってないので間違ってるかもしれませんが、ダメじゃないと思います。
アプリっぽいUIを実現するCSSフレームワークで実装すれば見た目もアプリっぽくなるし。
ただ、webサイトと同じなのでページ表示するたびに通信してHTMLやjavascriptを取ってきて、ブラウザがjavascriptの処理を初期化して、、、とかになるので無駄は多いとは思いますが。しかしハイブリッドアプリ同様にHTMLとjavascriptなのでandroidでもiosでも1ソースで動かせるのでやっぱりメリットあると思います。けどこれだとネイティブの機能はいっさい使えませんが、、、
ハイブリッドアプリとして実装する意義
当たり前のことなんですけど、たとえばcordova(phonegap)等のフレームワークを利用して実装するとプラグインが存在します。
で、webサイトだけでは実装できないネイティブの機能を使えるという事なのだと思います。
webサイト同様に完全に1ソースでandroidとiosに対応させるのは難しい場合もあるかと思いますがそれぞれのネイティブコードで開発するよりかはスピード面でもメリットになると思います(普段web開発に慣れている人からすればになりますが)。
なのでプラグイン等を利用することでネイティブの機能を使えるようになるのが使用する決め手になるのかなと
そうなってくると上記で疑問として書いた、HTMLのアンカーとで遷移するようなアプリだと毎回javascriptを読み込んで初期化とかっていうのはパフォーマンス的に考えるとなしになってくるんですね。きっと
ネイティブの機能を使わないハイブリッドアプリは?
「そのアプリの機能ってwebサイトで全部できるじゃん」ていうアプリをハイブリッドアプリとして実装する意味はあるのでしょうか。
これについての答えが自分としては今のところわかりません、、、
現時点での結論。もう少しcordovaとangular.jsのノウハウがたまったらもう1度考える
以上です