Windows 8 和 Windows Phone 8 趨於融合。與此同時,有志於為這兩個平台構建應用程式的開發人 員必須瞭解兩者之間重要的相似之處和不同之處。瞭解 Windows 8 和 Windows Phone 運行時 API 當前 的共有功能使您非常有機會同時為這兩個平台交付應用程式,並利用大量同樣的知識、工具、代碼和資 產。在本文中,我將探討這些區別和共性,以協助您在開始構建同時面向這兩個平台的解決方案之前了 解能做到和做不到的事情。
UX 中的一致性(磁貼、形式豐富的觸摸介面、應用程式列和導航的用法)簡化了為這兩個平台設計和實 現應用程式的過程。而採用同一個 API 介面區可簡化許多方案下的代碼共用。可選擇適合應用程式的 技術: 對這兩個平台使用 C#、Visual Basic、C++ 或混用這幾種技術。aka.ms/sharecode 上的資 源包含有關建立在 Windows Phone 8 和 Windows 8 中啟動並執行應用程式的大量資訊,以及為了在為兩者 構建應用時最大限度地重複利用代碼的現有代碼共用方法。
具體各方面的比較
為了有效地為這兩個平台編寫代碼,需要瞭解功能上的重要區別,以及大體上類似但 API 和實現有 所不同的功能。對於這些功能,不應嘗試進行代碼重用。我將詳細介紹三個重要的關注方面:
UX
資料模型和支援代碼
特定於平台的功能
UX
在設計跨平台應用程式的 UI 時,外觀尺寸是一個重要的考慮因素。需要考慮螢幕解析度、螢幕大小 和裝置預設方向等特性。必須謹慎決定 UI 以確保使用者體驗在特定裝置的約束下得到最佳化。
您很快就會意識到,在 Windows Phone 8 應用程式中加入 Windows 市集應用的所有功能並不合 理,因此必須為每個平台設計其自身的 UX。圖 1 舉例介紹為了構建儘可能最佳的體 驗所必須考慮的各種 UX 區別。
圖 1:Windows Phone 8 與 Windows 8 UX 功能比較
XAML 命名空間 :雖然 Windows 8 和 Windows Phone 8 都使用 XAML 進行 UI 設計,但不應跨應用程式重用 XAML。這兩個平台的區別巨大:頁面配置和方向、XAML 命名空間和 XAML 控制項,使得重用這一點變得非 常困難。
雖然許多控制項在兩個平台中都存在,但這些控制項所在的命名空間不同。例如,可在 Windows.UIXaml.Controls、Microsoft.Phone.Controls 和 Microsoft.Phone.Shell 中找到 Windows Phone 的 Windows 8 等效控制項,而 System.Windows.Controls 包含 Windows 8 控制項和一些共用控制項。 幸運的是,XAML 編輯器將在您嘗試添加不支援的控制項時警告您。但是,XAML 不支援條件編譯,因此無 法輕鬆地在運行時為一個平台或另一個平台加入命名空間。
XAML 控制項:每個控制項陳列庫均為其對應的平台進行了最佳化。因此,強烈建議分別為每 個平台自行設計使用者控制項。這樣將協助在每個平台上保持一致的 UX,同時降低因出錯而遷移 XAML 的可 能性。圖 2 顯示一些基本控制項。
圖 2:Windows Phone 8 和 Windows 8 基本控制項