iPhone OS支持很多类型的软件,从基于Safari的Web应用,到iPhone本地应用程序,都可以运行在iPhone OS设备上。本章概要地介绍了为iPhone OS设备创建不同类型软件的解决方案。

如果您刚接触该平台,您应先阅读第一节中iPhone OS设备和其他计算机的差异总结,“牢记平台间的差异”。虽然此节的信息并不全面,但已经包含了您在设计iPhone应用程序时需要意识到的问题。

接下来,本章阐述了设计不同应用程序风格和特点时的思维方式,以帮助您设计iPhone应用程序。本章也阐述了如何将现有的Mac OS X应用程序转换为iPhone OS版本的应用程序。


牢记平台间的差异

iPhone OS设备不同于台式机或笔记本电脑,iPhone应用程序也与桌面应用程序不同。虽然这些似乎只是常识性陈述,但是您在为这些设备开发软件时意识到这些差异还是非常重要的。

为iPhone OS设备开发软件需要的思维方式可能是也可能不是您所习惯的。尤其是在您的经验主要是开发桌面应用程序的情况下,您应该了解为移动平台设计软件和为台式机设计软件的差异。

本小节总结了这些具体的差异。这些差异对于您的设计选择具有潜在的影响。有关如何处理这些差异以及iPhone应用程序开发过程中的其他问题的具体信息,请参考iPhone应用程序编程指南。


紧凑的屏幕尺寸

iPhone OS设备具有高分辨率的小型屏幕,适合用户放入口袋且具有强大的显示功能。然而这个对用户来说巨大的优势可能成为您的挑战。因为这意味着您必须设计一个可能与您的设计习惯差异较大的用户界面。

iPhone OS设备屏幕的尺寸是480 x 320。考虑到这一点,用户界面应该主要关注必不可少的部分。您没有空间来放置那些非必要的设计元素。另外,拥挤的用户界面将降低程序的吸引力并会提高使用的难度。


内存是有限的

内存是iPhone OS的重要资源,所以在应用程序中管理内存至关重要。因为iPhone OS的虚拟内存模型不包括磁盘交换空间,所以您必须注意避免分配的内存超出设备的可用内存。发生内存过低的情况时,iPhone OS将警告运行中的应用程序,若问题仍然存在,应用程序可能被终止。确保您的应用程序对于内存使用警告作出回应,并及时清理内存。

在您设计应用程序时,可以通过避免内存泄漏,减小资源文件大小以及延迟加载资源的方式,尽力地降低程序的内存占用。关于如何在iPhone应用程序中合理处理内存的的更多信息,请参考iPhone应用程序编程指南。


每次只能显示一个窗口

iPhone OS环境和计算机环境的最大区别之一就是窗口模式。除了一些模式视图外,在iPhone OS设备上,用户每次在屏幕上只能看到应用程序的单个窗口。iPhone应用程序可以包含必要数量的不同窗口,但是用户不能同时访问,只能顺序访问和查看。

如果应用程序的台式机版本需要用户同时看到几个窗口,那么您需要考虑是否存在其他的方式让用户能够在单个窗口或一系列顺序查看的窗口中完成同样的任务。如果不存在这种方式,您的iPhone应用程序不应考虑复制计算机版本程序的完整功能,而应改为实现计算机版本的单个子任务。


每次只能运行一个程序

同一时刻只有一个iPhone应用程序可以运行,第三方应用程序不能在后台运行。这意味着当用户切换到另一个应用程序,接电话或是查看邮件时,他们当前使用的应用程序将被关闭。重要的是,您应确保这一特点没有对用户产生负面影响。也就是说,在用户离开您的iPhone应用程序并在稍后返回时,用户应该不会感到比在计算机上的程序切换更加困难。

保证用户享有良好的程序切换体验的最有效方法就是将您的应用程序的启动时间降到最低。关于如何尽可能地减少启动时间的更多信息,请参考iPhone应用程序编程指南 。

