作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
有多少人同时使用iOS和安卓设备 同时? 官方数据显示 本研究 范围在10%到20%之间,但这个数字也包括Mac用户,而不仅仅是手机用户. 实际上,人们倾向于在一段时间内只使用一部手机或平板电脑. 如果他们碰巧使用两个设备,通常情况下,两者都将运行相同的操作系统.
这意味着没有必要制造 像素级 复制应用程序的UI设计, 试图同时适应这两个平台, 完成数十种不同的屏幕尺寸, 高宽比, 还有决心(我们就不提等级了), 状态栏, 导航栏, 硬件按钮, 等.).
正相反, 即使用户同时在iOS和安卓上查看同一款应用, 很有可能他们更愿意体验两种本土的感觉. 这就是为什么许多项目经理和产品所有者在移动开发中采用的方法往往不是最优的,需要进行微调.
但是,为什么利益相关者和管理者仍然经常做出降低用户体验的决定呢, 从而破坏了他们自己的产品? 这在本世纪初是可以理解的,当时所有人都还在摸索iOS和 安卓开发然而,这个恼人的问题一直存在到今天.
出现这种情况的主要原因可能是项目经理和手机开发者担心,如果他们的用户在另一个平台上看到同样的应用,他们可能会感到困惑, 并意识到它不能提供完全相同的感觉和UI. 在某种程度上说,这是公平的, 这种思路是有道理的, 因为某种程度的相似是必要的,也是受欢迎的. 然而, 做得太过火了, 在极端情况下, 针对不同平台制作完全复制的应用其实弊大于利.
最终的目标应该是达到正确的平衡——不要强迫像素完美的一致性, but stick to common design ideas and keep the navigation map of your app similar for both platforms; provide the same features and the same workflow, 但是尽可能坚持自己的行为.
每个人都喜欢自定义按钮或花哨的动画, 但是原生元素是人们习惯的,并且使用起来更容易、更直观.
为了找到一个好的方法来解决这个困境, 我们应该从终端用户开始. 研究告诉我们,安卓和iPhone用户是非常不同的人群,如果我们瞄准最佳用户体验, 我们应该试着了解他们的使用模式.
从平均预算开始,人们决定每月花在技术上 (iPhone: 100美元.88、安卓: 50美元.83)超过了他们每天自拍的数量 iPhone: 12, 安卓: 7 然后看他们每天发的短信 iPhone: 57, 安卓: 26, 很容易看出差异是巨大的, 以至于我们可以得出结论,在行为上存在分歧, 是什么驱动了人们使用电子设备的方式.
那么,在同时为两个平台设计应用程序时,我们应该关注什么呢?
首先,尽可能使用本地元素. 即使您使用的是跨平台框架, most of the components are based on pure native views; so unless you really need something custom—stick to the basics. 人们喜欢使用他们习惯的东西,您将为更重要的功能节省一些开发时间 (以及代码审查)!).
自定义视图绝对能给你的应用带来个性和独特性, 只要它们保持相同的一般想法和使用感觉就像通用的一样-太少了,你的应用就会很无聊, 太多的话,就会显得不必要的浮华和难以使用.
有时, 即使是一个小小的改动,一个稍微不同的自定义视图都可以改变你的应用, 但是如果你用新元素填充所有屏幕供用户探索, 在寻找重要信息时,他们可能会不知所措,迷失方向. 这些小改动被称为“润色”并非巧合!”
根据经验,每个平台都有自己的设计准则. 安卓的一系列方法正在向前迈进 材料设计,而苹果相信 人机界面设计. 进入我们在规划设计时应该考虑的特定组件, 有几个主要部分需要关注:
总体风格: 除非我们谈论的是跨平台应用, 我们应该考虑遵循每个平台的通用风格指导方针. 总的来说,iOS的设计趋向于平面化,而安卓则采用更分层的方法.
从历史上说, 十多年来,移动平台一直在相互影响, 你可以很容易地在iOS中发现一些安卓概念,反之亦然. 例如,当指纹传感器开始出现在移动领域时,制造商(现在依然如此)试验传感器的大小和位置, 尽量让尽可能多的用户感到舒适. 同时, 设计师和开发人员也在适应这个新功能, 所以最后, 两个平台的视觉元素和反馈基本相同(除了一些特殊的方法)。.
硬件细节和导航模式: 这可能是直接克隆应用最显著的负面影响之一. 大多数安卓设备仍然有一个额外的导航条(无论是硬件还是软件在不同的设备上)。, 包括后退按钮. 因为iOS不提供这个功能, 应用程序必须考虑何时何地提供后退按钮, 通常在每个屏幕的左上角.
菜单按钮(本例中的方形按钮)还可以为安卓应用程序提供额外的功能. 这有什么关系呢?? 例如,当打开设置菜单或类似的导航功能时.
直到最近, iphone也采用了苹果传统的Home键, 但自从iPhone X推出以来, 它已经被边缘化,iOS的流程现在是基于手势的. 如果滑动是应用程序的重要部分, 确保在应用容器的边缘和滑动区域之间留出足够的缓冲,以避免棘手的滑动巧合.
如果您的应用程序依赖于硬件特定的功能,如蓝牙, NFC, 或者有线耳机, 您应该始终考虑所支持的不同硬件规格的范围. 当用户尝试与特定功能进行交互时,尝试向他们提供适当的反馈. 如果出于某种原因,您需要仅为两个平台中的一个提供特定于硬件的功能, 确保告知用户其中的区别.
全局元素 (状态栏、标题等.):出现在设计的所有页面上的组件, 比如状态栏, 导航页眉等等, 应该严格地以传递一种本土的感觉为目标吗, 所以我们不应该改变这些栏杆的高度和样式. 在这两个平台上,全局元素的样式略有不同. 例如,安卓使用左对齐的文本,而iOS使用居中的标题. 状态栏是一个本地组件,所以你不需要担心它, 但在规划应用的顶部部分时,请记住不同的缺口和屏幕长宽比.
导航: 谷歌优秀的材料设计指南建议在安卓应用程序中使用抽屉菜单导航, 底部导航在后面, 但仍然是一个可行的选择. iOS倾向于只使用标签栏, 这可能会限制您的顶层导航选项,但同时提供所有选项的清晰视图. 在这种情况下, 这两个操作系统都提供了类似的组件,可以根据应用程序的复杂程度来使用, 但是两种系统的视觉差异自然会引导你——例如, 安卓的全局导航栏以及iOS的缺失.
近年来,移动硬件的快速发展带来了许多变数和未知因素:全屏手机, 不同形状和大小的凹槽, 增加了手势在设备范围内导航等方面的使用. 所有这些变化为用户提供了前所未有的能力,但当我们试图找出应用程序中给定屏幕的所有用例时,这可能是一种痛苦. 考虑到这些问题, 避免用户混淆的一个好方法是保持导航模式的简单和一致, 不要让太多的手势使应用程序过载, 酒吧, 以及多向滑动选项.
排版: 两个平台都有自己的默认字体-旧金山 适用于iOS和 Roboto 为安卓. 除非你想使用自定义字体, 与你的一般应用风格紧密匹配, 您应该坚持默认设置. 请记住,用户可能会更改他们的默认系统字体,这不会影响您使用特定字体自定义的任何视图.
例如, 如果有阅读障碍的用户用一种特别满足他们需求的字体替换了默认字体,他们可能不会在你的应用中度过最好的时光. 如果您支持的用户可能使用非拉丁字体(如西里尔字体、阿拉伯字体等).),确保您的自定义字体也提供了这些额外的字符. 如果你喜欢游戏, 你可能会在排行榜上看到俄罗斯玩家的高分,他们的名字因为不同的字体而引人注目. 这只是在开发阶段犯的一个小错误, 不是针对特定玩家的“功能”, 虽然它可能不会让用户抛弃你的应用, 它肯定会导致用户体验下降,或者导致投诉或差评.
其他组件: 按钮, 屏幕转换, 动画, micro-interactions, 动作表, 警报, 所有其他类型的流控制都超出了本文的讨论范围, 但它们应该遵循我们迄今为止应用于其他设计元素的一般原则,这两个平台都不鼓励过多的自定义元素, as they might distract and confuse the user; when it comes to design, 对许多用户来说,第一印象通常是最后的,这就是为什么从一开始就吸引用户的注意力是如此重要, 让他们感到宾至如归, 可以这么说.
在现实世界中, 你可以看到一些非常流行的例外——ios应用程序遵循材料设计准则,而一些安卓产品遵循苹果的人机界面准则, 但这些应用程序都有自己的特点, 证明风格. 用户熟悉这些应用程序及其设计, 对他们来说, 提供一种稍微定制的感觉是有意义的.
另一方面,如果你的项目是基于跨平台的解决方案(比如 反应本地, Flutter, Xamarin等.),你应该考虑你想要关注的主要平台是什么,并从那里开始.
近年来, 这些新框架极大地提高了跨平台应用程序开发的生产力. 越来越多的公司正在转向这种开发模式, 因为它提供了更短的上市时间, 优越的性价比, 更少的技术壁垒, 主要缺点是功能支持有限,在某些情况下用户体验不够理想.
事实上,所有跨平台开发的旧解决方案都是基于web视图,因此在许多设备上都遇到了严重的响应问题, 现在我们甚至可以在跨平台方法中使用本地组件. 这一重大改进在许多方面影响了市场,并使所有移动平台朝着统一不同设备和平台的用户视觉体验迈进了一步.
如果你决定采用跨平台的解决方案, 你可以像在一个标准的原生应用中一样,通过构建应用的框架来开始. 一旦设置好了主要的优先级并开始运行(设置基本依赖项), 打造MVP, 达到特定于项目的里程碑, 发布你的第一个版本, 等.), 您可以轻松地将这两个应用程序的主要设计分开, 使用每个框架提供的特定于平台的工具. 这取决于你的团队规模和可用的时间框架, 您甚至可以考虑在版本1中包含这些调整, 只是为了避免将来在给定平台版本中出现不一样的情况时产生混淆.
总之,你应该评估哪些原则对你的应用是有效的. 就像我们这个行业里几乎所有的努力一样, 你应该试着遵循指导方针, 同时稍微调整一下以适应你的具体需求. 例如, 如果抽屉导航对于简单的五屏应用来说是有意义的, 这样你就不需要为每个平台想出复杂的解决方案. 让用户能够很容易地识别你的自定义按钮和工具, 无论它们是关键组件还是小定制.
总结, 我们可以重复一些我们已经知道的东西——好的设计是在每个操作系统中尊重用户习惯的设计. 最后稍作润色可能就会让应用区别于普通应用和优秀应用.
很多时候,你的应用并不能提供足够的独特功能去赢得用户. 大多数人会用“直觉”来描述他们选择一种产品而不是另一种产品的决定.“这类用户的选择主要基于他们如何 感觉 当使用应用程序时,通过隐式评估响应性, 一般风格选择, 调色板和他们在屏幕上看到的单个视觉组件.
因此, 尽量确保你的产品脱颖而出,不仅凭借其惊人的功能,而且与高档包装相匹配,它提供的服务质量.
这是个人喜好的问题. 一些用户更喜欢苹果功能的简洁, 其他人则欣赏安卓的定制选项和个性化定制体验.
安卓主要是用Java(和Kotlin)开发的。, 而且由于它是一种更流行的语言,有人可能会说安卓更容易开发. 最重要的是,Play Store比App Store更容易使用. 另外,它是免费的.
两者的开发过程非常相似(如果不是完全相同的话)。, 但是除了日常生活中使用的语言和环境, 我们可以说,安卓更容易上手,可以在更多设备上进行开发.
It really depends on what the project is aiming to do; you might get different answers if you ask different people, 但是过多的选择只意味着这个领域正朝着一个好的方向发展.
目前,跨平台框架领域有几个主要的竞争对手. 所有这些平台都有不同的优点和缺点需要讨论,但反应本地似乎是一个结合了最重要因素的平台——良好的性能和活跃的社区.
世界级的文章,每周发一次.
世界级的文章,每周发一次.