病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

Sencha touchを使ってみた雑感

使ってみました。Xperia acro(Android)で試していて、PhoneGapでネイティブアプリ化しています。
速度の話と、設計の話。ネイティブAPI的な話はしません。

まず、速度に関して。
最初に感じたのが、jQuery mobileに比べて明らかに早いです。きびきび動く。
同時に、非常に残念なのですが、速すぎるが故に、画面が白くチラついているように感じます。
本来ブラウザで別のページを表示しようとすると、「表示されている画面を真っ白→ロード→ロードできた部分から表示」というステップを踏みます。つまり、ロード中は画面が真っ白。これが普通です。しかしロードが短いため、真っ白状態が一瞬で終わってしまいます。これがチラつきとして感じられ、非常に不快でした。

もうひとつ速度に関して付け加えるならば、ボタンをタップしたときの反応が遅いときがありました。
(PhoneGapでSencha touchを使っていない場合の実験をしていないので、原因は実はSencha touchにない可能性もあり)
Rettyというアプリと比較したのですが、やはりこちらの方が遅いです。
で、この原因を探ってみたのですが、重いページをレンダリングしていると、ボタンが反応しないのではないかと思います。
なので、ページが重いときは要注意です。

次に、設計の話。
これは素晴らしいの一言に尽きます。クライアントサイドのMVCパターン。データをajaxで取得し、連想配列の変数として持っておき、それをライブラリが勝手に処理してくれます。
htmlの直書きは不要です。テンプレートだけSencha touchの設定ファイルに渡してあげれば良いです。

jQuery mobileの場合は、自分でhtmlを直書きすると、それをjqmが手直ししてくれます。
自由が効きやすい反面、勝手にDOM書き換えやがったりするので、予想外の動きをされ、ちょっと使いにくい。
そういうことがないので、Sencha touchは素晴らしいなあと。