一般说来,用户通过切换至设备上其他应用程序或服务的方式退出您的应用程序时,他们不会特地关闭您的应用程序。因此,不要期望用户显式地从菜单中选择退出或是点击关闭按钮。这意味着您的程序可能在没有太多通知的情况下退出,由此您应尽可能迅速地保存用户所做的修改。这样就能在应用程序切换时形成快速而平稳的过渡,并且保证下一次您的应用程序启动时能够显示用户最近做的修改。

简单程序模型的另一个重要方面是您处理程序特定配置的方式。在iPhone OS设备上,用户在设置程序中设定配置。您的iPhone应用程序可以提供这种配置,但是这意味着当用户想在设置中访问这些配置时,他们必须退出您的程序。如果您根据标准指南提供用户仅需设定一次的设置,那么您的程序的用户体验就会比较流畅。


简短的用户帮助

移动用户在使用您的应用程序前没有时间通读大量的帮助内容。更重要的是,您也不想用宝贵的空间显示或存储帮助内容。iPhone OS设备的设计特点是易用,所以满足用户的期望并使您的应用程序用法清晰明确是十分关键的。您可以采取如下措施:


正确地使用标准控件。因为用户已经熟悉在内置应用程序中看到的标准控件,所以他们了解如何在您的应用程序中使用这些控件。


确保您的信息中呈现的路径具有逻辑性,让用户能够轻松作出预测。另外,确保提供标记,比如后退按钮,这样用户就可以知道他们的位置并且了解如何重复原来的步骤。



您的选择是什么?

在您决定如何将产品呈现给iPhone OS用户前,您需要了解您可以选择的范围。根据产品的实现细节和目标用户,某些类型的软件可能更符合您的需求。

本节将为iPhone OS设备开发的软件根据实现方法分为三大类。粗略地说,您可以创建:


iPhone应用程序,也就是您用iPhone SDK开发的,在iPhone OS设备上本地运行的程序。


仅在网页上显示的内容,包括Web应用等,也就是像内置iPhone应用程序一样运行的网站。


混合应用程序,在Web视图区域中提供网页内容的访问,但是也包含了一些iPhone OS用户界面元素。



iPhone应用程序

iPhone应用程序类似于Phone OS设备上的内置应用程序,因为它们驻留在设备本身并且利用了iPhone OS环境的特性。用户在他们的设备上安装iPhone应用程序,并像使用内置应用程序一样使用这些程序,例如股票,地图,计算器和邮件。

iPhone应用程序启动十分迅速且易于使用。不论应用程序的任务是发送邮件还是为用户提供娱乐,它都应具备快速响应以及简单的特点,另外还应有漂亮简洁的用户界面。


仅在网页上显示的内容

涉及到为iPhone OS用户提供仅在网页上显示的内容时,您有一些不同的选择:


Web应用

提供了一个任务集中解决方案且遵从某种准则的网页被称为Web应用,因为它们的行为与iPhone OS内置的应用程序类似。Web应用与所有仅在网页上显示的内容相同,都在iPhone中的Safari上运行;用户仅需跳转到Web应用的URL,而不用在其设备上安装Web应用。


优化网页

根据iPhone上的Safari特点进行显示和操作优化的网页(除了某些基于不支持的技术的元素,如插件,Flash和Java)。另外,优化网页的内容尺寸应适合设备的屏幕。常常将其设计为在iPhone OS设备上显示时进行检测,以对所提供的内容做相应调整。


兼容网页

显示和操作与iPhone上的Safari兼容的网页(除了某些基于不支持的技术的元素,如插件,Flash和Java)。虽然兼容网页不会采取额外的措施来优化其在iPhone OS设备上的视觉体验,但是一般均能成功地在设备上进行显示。


 

如果您已经拥有一个网站或Web应用,首先需要确保其能在iPhone OS设备上正常工作。同时,您应考虑创建一个自定义图标,用户可以将该图标放在主屏幕上并使用网页剪辑功能。实际上,这样用户就能在他们的主屏幕上保留一个看起来像本地应用程序图标的,指向您网站的书签。了解有关创建自定义图标以及如何让iPhone OS设备上的网页内容具有良好视觉效果的更多信息,请参考iPhone人机界面指南之Web应用。

 

 


