2009年3月26日 星期四

iPhone OS 與 WM

http://richielin-programer.blogspot.com/2009/03/iphone-os-wm.html

不是想做深入的研究
只是就天秤兩者開發過的經驗,寫一下心得罷了

在程式語言方面,不可否認的
C# + .NET Framework 確實是比 Objective-C + Cocoa 來得平易近人
C# 在事件處理 (Delegate) 等的語法,真的是很漂亮
加上 Visual Studio 的易用的環境,及整合的 RAD 的界面
寫 WM 的程式真的是很輕鬆
而 XCode 難用的開發環境,讓 iPhone 的開發難度高了一點
和界面開發的 Interface Builder 的整合也不高
很多時候,得在一大堆視窗中尋找自己要的東西

而 iPhone SDK Class reference 也實在是比不上 MSDN 的完整
常常有些功能,根本找不到相關函式或 Delegate
只能透過 Google 大神的幫助才得到解決
而 Visual Studio 只要在物件後鍵入 . 時,自動列出的函式也很完整
(XCode 列出來的常常是錯誤的,或根本沒這個函式)

不過除了開發環境之外,iPhone 的 Framework 及視覺元件就是 WM 比不上的了
這也是 Apple 一直以來的強項
在手機系統上,因為螢幕小,很多時候得靠多個 View 互相切換來顯示資訊
WM 上則必須自己 Handle 每個 View 的關係,常常得塞入一些按鈕來換頁
而 iPhone 的 NavController 等視覺元件則幫大家處理好這些事了
只要建好 View,然後要切換時一層一層 push 進 Controller
回上層時只要 pop 就可,十分方便
這簡單的概念,但對開發手機軟體,十分的受用
而許多視覺元件也都支援動態顯示,以來處理淡入、淡出,視窗切換等效果

再來就是 Image 的處理了
不知道在新的 WM 上開發是否有新的方式
但天秤接觸時的 WM 開發,在處理 Image 時,對 PNG 透空(遮罩) 的處理實在是不行
例如說兩層的 Image 相疊,加上 View 的底色為紅色
照理說最上層 Image 在透明的顏色應該要看到下面一層的 Image 顏色
第二層如果是透明的,應該看到 View 上的底色
但是在 WM 上完全不是這麼回事,不是第一層透明就直接看到底色了
就是遇到透明時,看到的是 Image 元件的預設顏色 (就是視窗灰色的底色)
這就讓想 Image 很難處理各種應用,不知道這點是否有改善了
在 iPhone 上,該是透明就是透明,不會有奇奇怪怪的顏色跑出來
而且最重要的一點,UIImageView 的處理速度還真是快
用來寫小遊戲已經十分夠用了

2 意見:

Laneser 提到...

我的感覺是, MS 一直到了 WPF 才讓我覺得有用心在 UI 處理上面, 之前那個 GDI 真的是讓程式設計師受夠了, 而 WindowsMobile 還是一直用 GDI 的觀念在操作, 我常常都會覺得很吐血, windows mobile 自從打敗 palm 以後進步有夠慢的, 希望 iphone 能打醒 windows 吧...

小瘦 提到...

用過IPHONE 覺得你寫的火車時刻表很棒 不曉得將來有沒有機會在ANDROID上看到~