正如最近一段时间,以 Instagram、Flipboard、Instapaper 为首的众多知名应用的 Android 版的亮相一样,一款应用在 iOS 上率先推出,获得巨大成功后,应用户的广泛要求移植到 Android 上,这仿佛已经成为一种定式。应用跨平台开发和移植本身并没有什么问题,但让人担忧的一个趋势是,很多开发者在将自己的 iOS 应用移植到 Android 时,并不会针对 Android 的特性进行优化,大多仅仅单纯照搬 iOS 的设计风格。
Android 不是 iOS,两个平台的工作方式是不同的,这是开发者应该意识到的。对于一位 Android 用户来说,这种偷懒的移植的问题其实并不在于其借用了 iOS 的界面风格,而是这种设计打乱了自己习以为常的 Android 操作方式。一个平台之所以有自己的一套设计规范,正是因为相似的应用环境能方便用户在不同应用间的使用习惯。在某一个平台上完美的设计在另一个平台上不一定合适。
当然, Android 设计规范的出现仅仅是几个月之前的事情,在此之前,Google 缺乏任何规范的自由主义让 Android 的开发者对于如何开发应用无所适从,许多人自然而然借鉴 iOS 设计风格的做法完全可以理解。在与许多开发者交流时,他们也表示,Android 与 iOS 对他们来说属于两个同质的平台。但随着 Android 4.0 ICS 的开始普及,以及本月底下一代 Android 系统 Jelly Bean 的即将亮相,应用如果继续延续“一个版本走遍全部平台”的想法,也许节省了时间,却可能逐渐疏远了用户。而像下面这样的设计更可能受到用户的喜爱。
那么,在 iOS 应用移植 Android 时,有哪些常见的误区呢?
分享功能
Android 最优秀的功能之一,就是来自于其 App Intent 机制的应用间数据分享功能。利用这个功能,任何一个应用都可以在系统中注册成为对应数据类型的处理对象,而一款应用也可以将不同的内容分享到其他应用中去进行处理,而无需开发者手动添加分享功能。
相比之下,iOS 每款应用都需要开发者为需要的服务单独进行预添加的分享功能显得非常笨拙,如果你常用的服务没有被集成进去,那么你就很不走运了。(曾经有传闻说 iOS 6 会增添类似 App Intent 的分享机制,但就目前公布的测试版来看,这一功能并没有包括在内。)在这一背景下,许多应用移植到 Android 后依然采用了 iOS 那样的分享机制的做法就显得有些买椟还珠。
应用选项卡的位置
iOS 应用一般都采用了底部放置操作选项卡栏的设计风格,但在 Android 平台上,由于屏幕下方有多个按键(虚拟键或实体键),同时 Android 界面参考规范中建议使用底部栏来进行常用操作的展示,因此选项卡栏放在底部并不是好的设计风格。
开发者可以考虑使用 Google 建议的顶部滚动选项卡、固定选项卡或是堆叠选项卡。
界面返回按钮
由于硬件上只有 Home 键,iOS 的使用习惯是在界面的左上角添加返回到应用上一层的功能按钮。对于 Android 来说则有所不同,ICS 及之前版本系统导航栏上的固定“返回键”起到了返回上一操作的功能,而 ICS 新增的“向上”按钮作用虽然与 iOS 类似,起到返回该应用上一层的功能,但在设计上却也应该尽量注意与 iOS 区分开,遵循 ICS 的风格。(题外话,ICS 的“返回”与“向上”两个按钮因为功能上有所重复,因此在开发者中造成了不少的混乱,目前并没有一个好的解决方案。)
其他界面元素
选择控件
iOS 单选开关一般都使用的是滑动式的控件风格,但在 Android 中,这种设计并不符合整体的风格,更常用的是下图这样的状态开关按钮。
系统元素与图标
对于一些常用的操作,如分享、设置、搜索等,Android 提供了标准的图标按钮参考,使用这些图标按钮可以让 Android 用户更加清楚的辨识出相应的功能。跨平台应用沿用 iOS 的图标的做法不值得鼓励。
内容列表的右剪头
在 iOS 上,列表项目的右侧会有一个右向的剪头,指示可以点击查看详情。但在 Android 上,这一界面元素并不常见,为了保持用户的平台一致性,也应该尽量避免这一界面元素。
上面提到的只是众多 iOS 移植应用中常见的几个问题,为了让自己的应用能够更加适合 Android 用户的使用习惯,开发者应该考虑加入如 Action Bar 等 Android 特色的界面元素。更多可以仔细参考 Google 发布的 Android 界面参考规范。
当然,这并不意味着一款应用必须严格的遵守这一界面规范,而实际上 Google 也并没有要求应用必须使用这种界面风格。但即使一款应用想采用具有自己独特个性特征的 UI 风格,熟悉各自平台的界面规范,扬长避短也是非常有必要的。