Jeff Atwood质疑iPhone的单键设计

2023-10-29

我喜欢使用iPhone,但我对它的一个设计不敢苟同:苹果始终坚持,设备的正面永远只能有一个按键。


我还买了一个Kindle Fire,它更离谱,一个按键都没有!我完全赞成,任何小器具的正面都应该在明显的位置上至少有一个“耶稣把手”一样的按键。让我好奇的是:为什么亚马逊决定不为Kindle Fire设计任何按键,而其他型号的Kindle设备都有一个“Home”键?亚马逊常把设备的第一代产品做得比较粗糙,这是有前科的。我相信他们会在后续的1~2代之内把“Home”键加回来。不过,这东西才卖199美元,我愿意为他们的疏忽买单。至少在眼下,总体上来说我对它还是认可的。

“耶稣把手”的英文是“Jesus Handle”,原指汽车车窗上方的把手,一般是在车速很快或道路颠簸的时候供乘客抓取以保持平衡的,看起来像在祈求耶稣的保佑,因此得名。口语中也常称作为“oh shit handle”,因为人们在这种情况下常常会脱口骂出“oh shit!”——译者注


甚至苹果也做过没有任何按键的设备,比如第3代的iPod Shuffle。你必须在耳机上双击或连按3次才能完成像跳到下一首歌这样基本的功能。顺便说一下,这也意味着你的老耳机都没用了,至少跟这款iPod是不兼容的。还好,第4代的iPod Shuffle迅速纠正了这个错误,物理按键重新回归到了设备上。第5代设备采用了触摸控制——这是意料之中的。


微软也好不到哪里去!Xbox 360的无线麦克风有时让我纠结不已。(要不然,这玩意儿就太棒了!)它只有一个电源开关和一些指示灯。


应该承认,这款麦克风的大部分功能都挺好用的,拿起来就可以唱(尽管我五音不全)。但是我也得承认,每次让它与Xbox同步的时候,我都有点不知所措,它让我很费解……微软发布了一篇在线说明文档:“How to set up and use your Xbox 360 Wireless Microphone”(如何设置并使用Xbox 360无线耳机)。你去看看,这能怪我吗?

当你打开麦克风时,内置的指示灯会闪烁,以表示麦克风当前的状态,如下:

·       电源接通:绿灯闪烁,频率为每秒一次;

·       连接中:绿灯闪烁,频率为每秒4次;

·       连接完成:蓝灯闪烁,然后停止。

当电池电量不足时,内置的指示灯会闪烁,以表示电池充电的状态,如下:

·       电量低:琥珀色的灯闪烁,频率为每3秒一次;

·       电量临界点:琥珀色的灯闪烁,频率为每秒一次;

当你的麦克风超出了Xbox能够接收到无线信号的范围,绿灯会每秒闪一次。如果有些游戏支持的话,这些指示灯还能一起变换颜色。

如果我们都能赞成“没有任何按键是一个糟糕的设计”,我觉得“单键设计是有问题的”也便顺理成章了。我在使用iPhone的单键时碰到了麻烦,就像使用苹果的单键鼠标一样——可能在一开始觉得还行,但久而久之,就会造成功能的“过载”,甚至达到荒诞可笑的地步。让我们来看一看Andrew Durdin为iPhone的“Home”键画的功能示意图——单单一个按键要控制多少东西啊!


iPhone只有一个“Home”键。哇,太方便了!你可以这么用它:

  • 单击;
  • 双击;
  • 连按三次;
  • 单击并按住;
  • 单击,等一下,再单击。

当然,所有这些操作在不同的场景下都有不同的功能。值得一提的是,我特别喜欢通过双击调出活跃应用的列表,但我常常误操作,结果却进入了主页面。我在iPhone上装了非常非常多的应用,以致于我不得不通过搜索来导航。也就是说,我很依赖搜索,但为了调出搜索页面,我必须先单击进入默认的主页面,等一下,再单击。有时候我按的时间太长了,被系统识别为“单击并按住”操作,结果调出了语音搜索服务……我对它可一点都不感冒!

本文写成于20122月。时至今日,苹果公司已经在iOS 7里改进了调出搜索框的操作方式。——译者注

我现在都害怕使用iPhone的“Home”键了,因为它“让我思考”。我很多时候都在误操作。事情本不应该是这样的!

读到这,你可能想我会“弃暗投明”,转投WindowsPhone或Android的阵营,并且直指它们的高明之处。我不敢肯定它们是否真的高明。事实上,它们都有自家难念的经。


如果设备只有一个按键,那个按键应该发挥什么作用最起码还是清楚的,是吧?也许吧!但也未必……(请回过去再看一眼iPhone的“Home”键的功能示意图。)

