说实话 这是开通本博文的第二篇文章。本博文主要是面对一些开发者以及我个人的总结。写文章之前说实话我并不是很想去写,我懒洋洋的躺在沙发上,本身的惰性让我不想动手写博文。我开始有些后悔 因为在我上周信誓旦旦的说按照《软技能:代码之外的生存指南》这本书做的时候, 我发现它是那么的难!我现在的心境宁愿去打开PS4玩一会儿战神, 因为它的确非常有趣。但是现在我还是来写这篇博文了 因为最终的意志主导了我的行动 。‘Think so it was’ 虽然我现在不是很清楚是谁说了这话 但是它的确非常有道理 你的未来跟你想法息息相关 我把也作为了自己的座右铭。而从更加科学的角度上讲这事的话就是你的意识群中的胜利者赢得了这次思维争夺战争从而主导人做某事,当然这些解释在《程序员的思维训练里》也有,我就不用多赘述了。
前面说了这么多废话的原因是你的思维习惯息息相关 而经常锻炼的思维才会在出现问题大脑进行思维争论时占据上风,我不清楚这是不是对持之以很或者习惯的一种更加科学的解释而不是靠什么意志这种抽象的东西(笑)。根据德雷福斯模型 这种思维的确非常重要我认为这也是让技术人员可以自我提升的一个重要途径 而不是没白没黑的加班 ,改可以不必要发生的bug, 每天都在重复一样的代码,掌握技能之前需要去了解非常重要。Material Design对于如今andriod来说已经是不可或缺的一部分,如今大部分app都遵循了md设计,因此我觉得总结一下md思想很重要,注意是总结 所有东西都来源于官方 他不是很长 你也可以不看我这博文去官方获取这完全可行。我想做的是总结一下这方面的东西 尽量以后运用的时候能够集中 就像德雷福斯模型那样高手总是会全局考虑问题 从而集中部分方面他们想要的(这里暂且先把高级新手 胜任者 专家 大师等都称为高手)
pong友 使用一两个md控件那不叫使用了md设计更不叫遵循md思想!
动画是我们再熟悉不过的元素 一个好的动画能让用户感到愉悦当然生硬的动画会让用户感到厌恶,这就像一个剧情跌宕的电影突然闯入一个毫无来源的角色强行煽情一样让观众感到尴尬。而在md设计中谷歌官方为了开发者提供了关于动画的一套基本原则。
1 关于动作的真实 触碰
如今大多数人都拥有手机 而用户通过屏幕控制手机称之为交互,谷歌官方认为过去我们在交互方面做得不够 或者说不真实 比如一个button,一个又大又丑跟老式键盘一样的按钮 相信没多少用户会专注于这种设计的app 。作为开发者来说你做得东西首先是面对用户的, 没有用户的app毫无价值 。 因此如何取悦用户是一个问题。
因此谷歌官方首先推出了一个很人性化的设计, 我们也可以称其为水波纹。 这种效果相信很多人看到过 它是一个动画, 这种触感反馈的真实促进了用户对于app的好感。
2 关于动作的真实 可信度
想象一下同样大小的气球和铅球哪个更重估计大家心知肚明,因此它们两在进行运动中速率也不是一样的 而进行的碰撞反馈也不会相同。 谷歌官方推荐开发者去观察你做得动画是不是可信的 其中最重要的两个元素就是体积和重量(Mass and Weight)。太重的东西会用很大的外力才会移动 而很轻的东西则可以轻轻一推就让其走很远。在我以前学做UE4 看视频教学的时候 那些大佬们就提醒过这点 你做的东西必须让用户感到真实可信 ,然后才会有进一步的接触这很重要。而谷歌官方也再次确认了这点 有个关于弹簧球的demo了解一下 这里说的就是关于重量和体积带来的碰撞反馈是有明显的不同。
3 关于反馈
谷歌官方称之为响应式交互,其实这个道理跟上面说的一样交互的体验不同则决定了app的的质量。一个有意义的转场动画会使这种相应变得让人感到愉快 一个从a到b页面的不同动画就可能决定了这种交互质量 我想谷歌之所以废弃了overridePendingTransition 这个api也是如此 因为它实在太生硬了 现在大部分都是用了ActivityOptions.makeSceneTransitionAnimation(XXX).toBundle()这种方法 引入转场动画当然还需要其他的步骤 比如你还需要定义一个过度文件explode 等 ,但是我写这方面的博文不会主讲这些 我认为认识整体之后再去扣细节才会更加得心应手。
同样一个响应式操作的元素是关于共享元素 通过添加android:transitionName 属性这让这种交互显得更加自然 反馈也会更好。这也就是官方所说的新入元素 淡出元素和通用元素 进一个新的模块之前应当对用户有一定的引导 直到用户形成使用app的一个行为习惯是很重要的,就跟我们玩游戏看到的一样作为新手 我并不愿意去接受太复杂的属性值 和所有武器招数 这让游戏看起来枯燥乏味,估计也没有哪个关卡设计师会进行这样的设计。同样的思想也用于app中,其中还有一个更加节省学习成本的方法就是模仿 这也就是为什么所有的im app的输入栏都在最下面 实际上如果哪个app设计到最上方进行输入会让用户觉得毫不习惯而对app缺乏好感 尽管它优化的真的非常不错。
终上所述,细节决定成败。md之所以成为了现在最流行的设计模式 是因为有很多不为人所知的细节在里面让用户潜意识觉得这很舒服。这篇写到这里我觉得有点长了,事实上我也没想到会这么长。我觉得看文章的你不要因此而觉得焦躁,千里之行始于足下更加了解md设计思想才能做出更好的app。
参考文章:Material Design 中文版 官方文档