混合应用程序

在iPhone OS中您可以创建一个结合本地程序和网页功能的程序。混合应用程序是一个本地iPhone应用程序,它通过Web视图区域来展示其结构和功能,但是仍然包含标准的iPhone OS用户界面元素。

 

混合应用程序让用户通过一个称为Web视图 (如 “Web视图”所述)的元素访问网页内容。确切地说,如何在您的应用程序中使用Web视图由您决定,但是应避免让用户觉得您的应用程序仅仅是一个小型的网页浏览器。混合应用程序应像一个本地iPhone应用程序一样运行;而不应凸显依赖网络资源这一事实。


三种应用程序风格

根据视觉和行为特征,数据模型以及用户体验,本文档定义了三种程序风格。在您深入阅读之前,需要强调的是,这些分类的命名和描述是为了帮助您清楚地确认您的设计方案,并不表示所有的iPhone应用程序都必须严格地遵循这些分类。描述这些风格是为了帮助您了解不同风格的应用程序具有不同的设计方案。

 


注意:应用程序的风格并没有规定实现方法。虽然本文档主要阐述本地的iPhone应用程序设计,但是此处探讨的程序风格同样可以在iPhone OS设备的网页或混合应用程序中实现。

 


在您阅读这三种应用程序风格时,思考一下每种风格的特点如何增强您的iPhone应用程序中的功能和的整体用户体验。在您了解iPhone应用程序的不同设计风格时,记住以下问题有助于发掘最适合您的应用程序的特征组合:


您设想用户是出于什么样的动机去使用您的应用程序?


您计划中的用户会获得怎样的用户体验


您应用程序的目标或专注点是在哪儿?


您的应用程序如何组织,显示人们关心的信息?是否和应用程序的主要任务有天然的关系?

 


 

 

 


效率型应用程序

效率型应用程序具有组织和操作具体信息的功能。效率型应用程序通常用于完成比较重要的任务。邮件是效率型应用程序的典型例子。

目的的严肃性并不意味着效率型应用程序是干瘪无趣的,但是这种应用程序确实需要比较精简的用户体验,从而不会阻碍用户的工作。因此,成功的效率型应用程序将用户体验的重点放在任务上,用户可以快速地找到需要的东西,轻松地完成必要的操作,以完成该任务继而转向其他事务。

效率型应用程序通常分层组织用户数据。因为用户可以逐步将选择具体化,直到达到期望的具体程度,以找到所需的信息。iPhone OS提供了表格视图,保证了这一过程在iPhone OS设备上良好的用户体验(更多有关用户界面的信息,请参考“表格视图”)。图1-1显示了这种类型数据结构的示例。


图 1-1  效率型应用程序通常分层组织信息


 

效率型应用程序中的典型的用户交互模型通常包含:


组织列表


从列表中添加和删除


逐步细化信息直到达到目标的详细级别,而后执行与该详细级别对应的任务


效率型应用程序一般采用多个视图,通常每一视图显示一个层次的信息。用户界面通常简单,整洁且由标准视图和控件组成。效率型应用程序通常没有很多自定义界面。原因在于效率型应用程序专注于信息和任务,而非环境或体验。

在众多类型的iPhone应用程序中,效率型应用程序最有可能在设置应用程序中提供用户可操作的选项或者设置功能。这是因为效率型应用程序工作中涉及到大量信息以及许多潜在的访问和管理方法。但是,需要强调的是,用户很少需要改变这些设置,所以这里不应包含那些能够在主界面中更改的配置信息。

 


实用型应用程序

实用型应用程序完成的简单任务对用户输入要求很低。用户打开实用型应用程序,是为了快速查看信息摘要或是在少数对象上执行简单任务 。天气程序(如图1-2所示)就是一个实用型应用程序的典型例子。它在一个易读的摘要中显示了重点明确的信息。


图 1-2  天气程序是实用型应用程序的例子


