利用iOS技术特性打造最佳体验
定义方面的支持能力更强。所以,只有当设计方案涉及到相对复杂的图形变换、队列处理和即时合成等方面的需求时,核心图形技术框架才能真正体现出它的优势与价值。
核心动画(Core Animation)
核心动画向开发者们提供了一套用于创建和渲染动态交互效果的简单易行的解决方案。换句话说,这项技术可以让你的设计方案真正动起来。通过与UIKit的紧密配合,核心动画可以将界面交互对象与动画过渡效果进行完美地整合。
作为一种强大的技术工具,核心动画的能力范围是非常广泛的,它能使开发者在很多不同的层面上创建并控制交互对象的动画属性,而这对于设计师来说,则意味着能够实现的独特而高度定制化的动画效果的可能性几乎是无限的。
OpenGL ES
OpenGL ES与前面几项技术有所不同,它并非苹果所创造并独有的。OpenGL ES是面向嵌入式设备的OpenGL 3D图形应用程序接口(API),它必须与核心动画协同配合,完成2D或3D图形内容的渲染输出。
OpenGL ES可以通过硬件加速功能来渲染那些极端复杂的图形,所以这项技术通常被用来在游戏当中绘制那些需要进行即时渲染的3D图形。不过它的能力不限于此,通过与我们在前面了解到的那些技术的整合,它同样可以被用来渲染普通的元素,甚至还能以全3D的方式打造整个应用的界面环境。
是否有必要在应用的开发中使用这项技术,最终还是取决于设计方案所要求的视觉表现形式。对于那些没有必要通过硬件加速功能来即时快速渲染的2D或3D图形,其他技术同样可以胜任。不过,如果你希望借助强大而复杂的技术工具对那些具有实验性质的视觉交互形式进行探索和挖掘,那么OpenGL ES的强大能力将不会让你失望。
![](../img/eep/emb/emb-50694sema4wb2wrc.jpg)
界面外观的自定义
究竟有没有必要对应用的界面外观进行自定义?在打造设计方案的时候,我们通常会在这个问题上产生纠结。特别是在苹果刚刚推出应用商店的时候,这个问题显得尤其普遍与突出。为了能够尽快地将应用发布出去,以占领市场先机,产品决策者们宁愿放弃掉很多至关重要的设计流程,以达到压缩产品开发进度的目的。如今,从整个应用市场的角度来说,这种局面有所改善,人们再也不能忽视设计的重要性了,但是对于一些刚刚试水iOS应用的团队来说,类似的问题依然存在。
很多公司和产品团队总是无法意识到高度定制化的界面外观对于一款应用产品的重要价值。其实道理很简单,如果只使用SDK(开发工具包)提供的默认控件来构筑用户界面,你的应用就会完全处于iOS原生的视觉识别体系当中,在用户体验方面也无法超越苹果制定的范围框架。虽然从本质上讲,这并不是一件坏事,但这种方式显然无法将具有品牌特色的用户体验效应整合到产品当中;无论是视觉表现形式还是交互方式,都难以满足用户对于差异化的渴望。
抛开产品策略方面的因素,界面外观的自定义工作在技术层面不存在任何障碍。正如我们在前文中看到的,苹果在这方面有针对性的为开发者们提供了很多强大的图形技术。从某种程度上说,这项工作本应该成为整个设计开发流程中的一个重要且必要的组成部分。
![](../img/eep/emb/emb-50695ppsg32awm3p.jpg)
有一点需要说明的是,界面外观自定义的设计原则并非是泾渭分明的,实际上你确实不需要对所有的界面组成要素都进行定制化的处理,在很多情况下,使用SDK提供的原生控件反而更加合理。作为设计师,你要做的就是处理好原生控件与自定义样式之间的关系,将它们协调的整合在一起,确保用户不会对这两类元素产生彼此孤立与分化的感知。
除了使用新的图形样式对各种常规界面元素的外观进行自定义之外,你还可以创造出全新类型的的界面交互对象,并为它们赋予独特的交互方式。不过,对于这种明显超出了“换肤”范畴的做法,苹果在用户界面设计规范当中所体现出的态度并不是具有鼓励性的,因为全新类型的交互对象会对用户的认知造成很大的障碍。作为规范,持有相对谨慎的态度是合乎情理的,不过这种具有极高创新性质的做法究竟能否成功,在很大程度上还取决于设计方案本身。过于隐晦的表现形式必然会使用户产生迷惑与挫败的感觉,无论它看上去有多酷;而简单直白、易于理解的方案则具有相当高的可行性。
通用型应用
在过去的几年中,iOS设备种类及规格的扩大发展为应用设计师与开发者带来了不少挑战。从前,我们只需要为一种设备规格打造设计方案;随着iPad的到来,事情开始变得复杂起来,我们必须针对新设备的特性考虑另外一个版本的设计方案。而开发团队也面临着同样的问题,他们必须同时开发和维护两个版本的应用,工作量几乎翻倍。
不久之前,通用型应用的概念出现在了应用商店
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)