但有一点我是认可的:像网络浏览器一样,Android和WindowsPhone上都明显地标出了“后退”键。我很多时候都拿iPhone来上网。互联网之所以强大,主要还是因为它的简单易用:内容陈列得清清楚楚供用户点击,还有一个大大的像汽车喇叭一样的“回退”按钮,很明显地摆在那里,让你深入通幽曲径也永不迷失;一切都是那么有条理。没错,浏览器也有一个“Home”按钮,但最新版的Chrome,Firefox和IE无一例外地把它边缘化了,转而极大地突出了“后退”按钮。尽管我尚且认为,不是所有的手机应用都应该迎合互联网的行为方式,但互联网正越来越变成为一个善意的应用平台。“后退”按钮是一种用户界面范式,它对Web应用发挥着“清道夫”的作用。我强烈支持把它做成设备的一个硬键。

然而,一旦设备上有3个按键时,人们就又开始踌躇了。我按的键对吗?出现这种情况就不妙了。我甚至都不知道Android手机上那第3个按键是干嘛用的!我猜,我可能会喜欢用Windows Phone上的搜索键,但在增加一个新的按键之前,我更希望看到设备正面的两个按键能够得到协调、一致的使用。举例来说,如今的双键鼠标差不多已经成为行业标准了,我想它背后肯定是有原因的。(没错,有些鼠标还有一个“讨厌”的中键,但那不是必需的,有了它只是锦上添花而已。)

接下来,怎么解决单指操作的问题呢?其实,即使在触控设备上,一个手指似乎也是不够用的。久而久之,用户体验方面必然会出现古怪的“过载”:

iPad支持若干个系统范围内的全局手势,比如4个手指向左或向右滑动可以在不同的应用之间切换。四指滑动?想象一下有一个虚拟的水平滑动控制器,有点费解哦。快速地一起滑动4个手指,你可以切换到别的应用——应用程序的设计师必须规避这些操作,以确保自己应用的合法输入方法不会跟系统级的手势“打架”。

使用这个功能之前,需要将“设置 |通用 |多任务手势”选项打开。——译者注

还有更糟糕的:手指从屏幕顶部向下滑动,这个操作可以打开“通知中心”——一个含有日历约会、天气等信息的窗口。单指的垂直运动很常用,很多应用都期望获取这样的输入。《Flight Control》和《Fruit Ninja》(水果忍者)就是两个典型的例子。在玩游戏的时候一不小心打开“通知中心”,这种事时有发生。垂直方向上的滑动在任何画图程序里也是很常见的。应用设计师需要倍加小心、允许这些控制吗?很显然,必须的。

现如今,“过载”在触控的场景里已经无处不在了。除非你只是拿一个平板作最简单的用途,否则你将免不了要“双击”、“单击并按住”、“双指滑动”等等。

苹果在追求简单和简洁设计方面做得极其出色,但我也常常想,他们做过头了,特别是在一开始的时候。比如,第一台Mac机居然没有光标键。所有的问题都是设计问题,听起来有点主观,但就像“金发姑娘”一样,我将坚持:奥秘之处在于让“汤”不要太凉(没有任何按键),也不要太烫(3个或更多的按键),而要刚刚好。如果我在按下“Home”键的时候对其后果无须思考太多,我肯定会更喜欢用iPhone的。(要知道,那个键每天都会被按上百次哦……)

