2012年5月10日 星期四

Windows 8_參加微軟活動:初探Windows 8應用程式開發

本來計畫好的腳踏車環北市一圈,因為磅礡大雨取消了,只好來認真寫筆記。
------------------------------------------

真沒想到用了微軟開發工具不算短的時間,第一次貼上這張貼紙竟然是在這麼新鮮的主題「初探Windows 8應用程式開發」,Microsoft讓Apple與Google風光了這麼久,也終於在今年推出'可能'一拼高下的Windows 8。

今天的活動總結算是三個主題:
1. Windows 8 概念
2. Metro Style 設計概念
3. 程式開發架構與簡單示範

所謂的筆記,就是一堆記的很混亂的文字,所謂的整理筆記,就是把混亂的文字用的更混亂。

-------------------------------------------------

1. Win XP程式版本是5.x版,Win vista版本是6.0,Win 7版本是6.1,而Win 8 版本為6.2,程式版本小幅度提升意味著升級到Win 8時,曾經可以跑在Win 7 的軟體應該都可以跑。

2. Win 8 與 Win 7 最大的不同在於重新撰寫'Touch'的部份,所以在Win7有用到觸碰的程式,可能需要大幅度的修改,其他程式則甚至不用修改就可以執行。

3. 上述所說的'程式'指的是桌面程式,而非Win 8 主推的Metro Style程式。

4. Win 8在使用時可以有兩種模式:a. 桌面模式(Desktop)、b. 磚模式(Tile),對程式開發來說,桌面模式就是Win Form的程式開發,磚模式就是Metro Style模式;使用者在操作的時候,而可以一值在這兩個模式中切換。

5. 如果你要安裝Win8,那麼找一台已經可以安裝Win7的電腦,'應該'都可以正常執行Win8,因為經過測試Win 8執行起來的效能優於Win 7,記憶體使用量甚至僅僅Win 7 的一半。

6. 未來安裝Win 8的機器有兩種,一種就是一般使用x86 cpu的電腦(桌上型電腦、筆記型電腦等),另一種ARM架構,就是由某家廠商製造的平板電腦(比如NVIDIA),而x86電腦就跟以前安裝Windows的經驗相同,可以買軟體進行安裝,而ARM架構下的Win 8則會隨機器一同出貨。最大的不同點在於每一台平板都有獨一無二Win 8,且不能安裝第三方軟體。什麼叫做第三方軟體?就是一般大家使用VS開發的各項程式,但可以由Windows store下載Metro Style程式,也就是說Metro Style可以橫跨兩種機器的模式。

7. Windows 8的登入帳號,改為使用Windows ID,也就是Live ID,也就是MSN ID,即使是用Local的帳號登入,也可以將該帳號與Windows ID連接;該方式可讓使用者在不同的裝置開啟相同的程式時,微軟可以將程式狀態帶回來(例:在家用桌機玩遊戲到2-1關,到了外面使用平板也可以從2-1關開始。)

8. 桌面模式有一個IE程式,但磚模式也有一個Metro的IE程式,最大的不同點是Metro的IE不支援任何Plug-in,也就是Silverlightnet、Flash、Active X等都不支援,所以Android成為唯一個擁有支援Flash瀏覽器的平台。(Flash Bye~),所以建議使用HTML5+JavaScript開發網頁。

9. Windows 8 的IE版本是10。

10. Win 8為了使每一個App使用體驗更趨一致,並讓自己的App可以與其他App進行互動,除了在Metro Style的設計規範外,程式面提供了Charms Bar,包含:Search、Share、Settings、Play To、App To App Picking。以Share來說,許多程式會提供Share的功能,將App裡面產出的內容分享到facebook或Plurk等社群網站,在Win 8內,若是facebook寫了一個程式並且依照Win 8的規定提供相對應的接口,每一個程式都可以去呼叫facebook所提供的分享程式,將facebook允許分享的東西貼到塗鴉牆;而對使用者來說會讓每一個程式在分享時的操作都更趨一致。

11. 上述的Play To提供設備上更多的想像空間,比如印表機廠商依照Win 8的規定做出相對應的接口,App廠商將可呼叫該引表機,直接將畫面的上內容印出。

12. Win 8的開發基本上與Win Phone7是走不同的模式,但在介面設計上相似,但也不同。

13. Metro是一種設計語言。(微軟已經註冊)

