• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
20130125 titanium meetupvol5
 

20130125 titanium meetupvol5

on

  • 960 views

 

Statistics

Views

Total Views
960
Views on SlideShare
557
Embed Views
403

Actions

Likes
0
Downloads
3
Comments
0

4 Embeds 403

http://h5y1m141.hatenablog.com 263
http://www.twylah.com 138
http://www.diffbot.com&_=1359119855496 HTTP 1
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    20130125 titanium meetupvol5 20130125 titanium meetupvol5 Presentation Transcript

    • 中規模なアプリ開発苦労話 photo by Alan Bell http://www.flickr.com/photos/belalan/213282261/13年1月25日金曜日
    • 自己紹介 photo by poluz! http://www.flickr.com/photos/poluz13年1月25日金曜日
    • 小山田 浩(@h5y1m141) JavaScript エンジニアではありませんが (JScript,Titanium Mobileな 趣味でTitaniumいじってます ど)経験2年程度 ※最近はCoffeeScript好き13年1月25日金曜日
    • Agenda • これから話すこと • 今作ってるアプリを簡単に紹介 • 自分の中の設計方針 • 今日話さないこと • ソースコードの細かい解説 ※気になる方はLT終了後お声がけ下さい13年1月25日金曜日
    • 今作ってるアプリ Photo By fotologic http://www.flickr.com/photos/fotologic/13年1月25日金曜日
    • Qiitaのビューワーアプリ13年1月25日金曜日
    • 中規模ってどの程度? photo by Laurie Pink http://www.flickr.com/photos/laurie_pink/13年1月25日金曜日
    • あくまで自分の中で中規模 という話です • 人生初のコード1000行超 ※現在1334行 • underscore.js、moment.js 等のライブラリとjasmineのテ ストコードは除いた数値 • MVC的にファイルを分割 • 分割方法、ファイルのネーミン グに現在悩んでる13年1月25日金曜日
    • アプリの構成要素:主要なUI mainTable configTable configWindow webView menuTable mainWindow WebViewWindow13年1月25日金曜日
    • TableViewは使い回してる mainTable ローカルにキャッシュ 投稿情報 投稿情報 投稿情報 投稿情報 mainWindow13年1月25日金曜日
    • 画面遷移のロジックはシンプル moveToConfigWindow: () ->     configMenu = require("ui/configMenu")     menu = new configMenu()     configWindow = new win()     configWindow.title = "アカウント情報"     configWindow.backButtonTitle = 戻る     configWindow.add menu     return tab.open(configWindow) configWindow moveToWebViewWindow: () -> mainWindow     actionBtn = Ti.UI.createButton       systemButton: Titanium.UI.iPhone.SystemButton.ACTION     actionBtn.addEventListener(click,()-> # 省略     webview.show()     webWindow.rightNavButton = actionBtn     return tab.open(webWindow) WebViewWindow13年1月25日金曜日
    • TableViewの入れ替え&書き換えとか スパゲッティコードになりそう・・ 左上ナビボタン:click menuTable:click QiitaAPIを利用する独自モ デル定義しておりそれを呼 mainTableス び出す ライドと半透 1.該当のURLエンドポイントアクセス 明化 2.アイテム取得出来たらローカルにキャッシュ 3.QiitaAPIのリクエストヘッダーに次ページの URL情報含まれているので取り出しておく13年1月25日金曜日
    • 自分の中の設計方針 ・1メソッド1画面程度にする ・ 先人の知恵を活用してスパゲッ ティコード化を防ぐ photo by aagius http://www.flickr.com/photos/aagius/13年1月25日金曜日
    • mainTableスライドと半透明化処理で Stateパターン class defaultState class slideState   constructor: () ->   constructor: () ->              sayState: () ->   sayState: () ->     return "STATE: 標準状態"     return "STATE: スライド状態"   moveBackward: () ->        moveBackward: () ->     # return new defaultState()     Ti.App.Properties.setBool("stateMainTableSlide",false)   moveForward: () ->     mainTable.touchEnabled = true     Ti.API.info "ACTION: スライド開始"          Ti.App.Properties.setBool("stateMainTableSlide",true)     mainTable.setOpacity(1.0)     mainTable.touchEnabled = false     mainTable.animate({     mainTable.animate({       duration:200       duration:200       left:0       left:160     },()->     }, ()->       # Ti.API.info "アニメーション終了"       mainTable.setOpacity(0.5)          )         )     return new slideState()     return new defaultState() module.exports = defaultState        moveForward: () ->     Ti.API.info "この状態では何もしない"          module.exports = slideState13年1月25日金曜日
    • menuTableの各項目をクリック後の 処理はCommandパターン getMyStocksCommand() 1.qiita.getMyStocks()実行 2.次ページのURL情報が後々必要 になるためTi.App.Properties で格納 3. ActivityIndicatorの制御 4.その他・・ getFollowingTagsCommand(tags) ※まだ実装してないけど上記と似 たような処理になる予定13年1月25日金曜日
    • GitHub上にコードありますので気に なる方はご覧くださいー13年1月25日金曜日
    • ご清聴ありがとうご ざいました13年1月25日金曜日