有许多文档介绍将应用程序从 iOS 移植到 Windows Phone,但是在本文中,我要从为这两种平台从 头开始编写新应用程序的前提开始讲起。我不会对这两种平台户的孰优孰劣做出价值评判。相反,我对 编写应用程序报以务实的态度,并描述在编写应用程序时这两种平台的异同之处。
作为 Windows Phone 团队的成员,我对 Windows Phone 平台充满热忱,但是本文的重点不是说一种平台优 于另一种平台,而是说平台是不同的,因此需要一些不同的编程方法。尽管您可以使用 MonoTouch 系 统在 C# 中编写 iOS 应用程序,那是小众环境。在本文中,我使用标准 Xcode 和 Objective-C 编写 iOS 应用程序,用 Visual Studio 和 C# 编写 Windows Phone 应用程序。
目标用户体验
我的目标是在应用程序的两个平台版本上实现相同的用户体验,同时确保每个版本忠实于目标 平台的模型和理念。为了说明我的意思,请考虑应用程序的 Windows Phone 版本用垂直滚动的列表框 实施主用户界面,而 iOS 版本则用水平 ScrollViewer 实施主用户界面。很明显,这些差别仅仅是软 件方面的,也就是说,我可以在 iOS 中编写一个垂直滚动的列表,在 Windows Phone 中编写一个水平 滚动的列表。强制使用这些偏好设置会不太忠实于各自平台的设计理念,然而,我想避免这种“不自然 的行为”。
应用程序 SeaVan 显示了美国西雅图与加拿大不列颠哥伦比亚省温哥华之间的四条 陆地边境通道,以及每条边境通道的等候时间。此应用程序通过 HTTP 从美国和加拿大的政府网站提取 数据,并通过按钮手动刷新数据,或通过计时器自动刷新数据。
图 1显示了这两种实施。您会 注意到一个差别在于 Windows Phone 版本是有主题感知功能,并使用当前的强调文字颜色。相反,iOS 版本没有主题或强调文字颜色概念。
图 1 应用程序 SeaVan 在 iPhone 和 Windows Phone 设备上的主用户界面屏幕