从软件工程师的角度看MacBook Air的几个设计亮点
我多年从事软件开发和运营工作,从未跟“设计”间断过。现在在设计一个全新saas产品:超级表格(www.domypp.com)。最近买了台苹果最新款的笔记本电脑MacBook Air,从该产品功能设计和用户体验得到很深的体会。我想,软件设计不应该这样吗?
先说说第一印象。
刚刚打开MacBook Air的包装,打开精致的包装盒,取出了小巧玲珑的MacBook Air。我开始想从现在起我需要花多长时间琢磨才能“开始”使用这台电脑。打开翻盖,一眼看到右上角的电源按钮,按下(会不会需要先充电?我想如果需要先充电,就扣分)。没有失望,一按,即刻启动Mac了。几秒后要求给本机器配置一个机器名称,我输入了姓名。OK。
几秒后,屏幕提示找到了屋里的无线网络(这是我熟悉的家里无线路由器的名称,熟悉!),提示输入网络密钥。输入。
几秒后,MacBook Air桌面出现了。可以正常使用了。我接着一眼看到底部的浏览器safari,打开,输入一个网址。成功!
好!对于我这样一个以网络为生的人来说,能上网就意味着可以正常工作了。
这样算来,我没有遭遇任何障碍,第一次使用花了几十秒时间就如此顺利使用该产品,打10分。
什么启发呢?如果我设计软件让用户第一次使用就能顺利完成,用户的感受会非常好。让用户产生挫折感的软件就是让设计失败的软件。曾经,我们公司的同事开玩笑说,要是软件安装太简单了,会让用户觉得软件太低档了而不值钱。也许在某些情况下,这是必要的营销措施。但从用户体验上说,在这个用户体验至上的网络时代,要时刻记着“用户体验”!
下面是我感受比较深的其它的设计点。
立即有效的功能键设计。
键盘上第一排键是功能键。功能键除了标上F1-F12,还有形象图形,让人一看就知道是做什么的。
F1是减少屏幕亮度的
F2是增加屏幕亮度的
F9是开启/关闭声音的
F10是减少音量的
F11是增加音量的
这些按钮一按就生效。好!
什么?这有啥好说的?
再回头看看我们熟悉的Windows的功能键:
F1是用来打开帮助系统的:有多少人真真需要这个功能键?还经常不小心了按了这个键打开了帮助系统。
开启/关闭声音功能键:你按下会生效吗?不会!为什么?因为你还需要同时按下左下方的“Fn”功能键才行。
看看一点区别:
Mac Air:无需同时按“Fn”键;
Windows:需要同时按“Fn”键。
就这点区别,让我这个用了十几年Windows的人都觉得Mac设计的更人性化,体验更好。
待机时间30天,使用时间5小时。
这点是我最看重的一点。对于笔记本,电池续航能力实在重要。只不过大多数笔记本续航时间都不好,只好习惯了。现在能享受这么长的续航时间,才知道什么是好。夸张地说,100个新功能都不比续航时间长重要。
暂时用完电脑直接合上翻盖即瞬间进入休眠状态,打开翻盖又瞬间恢复原来的桌面。什么是瞬间?1-2秒!再看看Windows的休眠和恢复时间吧,至少30秒吧?
什么启发呢?
设计软件时,有时很难平衡功能、性能、用户体验之间的关系。想想刚才提到的Mac Air的设计,就知道应该这样:
1 抓住用户体验最重要的功能或者性能的一、二点,做到极致,比多做很多功能都重要;
2 不要习惯于过去的、大众的作法。没用过Mac还以为Windows有多好。用了Mac Air才知道原来还有更好的。
继续说。
第一次准备给Mac插上电源。找出电源线,一边插到电源插座上(常规,没什么),另一头是要插到Mac上。我拿着接头找到Mac的电源插口,刚接近,“咔嚓”一小声!
怎么啦,插头对上了!原来是电源插口有磁性把电源线的插头吸进去了。
这是我最崩溃的体验了。哈哈,设计得太给力了。平时习惯了在众多插口中寻找电源插口并且小心对准插入的情景,突然被这么人性化地“服务”了一把,心中喜悦无与伦比啊。
又是“用户体验”!
下面也是一些MacBook Air带来的惊喜:
体重2斤多吧,是我见过的最轻的笔记本。
最薄,超乎想象的薄!
应该像设计MacBook Air一样设计超级表格。
从软件工程师的角度看MacBook Air的几个设计亮点的更多相关文章
- 苹果MacBook Air安装win7
同事的一台mba,说iOS不习惯,希望装一个win7系统.机器看上去很小巧精致,运行iOS速度飞快.试着点了下鼠标,没反应,翻过来看了下,有个电源开关.拨了一下,细小的指示灯闪了闪,应该加上电了.唉, ...
- 在MacBook Air 上装Win10的,反反复复的失败过程。
这个月初,一个女性朋友托我帮她装电脑,往MacBook Air上面装Windows 系统,原因是windows用的习惯,用起来顺手.然后用脚趾头考虑了一下,就一口答应下来了.难道这就是一个标准程序员的 ...
- 2014款Macbook Air安装单独X64 Win7系统
之所以写出来,是因为网上大多是用BootCamp安装双系统的,安装单独Win7的教程少之又少,然后大多数还写得不清不楚,所以折腾了一阵子.其实装好之后,还是觉得挺简单的. 我主要参考了两篇文章,链接如 ...
- 另一个角度看元宇宙与RPA:人工世界、平行员工与RPA
另一个角度看元宇宙与RPA:人工世界.平行员工与RPA 从元宇宙到平行员工,人工世界推动的虚实分工利好RPA 机器人是铁打营盘人类是流水兵,未来元宇宙的虚实分工RPA机会巨大 文/王吉伟 元宇宙是平行 ...
- 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业
相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者” 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...
- 1、软件工程师要阅读的书籍 - IT软件人员书籍系列文章
软件工程师要阅读的书籍估计是项目组内最多的.软件工程师处于项目组中最基础的人员储备阶层,与项目的关系最密切.当然,现在是大数据时代,我们无法全部看完所有相关的书籍,只能够先学习工作需要的知识,然后在项 ...
- [No00004D]深度思考好文:软件工程师的困境
昨天是我一同学结婚的好日子,同学们大家聊各自的工作,有个同学突然问了我一句:我们同学中好像做软件的不多?如果再细分,好像做网络相关的更少? 回想起当时为何读计算机信息管理的专业,是因为那时听说读电脑未 ...
- 纯CSS打造银色MacBook Air(完整版)
上一篇:<selection伪元素小解> ::selection{ background:blue; color:red; }p{font-size:14px;} 作者主页:myvin 博 ...
- transition、animation在macbook air上图片动画边缘抖动
示例: BUG描述: 最近同事一项目中,产品提出在macbook air上,列表图片放大效果边缘出现抖动现象.在retina屏上没有此问题. 调试过程: 1.单独把结构分离.确定是否由其他元素引起. ...
随机推荐
- Spring学习笔记(三)—— 使用注解配置spring
一.使用步骤 1.1 导包 1.2 为主配置文件引入新的命名空间(约束) 在applicationContext.xml中引入context约束 1.3 编写相关的类 public class Use ...
- Moving docker images location to different partition
By default docker will put all the data including images under /var/lib/docker(At least on Debian). ...
- UVA_11624 Fire! 【BFS】
一.题面 略 二.题意分析 一个迷宫中,有一个人Joe和一个或多个起火点,起火点可以蔓延,人可以走动,都只能走4个方向,问人能走出去的最少步数,如果不能输出不可能.很多大佬说是两遍BFS,先一遍火,记 ...
- POJ1064 Cable master 【二分找最大值】
题目:题目太长了! https://vjudge.net/problem/POJ-1064 题意分析:给了你N根长度为小数形式的棍子,再给出了你需要分的棍子的数量K,但要求你这K根棍子的长度必须是一样 ...
- P4890 Never·island
传送门 考虑把总区间长度减去最多能减少的区间长度 把所有区间离散化,对每一小段计算贡献 分类讨论一波,对于边界 $i,i+1$ ,设它们之间距离 $d$,$i$ 属于 $x$ 考察队的边界,$i+1$ ...
- codeforces833B The Bakery
题面传送门 题目大意:将一个长度为n的序列分为k段,使得总价值最大,一段区间的价值表示为区间内不同数字的个数 思路: 显然的dp. 先想到一个朴素的状态转移方程 $dp[i][k]=max(dp[j] ...
- window7下karma 报 The header content contains invalid characters BUG
打开你的依赖node_modules\karma\node_modules\connect\lib\patch.js 将里面的setHeader方法改成下面这样,干掉序列化日期时出现的中文 res.s ...
- 计算机插U盘没用了
今天遇到一个神奇的状况,我想把台机上面的文件通过U盘拷贝到我的笔记本上.文件拷到U盘上没问题,然后把U盘插到笔记本上,一点反应都没有.我想了下,这U盘肯定没坏.然后我笔记本又是新买没多久,一直爱护有加 ...
- 使用PHP并发执行任务–curl_multi应用
使用PHP并发执行任务–curl_multi应用 原网址:http://lampblog.org/category/phpdev
- 转帖 JS的基础语法
1.变量 1)变量是用来存储信息的容器. 2)在javascript中使用var 运算符(variable 的缩写)加变量名定义的. varx = 10; vary = 10.1; varz = “H ...