为什么iOS应用比Android应用更好看(图)

标签:移动应用

访客:16846  发表于:2012-05-08 14:37:34

大部分用户可能都认为,智能手机应用软件的设计工作很单纯,它与平台无关,无论在iOS上或Android上都一样。但事实上,在兼营这两个平台的开发者们看来,在iOS上设计一款界面精美细致的应用要更容易。美国在线旅游公司Hipmunk的UI设计师、iOS开发者达尼洛·坎波斯(Danilo Campos)为我们进行了概括:“最简单的答案就是:在iOS上做个好看而吸引人的应用要比在安卓上容易不少。”

先看看他得出上述结论的原因吧。

首先,Android设备的“碎片化”是个大问题。在iOS平台上写代码时,开发者们只需要处理很有限的屏幕分辨率参数和硬件配置,毕竟iPhone和iPad就那么几款;而现在市面上的安卓机型恐怕没人能数得清,这就导致开发者们要兼顾大量的设备参数。“Android设备有各种外形、大小、屏幕分辨率和处理速度——这就给我们造成了巨大的困难,”Karma App公司的联合创始人李·林登(Lee Linden)告诉《连线》网站,“我们需要对差不多20款拥有不同分辨率和CPU的机型进行测试,这的确会大大拖慢开发进度。”

坎波斯说:“在那些高分辨率的Android设备上,图案看上去会很赞,然而我们在一些老机型上进行测试,结果却惨不忍睹。”遇到这种情况,开发者们就只能重新构思设计元素并且考虑更改程序代码。

再举个例子,Hipmunk公司在为安桌平台设计图案时必须准备三套方案:老式机型用一倍大小的;高分辨率的新机型用两倍大小的;还有一套奇怪的 1.5倍大小图案给其它设备使用。不过有些开发者会放弃为那些特殊机型设计图案,后果就是那些机型的使用者没有好的用户体验。

的确,移动应用开发必须以极快的速度进行,那些应用开发团队往往很小,资金也不足,如果要在每一个设计元素上都花费额外的时间,那就意味着在其它方面的创新时间减少。以上种种原因都导致Android应用开发者们制作的应用没有那么美观。

另外,Android领域的开发工具和开发文档也略显不足。苹果已经在开发者支持上进行了20多年的改进,在软件开发包和用户界面指引上几乎已臻完美,而谷歌在这方面才刚刚起步。因此,对比Android,iOS平台的开发者就有了更多工具去进行有趣而独一无二的设计。

“如果我的手上有更多官方与第三方技术文档,那么在开发时就会更顺畅。”坎波斯这样描述自己的iOS开发工作。但放在安卓平台的开发上,事情就不是这么简单了。“很令人心烦的就是在开发时会遇到许多未被明确说明的东西,”坎波斯说,“我们的Android开发员莱恩必须去深入阅读源代码,才能明白一些未被标明的XML格式化部分,这简直让他求死不能。”

一些经过仔细设计的产品特性也更容易应用到iOS应用中,因为iOS有着各种各样的API接口和函数库。“在安卓平台上很难实现一些好看的触摸动作, 比如转场效果(transitions )和圆角(rounded corners)。”Trulia公司的产品经理史蒂夫·雅各(Steve Yarger)说。

林登也对这一点表示赞同:“iOS平台的确让手势转场效果变得更容易实现,UI中元素的渐现、渐隐和滑动都开放给开发者使用,而且在每个iOS设备上这些动作都是一致的。但安卓平台上有许多不同的框架,这就让你无法知道什么东西可以通用于所有设备。”

当然,谷歌也不会对这种情况坐视不理,在推出了Android 4.0版(冰淇淋三明治)之后,谷歌在Google+上建立了安卓开发者页面,并且开设了Android训练课堂。现在谷歌也建立起了完备的安卓设计指引,这让开发者们更容易进行整个设计工作。但是,Android设备的“碎片化”仍未解决,目前只有不到3%的Android设备运行着4.0系统。

不过在iOS平台上也不是什么都好,尽管iOS让高精度设计更为容易,但是Android则给予了开发者更多的自由。“在安卓上,只要你愿意花时间, 你可以做到你想做的一切,”雅各说,“苹果给开发者的约束很多,但这就是交易,用较少的开发自由来换得让应用更好看的开发工具。”

雅各为我们进行了总结:“如果你只想设计一个好看而合格的应用,在iOS平台上更为简单;苹果已经创造的‘生态系统’就是用来进行这样的工作。”

左图是Hipmunk的iOS应用,界面中的功能按钮都能放在屏幕边角上,但在右图的安卓应用中就很难将它们放到合适的位置。

左边是房地产搜索引擎Trulia的iOS版应用,其中有细节、照片、地图等标签,但在右边的安卓版应用上就没有了这样明确的分类。

Karma公司的iOS应用(左)和安卓应用(右)看上去很相似,但是后者的开发花费的时间要多得多。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");