“金发姑娘”出自一则童话故《金发姑娘和三只熊》。——译者注

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jeff Atwood质疑iPhone的单键设计 的相关文章

  • 为什么 cordova.file.documentsDirectory 为空?

    我正在尝试使用 cordova plugin file transfer 在http ngcordova com docs plugins fileTransfer http ngcordova com docs plugins fileT
  • 有没有办法将搜索栏添加到我的实际首选项屏幕?

    我一直看到有关添加您自己的搜索栏首选项的教程 但它不在我实际的 prefs xml 中 有什么方法可以在我的主偏好设置屏幕中添加一个 或者我必须将其分开 Google 似乎有 2 个滑块首选项 搜索栏首选项 https github com
  • 毕加索磁盘缓存

    我正在使用 Picasso 从 URL 加载图像 Picasso with getApplicationContext load product getImageUrl into imageView 据我所知 每次都会访问该网址 而不是缓存
  • 编译后从字节代码中删除注释

    我们正在使用一个包含使用 JAXB 注释进行注释的 bean 的库 我们使用这些类的方式完全不依赖于 JAXB 换句话说 我们不需要 JAXB 也不依赖注释 但是 由于注释存在 它们最终会被处理注释的其他类引用 这要求我将 JAXB 捆绑到
  • Android ListView 自定义适配器 ImageButton

    这可能不是正确的方法 如果有更好的方法请告诉我 我创建了一个自定义适配器类 在我的 getView 方法中我膨胀了我想要使用的视图 public View getView int position View convertView View
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 如何忽略 LeakCanary 中的某些类?

    有人能给我一个如何忽略 LeakCanary 中的某些类的有效示例吗 我正在查看这个示例 以忽略 LeakCanary 中第三方库中的某些类 但我不知道将其放在应用程序中的何处 我把它放在我的应用程序类中 但这些变量和方法有错误 isInA
  • 如何在 Android 应用程序中单击按钮时打开 Gmail Compose?

    当我的 Android 应用程序中单击按钮时 我尝试打开 Gmail 撰写屏幕 我需要 Google 提供的 API 密钥吗 或者我需要在按钮 onClickListener 中做什么 任何形式的见解都非常值得赞赏 正如 JeffC 指出的
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • android:进程和进程名称

    我试图理解android process属性 Ref says http developer android com guide topics manifest application element html proc 如果分配给该属性的
  • 无法在云控制台中启用 Maps SDK for Android

    我在云控制台中启用适用于 Android 的 Maps SDK 时遇到此问题 https console cloud google com https console cloud google com 它会抛出以下错误 附截图 我收到错误消
  • Android BLE 扫描在后台几分钟后停止

    当我为公司开发新冠肺炎接触者追踪应用程序时 我在后台遇到了 Android 扫描停止问题 这是我尝试过的 添加前台服务 禁用手机中所有与电池相关的优化选项 启用后台运行的应用程序 测试设备 搭载 Android 10 的 Galaxy S2
  • 如何在android中画一条曲线?

    我是 Android 新手 正在开发一个关于绘制线条的示例项目 我想画一条连接两点的曲线或高架线 x1 y1 and x2 y2 我试过canvas drawArc 方法 但是RectF内的值drawArc方法只是圆的 x y 中心点 它在
  • Android:BATTERY_STATUS_DISCHARGING 和 BATTERY_STATUS_NOT_CHARGING 之间的区别

    我想知道这两个标志之间的区别 BatteryManager BATTERY STATUS DISCHARGING And BatteryManager BATTERY STATUS NOT CHARGING 我开发了一个使用这两个标志的应用
  • Android httpclient文件上传数据损坏和超时问题

    我在 Android 中上传图像时遇到问题 我正在使用 apache httpmime 4 1 lib 代码是这样的 MultipartEntity reqEntity new MultipartEntity HttpMultipartMo
  • Spotify 登录错误 INVALID_CLIENT:无效的重定向 URI android

    我正在制作一个包含 Spotify 集成的应用程序 我点击了此链接https developer spotify com technologies spotify android sdk tutorial https developer s
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • 无法登录 Google Play 游戏服务

    我在开发者控制台上使用包名称和正确的签名证书设置了我的游戏 并为其创建了排行榜 但没有创建任何成就 然后 我从以下位置下载了示例 Type A Number Challenge 和 BaseGameUtils https developer
  • 如何在 kotlin 中检查 lambda 空值

    在 Kotlin 中如何检查 lambda 是否为空 例如 我有这样的签名 onError Throwable gt Unit 我如何区分它的默认值是应用于主体还是应用于此函数的值 您无法测试 lambda 的主体是否为空 因此它不包含源代
  • 改造方法调用可能会产生“java.lang.NullPointerException”

    使用 Retrofit 2 3 0 我在 Android Studio 中收到以下消息 有关如何删除此 IDE 错误消息的任何建议 谢谢 来自Response文档 http square github io retrofit 2 x ret