实用型应用程序具有视觉上的吸引力,但是又能够突出它们显示的信息。用户使用实用型应用程序来查看一些事情的状态或是查找一些东西,所以用户希望能够快速方便地看到他们感兴趣的信息。因此,实用型应用程序的用户界面十分简洁,并提供简单的,标准的视图和控件。

实用型应用程序一般以平面列表的方式显示信息;用户通常不需要深入信息层次结构。实用型应用程序中的每一个视图通常都提供同样的数据组织结构和细节深度,但是数据来源可以不同。由此,用户可以打开单个实用型应用程序以对多个主题进行相似处理。一些实用型应用程序能显示打开的视图的数量;由此用户可以按顺序浏览,在一个视图后选择另一个视图。图1-3显示了这种类型的数据组织结构。


图 1-3  实用型应用程序通常在平面列表中显示数据


实用型应用程序的用户交互模型非常简单:用户打开程序浏览信息摘要,然后能够选择改变信息的设置或来源。实用型应用程序可能需要支持频繁修改设置和信息来源,所以它们通常在主视图的背面提供一小部分这样的选项。用户可以点击位于主视图右下角的,与信息按钮相似的按钮来查看主视图的背面。在调整完成之后,用户点击完成按钮即可返回主视图的正面。在实用型应用程序中,主视图背面的选项是应用程序功能的一部分,而不是用户设置一次以后就极少再用的一组偏好设置。因此,实用型应用程序不应该把特定设置放在设置应用程序中。图1-4显示了天气应用程序在主视图背面提供的配置选项。


图 1-4  用户可以在天气应用程序的背面进行调整


 


沉浸式应用程序

沉浸式应用程序提供具有丰富视觉效果的全屏环境,专注于内容和用户对内容的体验。用户通常使用沉浸式应用程序进行娱乐,不论是玩游戏,观看多媒体内容还是执行简单的任务。

虽然很容易发现游戏非常适合这种iPhone应用程序风格,但是您可以想象一下,沉浸式应用程序的特点也可以增加其他类型任务的吸引力。呈现一个独立环境,不显示大量的文字信息,需要用户注意力的任务就十分适合采用沉浸式应用程序。例如,一个应用程序模拟了使用气泡水平仪的体验,它在全屏环境下执行的很好,即使它不符合游戏的定义。在这类程序中,也像游戏中一样,用户的焦点在于视觉上的内容和体验,而非体验背后的数据。图1-5显示了沉浸式应用程序的例子,它模拟了实际的用户体验并执行了简单的任务。


图 1-5  沉浸式应用程序不一定是游戏


注意: 虽然横向显示的程序启动时主页按钮应处于屏幕的右边,但是图1-5中显示的水准仪程序启动时的方向恰恰相反。这保证了设备边缘的物理按钮不会干扰测量。关于启动的更多信息,请参考“启动”一节。

 


沉浸式应用程序通常隐藏设备的用户界面,代之以自定义用户界面,由此增强用户融入该应用程序的感觉。用户期望寻找和探索成为沉浸式应用程序体验的一部分,所以非标准控件显得更为适合。

虽然沉浸式应用程序运行时可能涉及到大量数据的处理,但是通常不显示这些数据,不让用户顺序查看或探究明细。而是将信息呈现在游戏内容中,如播放,故事或是体验。同样由于这个原因,沉浸式应用程序通常显示自定义导航方法以配合环境,而标准的,数据驱动的方法则用于实用型应用程序或效率型应用程序中。

沉浸式应用程序的用户交互模型由应用程序提供的体验决定。虽然它不像游戏一样需要在设置中提供程序特定配置,但是其他类型的沉浸式应用程序可能需要提供。沉浸式应用程序也可能在主视图背后提供配置选项。

 


选择一种应用程序风格

在了解效率型应用程序,实用型应用程序和沉浸式应用程序风格以后,考虑一下您的应用程序显示的信息类型和所能完成的任务。理论上来说,您应创建的应用程序类型已经十分明显,您可以开始动手开发了;但实际上并不总是那么简单。这里有一个假设的情景来帮助您做出决定。