14. Metro Style app上Windows Store必須要審核,且從樣式、外觀的設定就相當多規定,上架的程式必須符合這些規定才能通過第一階段審核,內容如:字型(英文:segoe、中文建議:微軟正黑體)、字體大小(有規定的配對)、iocn的形式(不可有陰影、漸層,外面應該加一個圈)、文字的對齊(置左),照片必須滿版、磚的大小為150px,磚與磚的間隔為10px,所以佔據兩格磚大小的內容必須為310px。

15. 設計App bar的按鈕應由右邊放起,若太多則應放置在左右兩側,中間不移放置按鈕(因應使用者操作習慣)

16. Motion Design:要求不能有聲音。

17. Metro Style app使用者介面設計必須在三層之內。

18. Tile上可以放置動態的訊息(Live Tile),但該內容不可以是廣告,廣告只能放在App內。

19. 官方希望App的設計是:精準細膩、流暢敏捷、真實的數位體驗、極簡專注、統合整體(上述Charms Bar的概念)

20. Windows 8是可以讓所有硬體使用的,包含桌機、筆電與平板(似乎沒有機手?)。

--------------------------------------------------------

關於程式的內容:

1. 若是有1/10的Win使用者升級到Win 8,則程式開發者立刻擁有跟iOS相同數量的客群。

2. Win 8使用新的底層(Windows RunTime:WinRT)

3. Win 8的Metro Style Apps開發方式分三種:a. C++ + XAML、b. C#或VB + XAML、c. HTML+CSS+JavaScript,微軟利用Language projections的技術將程式碼mapping到Native Code;三種方式理論上都可以開發出相同的程式,因為底層呼叫的WinRT APIs都是相同的。

4. 開發App時與Android相同,必須在Manifest內宣告該程式所需要用到的權限,而這些訊息會在使用者安裝程式時告知使用者。

5. 每一個程式執行時都是獨立的,但可以藉由微軟提供的模式互相溝通(上述Share的概念)

6. App的生命週期:Running App→Suspended App→Terminated App,在進入Suspended狀態時程式開發者有5秒鐘的時間執行希望執行的程式碼(有Event可以使用),當系統需要更多記憶體、系統關機、App Crash時,會進入Terminated,而這時App不會被通知。

7. 若是需要進行背景執行時,可以使用a. Play to、b. 使用特定的Background API、c. 使用Live Tile。

8. 建議使用Windows.Storage.ApplicationData.Current時都用RoamingSetting,這樣即會進行雲端的同步,而預設Local都會儲存一份。

9. 上架賺錢模式:一次性的App購買、可以使用既有的金流系統(例如既有的網路購物網站)、廣告、In-App Purchase(於App中販賣自家商品)

10. 需要等待50 millisecond的操作,WinRT API都直接被製作成非同步模式,以C#來說就是使用await關鍵字,宣告時加上Async的修飾字,回傳void或Task

11. 就目前架構.NET Framework 4.5為主體,裡面分為三個子項:Windows Phone 7.1、Silverlight 5與.NET for Metro style apps,三個子項中有一小塊交疊的部份就是:Portable Class Library,可以編譯成dll與.winmd檔案形式,供其他地方使用。

12. 於Blend設計工具上修改後,XAML或是HTML+CSS將會自動修改,並且可於模擬器上快速切換各種螢幕大小所顯示出來的結果。(Android必須要開多個模擬器,且執行速度較慢)

13. debug時可以利用:a. 直接跑在開發機上(要開發Win8 Metro程式必須安裝Win 8 + VS 11)、b. 跑模擬器 c.以網路線對接平板電腦。

14. 若是以HTML+JavaScript開發,可以將以往開發網頁的習慣與技術帶入,但使用第三方函式庫時(例如jQuery)有可能會發生衝突的情況,這只能在開發時測試才知道。

15. Metro style apps 在操作上可與其他桌面程式或App交互放置(類似Win Form並排排列的感覺),但要螢幕解析度在1366*768以上才支援。
-----------------------------------------------------
官方參考資源


2. Windows 8 app developer blog(http://blogs.msdn.com/b/windowsappdev/)

-------------------------------------------------------
小小心得:

1. 這個活動很讚,講師也很讚,自以為有聽懂的情況下,覺得獲益良多。

2. 原本以為Windows Phone與未來Windows 平板一定會是同一套開發模式,但結果不是。

3. Win 8 結合了許多Android與iOS的優點,並且想的更多,最後才出來市場便宜占不到,但是架構卻更趨完善。

4. Windows不管到哪一版,看起來都很常發生突然的錯誤。(攤手)

5. Windows 8的App上架要審核,且似乎審的比iOS更嚴格,有感受到要保持程式品質的決心。

------------------------------------------------------

該Windows 8了嗎? 

沒有留言:

張貼留言