写在前面
本文译自 Medium 网站中的《The Art and Science of a Mac Menubar App》一文。为了更好地帮助读者理解,故重新撰写其中部分内容,而非纯粹的翻译。若您需要转载本文,请注明来自原文出处及少数派。
学会「打理」菜单栏
对于每一位 Mac 用户来说,无论你的电脑是用来工作,还是娱乐,或多或少都会有几个日常必备的应用,而在这些应用中,至少也会有 1 ~ 2 个属于「菜单栏应用」,即「支持菜单栏拓展的应用程序」。
有些人认为它们就像是菜单栏里的「寄生虫」,虽然占据了大量位置,但又不得不默许这样的「强盗行为」。确实,在 OS X 操作系统中其地位是非常重要的,有了它们,用户不必切换到软件主界面,或特意下载一款「真正」的软件,而只需轻拍「拓展菜单栏」里的图标即可代替原本复杂的操作步骤。
大量菜单栏应用会使「拓展菜单栏」显得非常拥挤已是不争的事实,为了妥善解决这个问题,开发商 Surtees Studios 制作了一款叫做 Bartender 的工具,允许用户将那些暂时不需要直接显示出来的菜单栏图标(甚至包括 Wi-Fi、电量、Spotlight 等系统图标),归纳至一块特殊区域,这块区域被一个图标代替并显示在 Menubar 里,大大提高了 Menubar 的使用效率!
菜单栏应用的前世今生
记得最早的 菜单栏应用 应该出现在 2002 年 OS X 10.2 Jaguar 发布后的时间里,Apple 刚刚为 Mac 添加了 iChat 在线聊天功能,它也是现在的 OS X 中「信息」应用的前身,后来随着 Mountain Lion 的发布而被代替。
由截图可知,那时的 iChat 已经支持用户根据菜单栏里的图标改变账户的登录状态,但苦于当时人们无法开发支持「拓展菜单栏」的第三方应用,因此有一名 Mac 程序员 Ari Weinstein 指出:
NSStatusItem, the API developers use to create menu items, has existed since OS X 10.0 (or longer, it probably originated as part of Rhapsody in the late ‘90s).
什么是 NSStatusItem?笔者不是程序员,因此不得而知,这里仅提供它在 Apple 官方的 Mac 开发者库中的解释。不过,大部分人还是不难理解,它对于「拓展菜单栏」应用的开发是至关重要的!通过程序员 Ari Weinstein 的叙述可以得知,似乎 NSStatusItem 早在 OS X 10.0 的时候(甚至更早)就已经存在,只不过 Apple 当时并没有开放这项权限。
直到 OS X 10.4 Tiger 发布后,开发者们才终于可以写出真正的 菜单栏应用。
由于其特殊定性和功能,菜单栏应用 一直都属于独立的个体。它可以是一款完整的应用程序,也可以是完整体的一小部分;它的「触手」可以停留在基本功能的实现,也可以深入至系统的每个「角落」。总而言之,菜单栏应用 是 OS X 操作系统中不可分割的一部分,值得引起每一位用户 & 开发者的重视。
如何打造一款脍炙人口的优秀 菜单栏应用 呢?当然离不开出色的用户界面设计。下文中笔者将列举 15 款应用程序的设计样式,以讨论这个观点。
菜单栏应用的窗口概念
这 15 款代表性应用程序分别为 Caffeine、Layervault、Skitch、F.lux、Cloudup、Crashplan、1Password、Day One、Dropbox、Twitter、Cloudapp、Evernote、Droplr、Fantastical、Mint。
以下是它们的尺寸大小及纵横比。
这些设计的样式无非就是两种:纯文字、文字+图片。前者一般为菜单栏或列表,表达形式较为简单且直接;后者一般会配以动画或特殊的功能加以修饰,更具视觉效果和亲和力,但与此同时,也非常考验美工与程序员之间合作的默契程度。
这张图是上面列举的 15 款代表性应用的宽高统计表,再回顾下它们的样式,你会发现纯文字型的「菜单栏应用」一般情况下比例都是相差无几的,顶多就是因为文字的长度,或因加入快捷键声明而变宽,略微变动了比例;而互动型「菜单栏应用」则几乎没有标准的比例可供参考,完全是按照软件本身及用户的需求,量身打造了全新的界面。
筛选掉 Caffeine、Layervault、Skitch、F.lux 等几款应用后的纵横比。
除尺寸大小外,这些「菜单栏应用」的内容也是不受限制的,开发者可以随意定制每个「控件」的摆放位置,也可以通过识别用户不同的操作行为,做出不一样的反馈,例如:点击、推送、拖拽等。
资源占用
为了更好地统计这 15 款应用的相关数据,笔者还针对 RAM 虚拟内存和 CPU 中央处理器的占用率进行了记录,得到的结果如下。
CPU 占用率:
RAM 占用率(单位 MB 兆字节):
以上数据的测试全部由同一台 Late 2013 Retina Macbook Pro 完成,运行的操作系统版本为 10.9.4,同时这些数据是在电脑完全重启并等待 10 分钟后由「活动监视器」得出。在测试的过程中,没有任何一款应用处于「活跃」状态(例如:Dropbox 没有在同步数据等)。
为公平起见,像 Evernote、Skitch 这类非纯粹的「菜单栏应用」数据来源皆仅指代 Menubar,而非软件整体的系统资源占用率。另外,由于 Twitter 客户端的 Menubar 不占用资源,因此被排除在统计对象之外。
使用 ⌘Q 退出应用?
众所周知,⌘Q 是 OS X 系统中较为常用的「完全退出」方式,适用于各类软件和游戏,但对于 菜单栏应用 来说就不是这么回事儿了。在总共 15 款应用中,支持 ⌘Q 退出的比例只占了 1/3,不是很大。
本文的内容到这里已经结束了,虽说不是非常的全面,但对于 OS X 新手来说,已经足够对 菜单栏应用 产生一个初步印象了。最有价值的是,透过对细节的捕捉,以及对种种现象的分析,作为普通用户的我们也涉足了只有程序员才接触得到的知识范围,帮助我们能更快捷地上手一款应用,增加了相关的「自学能力」。总的来说,这篇短文也确实是份弥足珍贵的收获!
关于作者
本文大部分内容为原文翻译,或多或少会有错误、理解不恰当的地方,请读者谅解。若您愿意帮助笔者改进文中的错误,请及时联系 微博 或 邮箱 提交反馈,感谢您的支持与关注 : )