随机推荐

  • 【QT】Halcon与VS的联合编程2

    1 Halcon代码的导出 导出为C 语言 进行机器视觉应用 在halcon界面的菜单栏项上选择 文件 导出 界面如下 导出之后 在上述导出文件的路径下 你就可以看到程序了 此时这个程序就和halcon没有关系了 就是独立的cpp文件了 2
  • Web3社交基础设施SBT

    今年年初 V神发表了一篇文章并提出soulbound token SBT 概念 5月份 又联合撰写了一篇 去中心化社会 找寻 Web3 的灵魂 让 去中心化社会 和 SBT 概念在大熊市又爆火一波 SBT到底是什么 有什么价值 在概念到应用
  • windows批处理命令总结(超详细滴)

    总结自 https baike baidu com item E6 89 B9 E5 A4 84 E7 90 86 1448600 fr aladdin 文件夹管理 cd 显示当前目录名或改变当前目录 md 创建目录 rd 删除一个目录 d
  • 成功解决Win10连接上wifi但是却显示“无Internet,安全”

    成功解决Win10连接上wifi但是却显示 无Internet 安全 目录 解决问题 解决方法 解决问题 解决Win10连接上wifi但是却显示 无Internet 安全 解决方法 先将wlan先禁用 然后重新启用wlan即可
  • 文心一言和讯飞星火全面对比测试:(五)编程能力

    相关文章 实战 用ChatGPT处理word表格数据 直接采用ChatGPt和利用ChatGPT编写python脚本两种方法 文心一言 vs ChatGPT 结果没有你想向中的那么不堪 文心一言和讯飞星火全面对比测试 一 语言理解能力 文心
  • hbase中的HFile文件格式详解

    1 HFile详解 HFile文件分为以下六大部分 序号 名称 描述 1 数据块 由多个block 块 组成 每个块的格式为 块头 key长 value长 key value 2 元数据块 元数据是key value类型的值 但元数据快只保
  • linux静态链接库与动态链接库的区别及动态库的创建(转)

    linux静态链接库与动态链接库的区别及动态库的创建 转 一 引言 通常情况下 对函数库的链接是放在编译时期 compile time 完成的 所有相关的对象 文件 object file 与牵涉到的函数库 library 被链接合成一个可
  • 算法:位运算

    求整数n的二进制表示中第k位数字是几 最右边那位为第0位 往左依次为第一位 第二位 1 把第k位移到第0位 n gt gt k 2 看一下第0位是几 x 1 include
  • 华为荣耀长按出现第三方信息及服务器,华为荣耀6手机常见问题要领.pdf

    华为荣耀6 手机常见问题 问题 如何升级手机 为防止手机内存中的用户数据 如 联系人 信息 通话记录等 在升级 时被删除 建议升级前备份手机数据 l 在线升级 在线升级前 请连接移动网络或 WLAN 进入 设置 界面 点击 手机升级 gt
  • 有几万块钱做什么生意合适?小本生意介绍

    有很多小伙伴不想上班 想自己出来做生意创业 但是手头只有几万块钱不知道做什么生意合适 那么接下来 我们就来给大家讲解一下这方面的内容 1 开快递代收点 虽然城市里面的快递代收点比较普遍 还有一些智能化的快递投递设备 但是在农村这样的东西很少
  • 如何通过 Libra 测试网络完成一笔转账?

    6 月 18 日 Facebook 宣布 计划于 2020 年发布名为 Libra 的数字货币 目前 Facebook 已经与包括 Visa MasterCard Uber Paypal eBay 等 27 家公司联合建立了协会 用于管理
  • 麒麟V10 X86_64二进制安装minio单机最新版本

    查看系统版本 root lightest minio uname a Linux lightest 4 19 90 25 2 v2101 gfb01 ky10 x86 64 1 SMP Fri Jun 18 12 31 35 CST 202
  • 【华为OD机试真题2023B卷 JAVA&JS】报文重排序

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 报文重排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 对报文进行重传和重排序是常用的可靠性机制 重传缓冲区内有一定数量的子报文 每个子报文在原始报文中的顺序已知
  • 电脑提示缺少d3dx9_43.dll的问题及5个解决方法

    大家好 今天 我将和大家分享一个电脑提示缺少d3dx9 43 dll的问题及其解决方法 这个问题可能会影响到我们在使用电脑时的一些功能 所以掌握这个解决方法对我们来说是非常有帮助的 首先 我们来了解一下什么是d3dx9 43 dll d3d
  • tensorflow提示:No module named ''tensorflow.python.eager".

    主要是tensorflow和keras的版本不对应的问题 import keras的时候 提示 No module named tensorflow python eager 明明昨天用还没问题 而且网上竟然没有解决方案 就考虑了一下tf和
  • win11下安装golang

    背靠国外各大金主的go语言 在各种推动下 可谓是新的弄潮儿 但国内虽然各种推销 但从安装到开发再到维护 资料都少之又少 可能被垄断了解释权吧 因此下面的也只是一个记录而已 是一次仅限于本人本机本阶段的成功尝试 一 win11下golang安
  • 一些LitJson的方法

    Json转为HashTable Hashtable JsonToHashTable JsonData data Hashtable hashtable new Hashtable string keys GetJsonKeys data f
  • Vue - el-upload 组件在 on-success 文件上传成功的钩子中传递更多参数

    ElementUI Upload 上传官网 https element eleme cn zh CN component upload 在ElementUI官网中upload组件的on success的钩子中 只能传递 response f
  • 蓝桥杯-2013年B组真题

    蓝桥杯 2013年B组真题 蓝桥杯 2013年B组真题 参考 https blog csdn net qq 44391957 article details 90646760 A 高斯日志 题目标题 高斯日记 大数学家高斯有个好习惯 无论如
  • Jeff Atwood质疑iPhone的单键设计

    我喜欢使用iPhone 但我对它的一个设计不敢苟同 苹果始终坚持 设备的正面永远只能有一个按键 我还买了一个Kindle Fire 它更离谱 一个按键都没有 我完全赞成 任何小器具的正面都应该在明显的位置上至少有一个 耶稣把手 一样的按键