如果您有一个想要关注的主题,考虑一下与其相关的对象和任务。想象一下人们对这一主题的不同理解。例如,拿棒球作为例子。棒球在众多事物中会让您想起,团队,游戏,统计,历史和球员等。因为棒球对于一个应用程序主题来说可能过于广泛,所以仅考虑球员。现在,想象一下如何创建一个与球员有关的应用程序,例如,采用他们棒球卡上的肖像。

您可以开发一个效率型应用程序来帮助认真的收藏家管理他们的棒球卡收藏。使用列表的格式,您可以在团队,球员和赛季的层次结构中显示卡片。在详细资料视图中,用户能够记录他们在哪里获得卡片,为卡片花费了多少钱,卡片当前的市场价值和卡片的副本数量。由于此应用程序的重点在于定义收藏的数据,所以用户界面简化了信息收集和添加的任务。

您也可以开发一个实用型应用程序来显示特定棒球卡片的当前市场价值。每一视图都看起来像一张棒球卡片,上面添加了它的当前价值,视图背面可以允许用户选择特定的卡片来追踪和显示。因为该应用程序的重点在于独立卡片上,所以用户界面强调卡片的外观并提供一个或两个控件以允许用户查找新卡片。

当然,您也可以开发一款游戏。游戏的重点可能在于用户对个别棒球卡片的某些统计知识或是识别知名卡片的能力。又或者,仅用棒球卡片作为另一类型游戏中的图标,比如滑动拼图游戏。在这些情况中,应用程序的重点均为棒球卡片的图像和游戏的玩法。用户界面通过显示某些棒球主题控件,隐藏iPhone OS用户界面的方式来满足这一点。

需要重申的是,不要局限于单个程序风格。您可能会发现不同程序风格的特点组合起来最符合您的程序目标。

如果有疑问,就简化问题。将功能列表减少到最小,并创建一个仅执行单个简单任务的程序(更多建议请参考“给出产品定义说明”。)当您看见人们如何使用并对应用程序作出响应时,您可以选择对应用程序重点做轻微修改或是更改呈现方式,由此创建应用程序的另一版本。或者,您可能发现对于同一概念有更多或更少的细节要求的版本需求。


当您有个现成的计算机应用程序时

如果您已有一个计算机应用程序,不要只是将其移植到iPhone OS上。iPhone OS设备的使用方法与台式计算机和笔记本电脑大不相同,用户对于用户体验的期望也不同。

记住,用户使用iPhone OS设备时通常处于移动,纷杂的环境中。这意味着用户希望打开您的程序时,能够轻松简单地使用,进而可以进行别的活动。如果您的应用程序要求用户在很长一段时间内集中注意力,那么如果您在将该应用程序转换为iPhone OS程序时,您需要重新考虑其结构和目的。

如果您的桌面应用程序能够执行复杂的任务或是一系列任务,那么您应该仔细观察用户是如何使用该应用程序的,以便找到当用户处于移动状态时希望应用程序能够完成的子任务。例如,支持项目调度,结算和费用报告的,面向企业的应用程序可以转换为显示项目的进度摘要的iPhone实用型应用程序,或是允许移动用户跟踪其业务相关开支的效率型应用程序。

当您考虑将您的桌面应用程序转换为iPhone应用程序时,应在设计应用程序时遵循80-20规则。最大比例用户(至少80%)将使用应用程序中非常有限的特性,仅一小部分用户(不大于20%)将使用所有的特性。因此,您应仔细考虑,您是否想让您的iPhone应用程序承载仅有少部分用户使用的强大特性。您应意识到桌面应用程序可能是能够提供那些特性的较好环境,同时,将您的iPhone应用程序的重点放在满足绝大部分用户需求的特性上通常来说是明智的选择。

 


案例研究:将桌面应用程序移植到iPhone OS

为了帮助您理解如何创建桌面应用程序的iPhone OS版本,本小节介绍了一些常见的Mac OS X应用程序和其对应的iPhone OS版本的一些设计差异。当您了解了每个应用程序中哪些特点和功能适合iPhone OS时候,那么,当您需要开发iPhone应用程序时,您就可以清楚明白所需要的设计方案。


