Sencha Touchパーフェクトガイドを読んだ

これはこれから Sencha Touch 開発する人は必読だね!

HTML5モバイルアプリケーションフレームワーク Sencha Touchパーフェクトガイド

HTML5モバイルアプリケーションフレームワーク Sencha Touchパーフェクトガイド

いままで Sencha Touch の本といえば以下の本しかなかった。Ext JS の本はまああったけど。


内容としてはかなりさわりの部分だけど、日本語情報がチュートリアル程度しかない現状かなり役に立つ。どうやら Sencha Touch の勉強会やコミュニティはあるようだけど、そこまでひろがってない感じ。

で、 Sencha Touch 2 + PhoneGap(Cordova)での開発メモ - atas でもいろいろかいたけど、現状 Sencha Touch 2 はたしかにすごいんだけど、けっこういろいろハマる。Ext JS のことはよくしらないけど独自クラスシステムでガリガリのフレームワークで、たしかに英語の公式ドキュメントは充実しているけど「で、それがどう使えるんですか?」ってときによくわからなくなったりする。こまる。だいぶつらい。そういうときに、こういう実践的な内容まで触れられている本があるとすごく役に立ちそう。

この本を読んでほむほむしたところ

Ajax request するときの id は消せる

ただし Proxy を RESTful にした場合のみ。今回の件は、Ajax じゃなくて RESTful にして appendId=false すればよかったかもしれない。

Ext.create より Ext.wedget?

遅延ロードがどうとか。この本では Ext.widget をつかって必要なときにロードするようにするように推奨しているように読み取れる(アリエルさんところが業務アプリとしてそこらへんシビアだったのかもしれない)。どう違うのかは正直いまはよくわからなかったし、次に使うときがくるまではまあおいておく。

id と itemId の違い

id は内部で使う要素。itemIdで実装としては管理できる。実際 id で管理しててどっかでバグって死んでたことがあった。そんなん公式ドキュメントみてもわかんないす。

Ext.Router まわり

画面遷移をどう管理する?ってときに今回は自前のキューを実装してくれて助かったんだけど、やっぱりExt.Router を使えばよかったのかもしれない。Android のときにしか使えないかと思ってたってのがある。

sass と compass をあまり使いこなせてなかった

まあこれは Sencha Touch というよりはそっちの話なんだけど、具体的にはカスタムアイコンをもらったときにがんばって自前で @mixin... みたいなことをしてくれてやってしまたけど、compass の機能をつかえばそこらへんはもうちょいうまくやれたかもしれない。アイコンを base64 エンコードして data スキームにいれるのはわかってたけど、なんかうまくいかなかったんだよね……。

model にデフォルトで定義される getter, setter

なので、プロパティにアクセスしたいときは基本的に model.getName()とかでいいよねっていう。とはいえ、やっぱり自前でもつ必要があるときはあるけど。

config の apply と update

コンストラクタとオブザーバー

クラス自体の override

Ext.define(class, config, callback) の callback で Ext.onSetup で対処してくれたけど、実は override でよかったのかもしれない……。

xtype と alternateClassName と alias の関連

widget 関連でググって StackOverFlow にたどり着いて探したけど、結局よくわかってなかった。まあ、xtype 以外つかわなかったけど。

association はやっぱりつかえるっぽいこと

DB の foreignkey とか manytomany みたいなもの。なんかうまくいかなくね?ってことでつかわなかったけど、やっぱりつかえるらしい。

Proxy はやっぱいろいろあるということ

Ajax, JSONP だけじゃなくて RESTful, Direct(RPC) がある

この本で触れられてなかったところ

Ext.tab.Panel あたりだと xclass で直接指定したほうがいい気がする

あのときハマったポイント(Sencha Touch と関係があるかはおいといて)

Cordova と Sencha Touch の導入と連携

Sencha + PhoneGap(Cordova) ってそれなりに需要あるはずだし情報があるような感じだったけど、それの具体的な解決方法は自分ではわからなかった。

PhoneGap Plugin の連携

Cordova や PhoneGap Plugin のバグや AndroidiOS での挙動の違いでもろもろしてた

Sencha Touch の CRUD するときの Ajax の URL と API 仕様との違い

backbone.js をさわったときにあったので今度ブログに軽く書くけど、こういうときに生成される URL と API 仕様って合わないことがままあるから、そこは自前で書き換えるしかない

Sencha Touch が提供していないところ

debug モードとか logger 機能とかないし、そこらへんは自前でやるしかないよね

いまあらためてみたら気がついたところ

Utilities に Ext.util.* とか Ext.String とかたくさん拡張あるからつかおう

XTemplate はしってたけど、なんかいろいろあるじゃん

Native Packaging したとき Ext.device は用途に寄っては PhoneGap なくても十分つかえる

ような気がする。とはいえ、たとえば Google Analytics をいれたいとかなったら、やっぱり PhoneGap が必要

ところで

PhoneGap(Cordova)が もう 2.5.0 が出てるけど、カメラで EXIF が消える件はちょっともうあとまわしっぽいですね [#CB-1285] Include EXIF metadata in image upload - ASF JIRA