Sencha Touchパーフェクトガイドを読んだ
これはこれから Sencha Touch 開発する人は必読だね!

HTML5モバイルアプリケーションフレームワーク Sencha Touchパーフェクトガイド
- 作者: 大谷弘喜,稲垣龍一,川野忍,土江拓郎,森本恭平,高岡大介
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2013/02/26
- メディア: 大型本
- 購入: 1人 クリック: 13回
- この商品を含むブログ (4件) を見る
いままで Sencha Touch の本といえば以下の本しかなかった。Ext JS の本はまああったけど。

Sencha Touchではじめるモバイルアプリ開発―無料で使える「HTML5」&「JavaScript」開発フレームワーク (I・O BOOKS)
- 作者: きしだなおき
- 出版社/メーカー: 工学社
- 発売日: 2012/11
- メディア: 単行本
- 購入: 1人 クリック: 24回
- この商品を含むブログ (7件) を見る
内容としてはかなりさわりの部分だけど、日本語情報がチュートリアル程度しかない現状かなり役に立つ。どうやら 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 みたいなもの。なんかうまくいかなくね?ってことでつかわなかったけど、やっぱりつかえるらしい。
この本で触れられてなかったところ
Ext.tab.Panel あたりだと xclass で直接指定したほうがいい気がする
あのときハマったポイント(Sencha Touch と関係があるかはおいといて)
Cordova と Sencha Touch の導入と連携
Sencha + PhoneGap(Cordova) ってそれなりに需要あるはずだし情報があるような感じだったけど、それの具体的な解決方法は自分ではわからなかった。
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