Skip to main content

Posts

[Titanium Mobile] 體驗營開始報名!!!

這次是本人主講,阿修的粉絲請不要哭... 報名網頁

[Event] Titanium Taiwan User Group 首次聚會報名開始!!!

Taiwan Titanium User Group 聚會 想要搶先知道今年九月在舊金山舉辦的 Titanium 研討會發表了甚麼新訊息嗎? 想知道年底即將更新 Titanium Mobile 1.8 SDK 多了哪些新功能嗎? 快來參加這次的User Group 聚會,有更多的開發小技巧要告訴你!! 報名專頁

PureMVC for Titanium Mobile

為了秉持著哪裡都要用 PureMVC 的想法,試著修改 PureMVC 官網上提供的 Javascript 版本給 Titanium 使用。 **source code** 有任何問題請上: Titanium Mobile 中文開發者論壇 建立 instance 的方法:使用 Puremvc 為 namespace Ti.include('puremvc-js-1.0.js'); var c = Puremvc.clone( Puremvc.SimpleCommand ); var p = Puremvc.clone( Puremvc.Proxy, "TestProxy", "This is TestProxy's data" ); var m = Puremvc.clone( Puremvc.Mediator , "MainMediator" );

[iPad] Titanium Mobile API Reference

View in iTunes 這個是最近的作品~~ Titanium Mobile 真的是一個很容易學的跨平台手持裝置開發工具,主要是使用 JavaScript 來編寫。 有興趣可以參考: 阿修的部落格 最近幾篇文章都有介紹 =)

PureMVC 我也會 [6]

Mediator ViewComponents 與 pureMVC 架構的中介 監聽並反應 View Component 發出的 Event 可以發送與接收 Notification 儘量少操作 Proxy 公開方法,多用 sendNotification... Mediator design pattern 要多認識這個 Mediator 設計模式的話,請自行看連結說明啊! 簡單來講,假使有一個 View 裡面有好幾個 MovieClip 組成,而這些 MovieClip 會互相影響對方...這個情況在 Flash 中,通常都會變成下圖: MovieClip 直接控制其他 MovieClip 搞到整個關係很複雜...換一個元件簡直是災難。 加入 Mediator 後,示意圖就會變成: 這樣,所有的 MovieClip 都透過 Mediator 來跟其他 MovieClip 溝通,當某一個 MovieClip 替換成別的元件,這時候也只需要修改 Mediator 中的引用即可,是不是變得很乾淨?如果同一組 MovieClip 有另外一個操作模式,也只需要替換掉 Mediator 即可!天下太平啊~~~ 而 PureMVC 中就是利用 Mediator class 為與前端 ViewComponent 的中介,這樣可以切開 ViewComponent 與 PureMVC framework 的關係,不管你前端介面使用 Flash or Flex 製作都跟程式核心無關。 所以 ViewComponent 製作時只需要兩個原則,一把所有的請求都以 Event 送出由 Mediator 處理,二提供公開方法, Mediator 只需要監聽 View 的 Event,將收到的資訊透過公開方法喂進 ViewComponent 即可。 如在 ViewComponent 中: public function setList( result:Object ):void{ list.dataProvider = result as ArrayCollection; } //然後在按下取得資料的按鈕 Click action 寫上: dispatchEvent( new Event( "GET_LIST" )); 新建 Mediator 的時候一樣有幾個重點方...

PureMVC 我也會 [5]

寫在前面...為日本地震海嘯受災戶祈福,為地球祈福...~_~ Proxy 收集資料,提供公開方法给外部使用 封裝資料區域邏輯(反正就是弄好資料才給別人) 只能發送 Notification 絕對不要引用到任何的 mediator,越自閉越好 Proxy 也是一個設計模式: Proxy design pattern ,有興趣的請看 wiki 連結,以最簡單的解釋 Proxy 就是資料的「代理人」要什麼資料就是透過這個代理人取得,請求資料的對象不需要知道代理人是如何得到資料。 隨便畫個示意圖,MVC 中為什麼要分開 Model 用意就是當 Model 更改服務的時候,也只需要修改 Model。上圖中,如果你原本的服務是 PHP 會通過 ProxyA 去與後端溝通,當後端更改成 .NET 的時候,前面都不需要變動,也只需要更改為 ProxyB,在上一篇中有特別建議將 Proxy 取用寫在 Command 也是為了因應這種情況產生,這樣你只需要修改 proxyCommand 相關引用就可以了。 使用 Proxy 的時候通常都會伴隨 ValueObject 來使用,VO 的用意是為了強制資料型態,免得在開發過程中過度使用 Object 來做傳遞結果無法檢查資料型別而出現的 bug。 ValueObject package com.mvc.models.vo { public class listVO { public function listVO(label:String, data:String){ this.label = label; this.data = data; } public var label:String; public var data:String; } } 當然你也可以使用 getter and setter 來定義屬性。 Value Object 好處是,使用 remoting 的時候可以直接與後端輸出物件型別綁定,前端收到後端吐出資料時,完全不需要做轉型,如: package com.mvc.models.vo { [RemoteClass(alias='com.serverside.vo.listVO')] public class listVO { --以下省...