邮件

邮件是Mac OS X中最明显的,广泛使用,且广受好评的应用程序。同时它也是功能非常强大的应用程序,允许用户撰写,收取,分类,存储邮件,跟踪行动项目和事件,创建笔记和邀请。邮件在一个多面板的窗口中提供大部分功能。这对于使用台式机电脑的用户来说十分方便,因为他们可以将一直邮件窗口留在显示屏上(或最小化到Dock)并在他们选择的任意时刻转到邮件窗口。图1-6显示了邮件查看窗口和撰写窗口提供的许多功能。


图 1-6  台式机上的邮件程序在两个窗口中提供了很多的强大功能


但是在人们处于移动状态时,他们需要一个更加简单,且能够快速完成其核心功能的邮件程序。因此,在iPhone OS的设备上的邮件应用程序致力于实现用户处理邮件的最关键事项:收取,撰写,发送和管理邮件。为此,用户界面被精简,使得用户的帐户和邮箱的结构更为清晰,并将用户的注意力集中在邮件上。

iPhone OS中的邮件应用程序是一个效率型应用程序的完美例子。为了便于内容导航,iPhone OS中的邮件应用程序利用了人们邮件中自然的层次结构,使用一连串的页面显示帐号,邮箱,邮件列表以及邮件内容。用户可以在列表中选择某一项,从一般(帐号列表)至特殊(一条信息)地进行深入了解,并查看与该项相关的事物。了解更多效率型应用程序风格的iPhone应用程序,请参考“效率型应用程序”

另外,iPhone OS中的邮件应用程序允许多种操作,比如创建和发送。这是通过显示几个可以被点击且用户熟悉的控件来实现的。图1-7显示了邮件应用程序如何使用户在iPhone OS中查看和发送邮件变得简单。注意每一屏上方的元素,它们让用户更轻松地了解到他们过去和当前在程序中所处的位置。


图 1-7  iPhone OS中的邮件应用程序使得查看和发送邮件变得简单



iPhoto

另一个从Mac OS X应用程序重构为iPhone OS程序的例子是iPhoto。在台式机上,iPhoto支持全面搜索和管理,具有强大的编辑能力以及富有创意的打印选项。当人们在他们的台式机或笔记本电脑上使用iPhoto时,他们希望能够查看和管理整个收藏集,对照片进行调整并且以各种方式来操纵照片。虽然iPhoto的重点是用户的内容,但是程序也在其窗口中提供了丰富的功能。图1-8显示了台式机上iPhoto的用户界面。


图 1-8  iPhoto用户界面


但是在用户处于移动状态时,他们没有时间来编辑图片(同时他们也不期望能够打印图片);而是希望能够快速浏览并分享他们的图片。

为了在iPhone OS设备上满足这一要求,苹果提供了照片应用程序。该程序能够显示图片并与其他用户分享图片。照片应用程序的用户界面完全以照片为核心;以至于实际设备的用户界面被部分隐藏。当用户选择以幻灯片形式查看图片时,照片应用程序将隐藏导航栏,工具栏甚至状态栏。当用户需要查看这些工具栏时,这些元素又以半透明状态显示出来。

照片应用程序使用层级结构使得用户可以来轻松地整理,查找照片:用户可以选择一个包含了一系列照片的相册,而后从相册中选择单张照片。按照这种方式,照片应用程序就是一个结合了效率型应用程序风格和沉浸式应用程序风格特性(了解更多有关这些风格的信息,见“三种应用程序风格”)的应用程序。图1-9显示了用户如何在照片应用程序中查看图片。


图 1-9  照片应用程序中的三个界面


另外,照片应用程序提供临时视图,称为动作表单(如“警告,动作表单以及模式视图”所述),从而让用户能够在不退出图片查看视图的情况下使用其他的功能。图1-10显示了照片应用程序如何为单张图片提供动作表单。


图 1-10  照片应用程序的动作表单


posted on 2011-05-25 16:49  一个人的天空@  阅读(349)  评论(0编辑  收藏  举报