動的サイト(ゲームライブラリ・D3)はハイブリッドアプリに不向きなのか?
D3.jsは可視化のためのjsライブラリだ。これを使ってモバイルアプリを出すことを考えているヒトもいるかもしれないので書いておこうと思う。なぜならD3.jsはハイブリッドアプリとして出すのには懸念事項があるからだ。
・ハイブリッドアプリはグラフィック描画によわい
ハイブリッドアプリとはそもそもネイティブアプリ(swift,java)とウェブアプリ(ブラウザ上でhtml/
css+js)の中間だ。
monacaの経験しかないので,monacaについてしか言及できないが、ウェブアプリを素早くモバイルアプリにするためにできている。多くのウェブサイトは静的サイトであることに注意しなければならない。ハイブリッドアプリは静的サイトのアプリ化を指向している。
さて動的サイトにかなり重要である要素はjavascriptそして今はsvgも加わる。
svgの描画・レンダリングはそれぞれのブラウザの仕様で行われている。たとえばchromeでは高速で動作するが、firefoxでは操作性に影響があるほど遅く動いたりする。
ハイブリッドアプリは内側に独自のブラウザが内包されているようなものだと考えて良い。
これらの状況から予想できることは、静的サイト向けに作られているハイブリッドアプリの描画エンジンは動的サイトのjsによる大量のDOM計算に耐えられないのでは?ということだ。
monacaで使われている描画エンジンはどう考えてもchromeほど最適化されていない。
はっきり言って遅い。
これから調べなければならないことはネイティブコードのようにうまく動くjsはどのライブラリで作れるかだ。