23
© 2012 DMM.com Labo Co.,Ltd. Tumblr Touch by Sencha 金沢デザイン部, 石本 光司 2012.05.11

TumblrTouch

Embed Size (px)

DESCRIPTION

powered by Sench Touch2

Citation preview

Page 1: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Tumblr Touch by Sencha

金沢デザイン部, 石本 光司2012.05.11

Page 2: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

KOJI ISHIMOTO - @t32k

突然ですが。。。

5/14(月)で退職します。

5年間駆け抜けました。

ありがとうございます!

就職先は... 続きはWebで!

よろしくお願いします。

2

Page 3: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

今回作ったもの

3

Tumblr Touch

Page 4: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

作った経緯

4

tumblr gear の不具合...http://tumblrgear.tumblr.com/

Page 5: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

公式 App の選択

5

Page 6: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Page 7: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.7

tumblr gear official tumblr

Tap!

Flick!

Page 8: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

最高のUXとは...(僕にとって)

8

Page 9: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

一枚でも多くのエロクールな画像を早く見たい

9

Page 10: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.10

TouchNativeの操作性をWebで

Page 11: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Sencha Touchに取り組むメリット

11

- モバイルフレームワークの調査

- jQuery Mobile 以外の選択

- UIコンポーネントの学習

Page 12: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Demo

Page 13: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

要件定義

13

1. Tumblr API (Photo Posts)の使用

2. 1画面1アイテム

3. タップによる遷移

4. 自動読み込み (できませんでした...)

Page 14: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

1. Tumblr API -Photo Posts

-   Ext.data.proxy.Ajax

-   Ext.data.proxy.JsonP

14

proxy: { type: 'jsonp', url : 'http://domainB.com/users'}

proxy: { type: 'ajax', url : 'users.json'}

Same Domain

Different Domain

Page 15: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Ext.define('TumblrTouch.model.FetchData', { extend: 'Ext.data.Model',

config: { fields: ['photos'], proxy: { type: 'ajax', url: 'resource/data/posts.json', reader: { type: 'json', rootProperty: 'response.posts' } } }});

var ttdata = Ext.create('Ext.data.Store', { model: 'TumblrTouch.model.FetchData', });

15

Page 16: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

2. 1画面1アイテム

-   Ext.Layout.Card

16

var panel = Ext.create('Ext.Panel',{ layout: 'card', items: [ { html: "First Item" }, { html: "Second Item" }, { html: "Third Item" } ]});

panel.setActiveItem(1);

Page 17: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Ext.define('TumblrTouch.view.CardPanel', { extend: 'Ext.Panel', xtype: 'tt_cardpanel', config: { layout: { type: 'card', animation: { type: 'slide', direction: 'down'} }, id: 'cardpanel', defaults: { xtype: 'img',  style: 'background-size:contain;...', }, items: [ {src: 'resource/img/loading.png'} ] }});

17

Page 18: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

3. Tapによる遷移

-   Ext.app.Controller

18

Ext.define('MyApp.controller.Main', { extend: 'Ext.app.Controller', config: { refs: { nav: '#mainNav'} }, addLogoutButton: function() { this.getNav().add({text: 'Logout'}); }});Ext.create('Ext.Toolbar', { id: 'mainNav', items: [{ text: 'Button'}]});

Page 19: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Ext.define('TumblrTouch.controller.Main', { extend: 'Ext.app.Controller',

config: { refs: { go: '#go' }, control: { go: { tap: 'goPager'} } },

goPager: function() { var panel = Ext.getCmp('cardpanel'); var index = Number(panel.getActiveItem().id.replace('ext-image-', '')) - 1; panel.animateActiveItem(index, {type: 'slide', direction: 'down'}); panel.setActiveItem(index); }});

19

Page 20: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Sencha Touch Applicationの構造

20

Page 21: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Tumblr Touchの構造

21

Page 22: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.

Sencha Touch 2を触ってみた感想

- 学習コスト高いがドキュメント・サンプル豊富(英語...)

- 非常に良くできている(と思う...)

- 日本の開発者人口少ない(#senchajp)

- Viewだけならなんとかデザイナーも...

- 最悪、CSSでなんとかできる

- jQuery Mobileよりも触ってて楽しい♪

22

Page 23: TumblrTouch

© 2012 DMM.com Labo Co.,Ltd.23

Thank You!