花钱购买“美丽废物”
常看到有人说自己的苹果设备,特别是 Apple Watch 是一台“美丽废物”。 因为工业设计是一种非常直观的美丽,但如何使用电子设备却因人而异。许多人因外观冲动购买后,却常将其闲置。
Apple Watch
说到这里我第一个想到的就是 Apple Watch Ultra,因为其外观的改变让很多根本没有带手表或者运动习惯的人选择购入,不久过了新鲜劲头之后就扔在一边吃灰。前首席设计师和声优 Ive 曾经试图将 Apple Watch 打造成为时尚单品,做一个名副其实的“美丽废物”。
但每个人的生活还是由各种琐碎的需求组成,没有人可以脱离这一切单纯的最求美。市场的反馈让苹果下定决心还是将 Apple Watch 改为了主打运动健康和即时消息查看的设备,功能性重回主导。
iPad
排名第二的应该是 iPad,“买前生产力,买后爱奇艺”正是它的鲜明写照。这些比广告语还要深入人心的特点说明堪比 NBA 球员的外号,俗话说没有取错的外号,只有叫错的名字。多少人购买 iPad 之前想着是可以用来无纸化办公、学习,阅读书籍、文档,顺便看看剧。多少人一咬牙买了配套的手写笔和重得要死的键盘。
本质上 iPad 是一个屏幕较大的近距离展示设备,适用于1-2人。例如自己用来阅读、看视频,或是在近距离的情况下给周围人展示和解说一些内容。输入方式限制了它更进一步的工作效率,所以看似 iPad 可以做很多,但都不好用。
例如拿它打游戏,时间久了手酸;使用手写笔绘画做设计,你我大多没这能力和功夫;写作或是编辑视频等,得连上外设。这些硬件和系统的限制让 iPad 也容易吃灰,很多人偶尔会使用,但针对不同场景,总有设备更适合。即使最新发布的 iPad Pro 使用了2代3纳米制程的 M4芯片,但多余的性能受限于输入和系统是真的发挥不出来。
iPhone 和 Mac
我爸很久以前第一次换机 iPhone 的时候说过一句话:这玩意就像是好车,功能丰富就像速率表,但无奈他只能开120码,剩下的功能都是浪费的。电子产品或者说个人电脑,在摩尔定律的影响下性能越来越强大。这带来了更加丰富的使用体验,最直观的体现就是系统变复杂了,各种各样的应用变多了。有些人就用手机拍照、联系他人、看时间和新闻,再加上玩游戏。剩下的功能他不在乎,也不会用。
虽然各种电子产品的用户交互和体验都非常重视,但性能爆炸导致的功能丰富也会让操作方式不断的改变。通常认为的适应电子产品的使用,不仅仅是保留熟悉的操作方式,也需要考虑人的认知发展。iPhone 和 Mac 在苹果的定义中属于个人计算终端,想要充分发挥设备的各种功能,除了明确的使用场景外,其实也存在不低的使用门槛。
Apple Vision 的定位是空间计算终端,也在此类中,我没有用过,就不评价了。
充分利用苹果设备
少数派的大部分读者访问网站,主要是为了学习如何更好地利用他们手中的设备。网站的主要内容,包括各种教程和应用介绍,都是为了帮助读者实现这个目标。然而,在此之前,我们需要更好地了解苹果设备和系统,以便更有效地使用它们。电子设备只是一种工具,如果纸和笔能更好地解决问题,那就没必要一定要使用其他设备。
就我个人而言,在购买新设备之前,我必须清楚地想明白非常具体的使用方式和场景。如果不知道购买后会用它来做什么,那么即使我很喜欢,也不会购买。我看过许多发布会,它们让我对新的产品感到兴奋,但如果找不到具体的使用场景,也就不会购买。
这种消费观念其实是一种刻意训练的思维模式,即通过预见可能的结果来帮助做出最初的判断。
了解不同设备的使用场景
Kindle 无法带给购买者阅读习惯,但习惯阅读的人却能获得更便捷的阅读体验。就像用来看书的 Kindle 一样,苹果设备也都有非常确定的使用场景。
Apple Watch 与其说适合喜欢运动和户外的人群,我觉得更准确的定位是喜欢数字化各种指标的人。因为手表会不断的收集身体数据,在运动时定量的分析表现,这些数据可以在健康应用中查询,变成图表。
iPad 适合有大量阅读和轻休闲需求的人群。支持创意工作者的手绘,可以作为特定场景的便携屏幕,例如医院、驾驶室、仓库等。不过面向商业的场景多是一些单一而明确的使用,与个人用户区别很大。当然,iPad 的用户要较真,抛开体验和效率,这台设备可以做一切。是一台旅行携带或者应急使用的最佳设备。
Mac 就是一台普通的电脑。使用多年 Windows 的用户可能无法适应,会觉得操作别扭、找不到熟悉的软件等。这不代表两种电脑有好坏之分,仅仅证明了认知科学中关于路径依赖的描述正确。更换新的设备就需要重新开始学习,我们常说的终身学习不仅仅代表没事看看书或者考个证,而是在遇到新事物的时候愿意沉下心来去了解它。通常电脑能做的 PC 和 Mac 都能做,就像猎鹰说过的:美队做什么我就做什么,只是慢一点。
利用设备之间的协同配合
苹果或者说任何一家拥有多产品线的公司,都会尝试在旗下的设备中做些内部的协同。这样既会让消费者有更好的体验,也会培养使用习惯增加消费者的终身价值。在网站内有大量这方面的使用介绍,例如支持所有设备的快捷指令,以及通过同一个 AppleID 同步的 iCloud 后端云。
这其中 iCloud 的价值我认为是被许多人低估的。开发者只要接入 iCloud 作为应用的云端储存,那么用户不需要做任何事情,在安装完应用后无需登录或者设置,就可以在所有属于他的设备之间实时同步数据。而云端储存的空间,事实上又是用户自己花钱每月订阅的。这意味着开发者可以快捷且免费的让自己的应用拥有数据同步、用户协作、云储存和备份等在传统开发中非常麻烦的功能。
当然代价就是使用 iCloud 就别想再上其他平台了。
快捷指令却是被很多人高估了。封闭是苹果所有设备系统的最重要属性,快捷指令要做的是在这样封闭的系统中连接应用和应用内的功能。理论上用户可以使用快捷指令执行某个应用内的一个功能,然后输出结果,再执行另一个应用中的某功能,如此循环。不过这也只是理论中的美好,作为开发者,我发现近来每年 WWDC 都会介绍全新的快捷指令接入方式。对我,这意味着之前写的代码没用了,得重写;对苹果,意味着技术路线的摇摆和缺乏自信。况且快捷指令有相当多的黑盒限制,例如每个指令的运行时限。当然官方本身就提供了大量的指令可以让用户进行组合,这已经是非常强大的功能组合了。
更致命的是与历史尘埃中的3D Touch 一样,用户根本不知道应用有这个功能。
作为开发者的深度使用
与很多其他企业相比,苹果真的非常重视开发者。在所有的系统中,苹果内部的工程师会将设备的功能进行打包,然后让开发者的应用进行调取。例如一些非常复杂的照相应用,可以调节许多在原生相机中没有的专业参数,就是因为直接使用摄像头,并用他们的方式处理接收到的原始图片数据。
这些可以让开发者使用的功能会在每年的 WWDC 进行更新、说明、教学和沟通,同时他们会更新相关的技术文档,让开发者从 Bate 版本就开始试用。作为开发者,就可以利用这些开放的接口,实现许多无法在其他应用中获得的功能。相比利用设备,开发者甚至可以在一定程度上根据自己的需求改造系统,有点当年越狱的感觉。
在我个人使用的苹果设备中,就有许多类似的小应用。有的仅仅是一个小组件,有的经过长时间的更新已经非常复杂了。新的应用想要上架 App Store 需要经过非常严格的审核,例如不能侵权、不能简陋、不能有明显 bug 等。但对于不上架的应用,可以任意在设备上进行安装。例如最近非常流行的 GBA 模拟器 Delta,其实一直是开源的,任何开发者都可以安装在自己的设备上。直到最近苹果修改了审核的条款,它才可以上架销售,对大众进行分发。
以下就是一些我实际在使用的个人开发项目,我会介绍功能并说明实现的方法:
Amos捷径
当 iPhone 开放小组件(widget)的功能后,我就做了一个捷径。这其中有几个原因:
- 我在测试小组件的时候就写了该应用,使用至今。
- 这是一个很小的功能,商店里的复杂应用可以实现但是太麻烦,那些无用的功能就是占空间和内存罢了。
- 开发这样一个不需要设计UI 的简单应用非常快捷,而且不需要上架意味着没有额外工作量。
实现的细节是一种叫做 URL Scheme 的技术。URL Scheme 是一种链接格式,它定义了如何通过特定的协议访问一个资源或服务。在应用程序开发中,它常用于定义应用间的交互方式,允许一个应用可以直接打开另一个应用并执行一些特定的操作。
例如在浏览器中输入mobilenotes://
就可以直接打开系统备忘录。在后面携带参数则可以在开启应用后进一步操作,例如输入taobao://s.taobao.com/?q=
就可以打开淘宝,并开启搜索页面。使用快捷指令也是通过相同的技术,但小组件并不灵活。
通过这样的机制就能实现应用间的快速交互,也可以在小组件上放置常用的功能按键。例如我在捷径内就放置了115的扫码,以及微信、支付宝的扫码和支付,还有一些常用的应用。
Amos记分板
我是个 NBA球迷,很小的时候起就会定闹钟早起看球。我热爱欣赏高质量的球赛,眼花缭乱的运球、过人,高质量的传切配合,以及读秒时刻的精彩绝杀。当然一场球赛2个半小时,通常在工作日不一定有时间好好的看完整比赛。所以我一直希望找一个可以让我简单了解比分、快速查看赛程的应用。找了很久失望的发现只有足球比赛的类似应用,却没有篮球的。
虎扑其实可以在球赛开始后打开页面,然后实时比分就会上灵动岛。但这也很麻烦,很容易错过比赛。因为感觉不难实现,再加上一点点热爱,我就决定做一个懒人版的比分查看应用。
在小组件出现后,一直有讨论什么是最适合小组件的应用形式。在我看来,球赛和比分就是小组件和表盘的杀手级应用。因为信息量很小,但对时间非常敏感,实时的比分变化往往就会扣人心弦。而在没有比赛的时候,就显示下一场比赛的时间和信息,也是一眼可知的。
这个应用主要的实现技术叫做 API 调用。API 是一种商品,在购买之后,我们可以通过 API 查询气象局的天气信息,可以和大语言模型进行对话,也可以获取最新的股价、新闻等,当然也能够获取 NBA 球赛的信息。商店里有许多的应用都是通过 API 实现的,开发者会在获取相关信息后,使用设计好的 UI 对信息进行呈现。假如获取失败,就会跳出一个对话框告诉用户产生了错误。
这个应用也足够简单,就是查询数据,然后判断什么时候有比赛,并且根据设置将我最关心的比赛显示到小组件。在 Mac 和 Watch 端都有,也是相似的功能。而小组件则无处不在,从 Mac 和 iPhone 的桌面到 Watch 的表盘和智能堆栈。我要做的就是将同一个数据源推送到不同的小组件显示。
让我在使用任何设备的时候,都可以看到我热爱的比赛。
之前我写过小组件的技术介绍文章,其中就使用了这个记分板的早期版本作为案例(不过很可惜,里面提到的 TestFlight 的部分已经下线了):
Amos特斯拉
我应该算特斯拉入华后的第一批 Model 3 车主。还记得那天中午接到电话说我的快递到了,下楼就看到了我的车。当时的兴奋让我对整个场景历历在目。在那个时候我认为这辆车的设计理念领先燃油车或者国产车3年。
遥想当年刚换车后的一段时间,我还热衷于给朋友们推荐,并且写文章分析这辆车的创新和特点,甚至买了⚡️闪电形状的朗姆酒,自驾去旅游还会写充电指南和游记。
现在3年过去了,果然开始落后了。当初的小甜甜成了如今的牛夫人,现在对特斯拉我有吐不完的槽。功能拉跨、更新缓慢、无视用户建议和体验、完全不做本地化适配、辅助驾驶简陋烦人等等,每次看完国产新车的发布会都想换车。
但是,特斯拉的开放性实在是太好了。据我所知,特斯拉是唯一开放车辆数据和操控 API 接口的车企,不仅如此,它的超级充电站、目的地充电桩、维修中心、服务中心的详细数据也是定期维护且开放的。这意味着我甚至可以使用命令行控制我的车。所以作为开发者,我就可以将这种开放性链接到我的日常设备上:
- 让各个设备屏幕的小组件显示我关注的信息
- 快速查看充电网络并做行程规划
- 通过手表或者快捷方式与车辆进行交互
除了全屏幕的小组件显示实时信息,我尤其喜欢它在手表端的表现。得益于 watchOS 10 在系统层面的大更新,这个应用也被我完整的移植到了手表端。手机上可以做的,在手表上都可以做,有网就行。而且背景颜色还能够根据电量、门锁、温度等进行改变,现在手表的开发环境和以前相比已经有了长足的进步。
这个应用主要的实现技术也是 API 调用,但是要复杂许多。因为端到端数据传输需要进行加密和认证,信息到了本地也需要做更多的处理和区分,本地储存也更加细致。最重要的是这是个上架应用,所以不仅要合规,UI 页面还得好好设计。这也是本次分享中唯一上架的应用,欢迎车主下载体验,目前完全免费:
像这样的应用我会在有想法的时候就加上去,例如下面这个功能。
有过特斯拉开长途经历的读者可能会和我一样,经常会需要判断在服务区充电还是下高速找超充更省时间。高速上的充电桩状况多、速度慢,而去找超充又可能太远。于是我在充电站的详情页面增加了一个高速出口的列表,可以查看从出口到充电站的距离和行驶时间。这样对我们长处出行进行规划的时候就会非常有帮助。
Amos助理
大语言模型无疑是近几年最火爆的新技术,更何况面向了 C 端,每个人想用就可以使用。按理说 ChatGPT 有网页端,还有官方的应用,使用体验也非常不错,我其实没有必要自己为此重写一个应用。但由于我使用的时间很早,当 API 公布后就开始体验,当时网页功能十分简陋,而官方应用更是没影。
即使现在自己写的应用体验也会好非常多,基于以下几个原因:
- 官方应用严格限制网络环境和使用地点,打开后先检测半天,等待后很可能用不了;
- 网页端也需要检测使用环境,而且还是仅适合轻度使用;
- 想要使用最新的语言模型就需要购买 Pro,但是通过 API 就不需要,而是按照用量付费。这样不仅价格会降低非常多,而且不需要订阅,不使用就不扣费。
这是我的用量计费表格,可以看到会自己进行开发就不需要去找各种别人的套壳网站或是应用,也不会被多次收费,还可以随心所欲的增减功能。
该应用和上述一些案例不同,因为我的主要使用场景其实是在桌面,是强交互高效率的生产工具。所以该应用的重心是在桌面端,包括针对大屏的 UI 优化,以及快捷键的加入等。而且参考 GPTs 以及网上一些用法的分析,我做了一个叫做“结构性输入”的功能,可以分类别的把我的需求、材料、补充、限制条件等拆开进行输入,这对于形成高质量的 Prompt 是一个非常好的方式。其他的类似储存、记忆、模版生成、修改后再提问等功能虽然网页端不具备,但对该应用而言都是基础,就不介绍了。
还有一个有意思的功能就是我将它集成到了快捷指令中,然后就可以用 Action Button 一键交互。这样 Siri 在下面,我的其他语音助理在上面,就可以根据需要切换使用:
这个自己的应用经过这么久的迭代,其实有一条非常明确的升级主线,那就是成为我的贾维斯。我需要它在平时使用的任何设备轻易调用,并且参与开发、文字编辑、解读文本等各种工作流。除了 openAI 的模型之外,也逐渐内置了其他的大语言模型,例如月之暗面、豆包等一些同样开放了 API 的国产模型。
大语言模型的使用局限
然而在我这么久的使用来看,大语言模型本身离真正的人工智能还有一段遥远的距离,它的使用限制非常明显。根据吴军《数学之美》引证的马蒂亚塞维奇定理,我们可以看到目前的大语言模型在数学上有非常明确的边界和上限,并非像很多人乐观估计的会在近期到达奇点然后指数级自我迭代升级的程度。目前模型的智能提升来源于训练数据量级的提升,或是使用对应的材料进行加强训练,而不是算法。在下一个类似 Transformer 的数学模型出现前,大语言模型的进步也只是增加训练样本和微调参数,或者适配特定的使用场景。
从原理分析,现在的大语言模型看似智能,但其实都也只是概率模型。生成的每一个词都是通过概率算出来的。基本可以保证顺畅和逻辑,但无法保证准确性,甚至会有常识性错误出现。对有明确指令的具体单项任务,使用者可以交给它然后自己判断正确性,例如生成一段功能代码或寻求思路。可以看到,本次文章的题图就是使用模型进行生成的。之前我还用这个功能帮女儿生成过一个绘本。但是复杂的任务就会累积错误,完全无法保证正确性。
目前看来大语言模型现在更适合作为一个检索工具,例如在特定的领域如医疗健康、法律司法进行快速的信息查询和总结。或是生成一些非常具体而细致的内容,让使用者可以比较轻易的判断正确性,甚至是不需要正确性。
学习编程的必要性
更多的应用我就不再一一例举了,我的设备上许多都只是针对特定的需求做出的最低必要的功能。这其中有潜力的应用就会获得不断的升级迭代,等到我认为它符合标准后,就可能会将其上架。但很显然,多数应用的开发目的其实也不是为了上架,而只是给我自己生活打的补丁。
在当前这个被电子产品包围的世界中,我认为任何人都有必要掌握一些编程的能力。这已经不再是针对科研或者工程领域,需要编写程序解决工作中的问题;也不是一种求职的途径,为了去互联网企业工作而刷题。而是为了与周围设备进行沟通,低成本的改善生活和工作质量,更好的适应环境,不至于成为下一次科技革命前的渡渡鸟。
除了开发能力的重要性,另一个学习必要的原因是编程学习的可达性。任何具备基础数学和英语水平的人都可以在几个月系统训练后掌握基础的开发能力。这不是高等数学或者量子物理,也不是争先争胜的竞技体育,不需要很高的智商或者身体素质。更不是做计算机科学的研究,而仅仅是像学习驾驶车辆一样学习一种技能。当然入门容易精通难,想成为优秀的开发者就需要学习更深更广的内容,还需要勤奋、热爱和天赋。
如今学习编程的资源极其丰富,新的编程语言越来越容易掌握,像 Swift 或者 Go 这样近几年出现的编程语言已经不需要开发者像过去使用 C 和 C++ 时候那样需要考虑方方面面。而且在学习方面,AI 的辅助非常好用,任何问题和错误 AI 助理都可以给出解决思路。我之前也写过 Swift 和 SwiftUI 的介绍文章以及苹果开发的入门建议,感兴趣的可以进行拓展阅读。
有些人会觉得 AI 总有一天会改变电子产品的使用方式,到时候作为用户需要什么应用只要说出来就行了。诚然 AI 的发展可能会在未来的某一天颠覆电子产品的交互和使用方式,但没有人知道那一天还有多久。相对的,时间属于我们每个人自己,每分每秒都在流逝。完全可以先将时间和精力投资到更有把握的提升上面。
对于不具备任何相关知识的人,甚至无法有效的提出自己的准确需求。这其实也是我最初做产品时通过与开发者,甚至是外包公司沟通时的感悟。无法提出准确的要求、无法有前瞻性的设计功能、无法评估成品的质量,这样的状态怎么能保证我投入的精力和时间不被浪费呢?基于同样的理由,用在使用 AI 的这件事情上目前来看也是相似的。
可以不看的结尾
这篇文章我酝酿了很久,一方面我无法忍受当我知道一些有意思的生活方式却不与别人分享,在另一方面又很怕被人说是炫耀或者相反的把时间花在这些事情上很无聊。但我已经很久没有坐下来写长文章了,我需要总结和思考。于是抱着分享的目的,还是选了这个题材,希望读者可以有所收获。
有些人可能会希望使用我上述提到的应用,没有上架的话有两种方式。第一可以开始学习编程,几个月之后就会拥有属于你自己的版本,有目的的学习会更加高效,我也非常乐意交流技术经验。第二就是线下交流,我带上电脑你带上设备,安装指导一条龙,不过实现的可能性远小于上一条。
最后展示下我的表盘和工作室,其中有两个小组件在前文已经介绍了。PS:今年列强争霸的季后赛真好看!