前幾天看一哥們寫的“Android學習之路”一文很不錯,遂也寫一篇Windows Phone的學習之路。
開發環境
台式機
-
不管是台式機還是筆記本,建議配置在I5+8G以上,I3+4G的話就別考慮用模擬器了,真機跑都挺費勁。
-
如果用的是奔騰或AMD的CPU,並用要使用模擬器開發的話,要注意可能CPU不支持虛擬化導致基於Hyper-V的模擬器無法運行。
手機
- 買一台開發機還是很有必要的,如果預算緊張,可以考慮買一台最便宜的Lumia 525,甚至去淘寶或一些WP社區上找二手的htc8s或Lumia520。中高端就不在這推薦了,超出本文范圍。
- 我基本上不怎么用模擬器開發,因為模擬器上沒有各種sensor(雖然可以模擬,但還是麻煩),手勢操作也不方便,並且顯示效果與真機也有些許差別。
操作系統
-
開發WP8.X最低要求是Windows 8.X專業版以上,如果要用Hyper-V的話,還需要64位。
IDE
- 建議直接安裝Visual Studio 2013,直接內置WP8的SDK。VS2013的Update2則帶有WP8.1的SDK。
- 安裝的時候注意把Blend勾選上,它是開發XAML的利器。
基礎概念
Windows Phone 的手機版本
- Windows Phone 7.x,已被微軟拋棄,不能升級到Windows 8.x。故也不做過多討論。
- Windows Phone 8.x,向下兼容Windows Phone 7.x開發的應用。
Windows Phone 的官方資料:
Windows Phone 開發基礎
- 開發語言
- C#,開發應用的首選,開發資料較多。
- C++/CX,開發3D游戲的首選,以及不熟悉C#的選手也可以用它開發普通應用。
- HTML+JS,有web開發基礎的開發者首選(但是較小眾,個人不推薦)
- 開發庫
- 對於Windows Phone 8.1,可用的類庫有兩大塊:大量為WP准備的Windows Runtime 和 少量為WP准備的.NET。
- 在上述兩個庫出現相同功能的API的時候,優先使用Windows Runtime,因為在移動設備上,它才是未來(千秋萬代一桶漿糊)。
- 少數C++選手還可以使用個別的Win32 API。
- UI技術
- Windows Phone 8.0之前一直用的是基於Silverlight的XAML技術作為UI展現。WP8.1仍然有部分延續,但個人建議不要再追隨【已死的】Silverlight。
- Windows Phone 8.1之后開始采用基於Windows Runtime的XAML技術作為UI展現。這兩種XAML大致相同,但主要控件有不少的區別。
- Windows Phone8.0就開始支持Direct3D 11開發游戲,而從8.1之后開始支持Direct2D和DirectWrite的直繪。但是要注意:不支持OpenGL(僅支持部分的WebGL)。
- 關於XAML
- XAML是一種類XML方式的定義界面的技術,不僅可以定義布局和其中的控件元素,設置控件的屬性,事件,還可以直接綁定數據。
- 學習XAML可以先從布局控件開始,然后是一些簡單的文本控件,按鈕控件,選擇控件和操作欄控件。最重要的是數據列表控件,因為涉及到性能優化、數據綁定、自定義模板,動畫等。
- 關於數據存儲
- 數據可以存儲在應用內,與其他應用完全隔離。使用ApplicationData類。
- 數據庫,推薦使用SQLite,但是要注意SQLite的讀共享,寫獨占的線程/進程特性,以及一些性能優化的Tips。
- 也可以存儲在公共區域,如圖片,視頻,音樂,下載等。使用KnownFolders.XXX來訪問。
- 還可以放在雲端在多個設備間同步。可以使用Azure,OneDrive(一定容量的免費)或其他雲存儲。
- App的生命周期
- 打包
Windows Phone 開發進階
- 關於磁貼(tile)
- 后台進程
- 普通WP應用只能創建有限運行時間和功能的后台進程(與蘋果類似)。
- Windows Phone 8.1的后台任何可以由某個條件觸發啟動。
- 進程間通信
- 多媒體
- 圖片處理。可以使用原Nokia的SDK。
- 視頻處理。如果只是簡單的裁剪什么的,可以使用自帶的MediaClip類。要做編解碼什么的還是用Media Foundation吧。
- 音頻處理。先看一下支持的格式,免得瞎許諾了實現不了被老板罵。
- 地圖
- 推薦使用Here地圖的基礎地圖數據服務和一些數據查詢服務。
- 還有高德。
- 各種傳感器
- 加速計,指南針,陀螺儀,傾斜儀,光感等。
- 可以參考施烱的一篇好文。
- 通信
- WiFi Direct,不用借助路由器的點對點通信。WP8.1以后支持。
- 藍牙4.0,低功耗,距離長,Profile多,可穿戴設備普遍采用。
- NFC,叫了幾年也沒起來的東西,個人不怎么看好。
- 前瞻
- 如果你是新開發者,建議直接選擇基於Windows Runtime的WP8.1 App模型。
- 如果你要遷移WP8.0的應用,時間充裕的情況下,建議也直接遷移到基於Windows Runtime的WP8.1 App模型。
- 如果你非要遷移到基於Silverlight 8.1的WP8.1,不方便與Windows 8.1共享代碼不說,SL目測將不再維護。
- WP8.X將還會有幾個 GDR X,多數會是基於高通平台的硬件更新之上的更新。
- 目測在未來的WP9上會與Windows9更好的共享代碼,也許App可以直接互運行了就。
設計
分辨率
- 總的來說,分為15:9,16:9,16:10。
- 按絕對分辨率來說的話,從480*800,480*854(用於3個軟物理鍵),到768*1280,720*1280,800*1280,再到1080P,后續可能還有2K和4K。(也慢慢碎片了)
我也只懂點分辨點,交互設計和視覺設計完全不懂,提供幾個鏈接吧
- 設計guide line,這個要么好好的理解,要么就隨便看一下就行了,否則半瓶水的功夫只能設計出讓人感覺都是“大色塊”的應用。
- 交互模式
- 視覺參考
- 可用資源
- 從Longlistselector到SemanticZoom的變化
- 從Panorama到Hub的變化
其他
- WP 開發者生存現狀
- 個人開發者:大部分入不敷出,為了養家糊口加點廣告,還要被罵。
- 一線互聯網App開發者:版本更新緩慢,升職加薪無望,跳槽機會少。
- 二三線互聯網App開發者:沒有話語權,迷茫,面臨轉平台的威脅和誘惑。
- WP手機廠商App開發者:原Nokia北京的應用部門幾乎被微軟一鍋端。
- 銷往的國內WP廠商現狀
- 微軟移動(原Nokia):唯一一家真誠地堅持WP的廠商,然而在近半年來一直沒有新機發布。930叫了一年了到現在影子也沒看到。
- 三星:WP7時代動作很大,WP8只出過一款Ativ S,騙完了安卓的專利費就不干了。
- HTC:8S和8X是現存僅有支持電信的WP手機,恐怕現在也只有二手了。
- 中興/華為:低端的W1和W2之后也再無音訊。
- 海信:不聲不響地就發布了WP8.1的機器,並且將在本月上市。暫不說質量,先贊一下其效率。
- 聯想:一直在傳,卻一直未發布。該說什么好呢?
- 酷派/金立/TCL/天語:據說都將會發布自家的WP8.1手機,還是很值得期待的。
- 呼聲
- 期望此次裁員能狠狠地鞭笞微軟這頭龜。最起碼每半個月能發布些利好消息。
- 從WP7堅持到現在的WP小伙伴們的耐心和信心已經快被消耗殆盡。希望在哪里?
- 說好的在action center中直接開關3G呢?
- About me
- 微軟平台開發者
- WP開發者
后記:
歡迎各位向我推薦一些好的WP Blog文章,以充裕本文中的一些空缺鏈接和段落。
如果你覺得本文對您有用,請點贊。
歡迎轉載,但請標明出處。