Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

这台全世界最好修的笔记本电脑,是我今年最喜欢的美丽小废物

By: 周芊彤
24 June 2025 at 17:08

6000 块,可能是笔记本电脑价格的甜蜜点——

主办公可以选联想的 ThinkBook 16;打游戏可以考虑带独显的机械革命蛟龙 16;更别提,国补后的 MacBook Air M4,简直不能更香……

如果同样的预算,却只能买到搭载落后几年的 i3 处理器、8GB RAM 小内存,还没有独立显卡的 12 英寸笔记本——恐怕大多数人都会觉得亏爆了。

但如果:这是一台每个零件都可以让你亲手组装,就像乐高一样过瘾,装完了让你满足感爆棚的笔记本电脑呢?

这并不是什么异想天开,而是已经问世的产品:Framework Laptop 12——世界上第一台可以「拼」起来的 2 合 1 笔记本电脑。

▲ Laptop 12 展示图. 图片来自:Framework

一台像「乐高积木」的可拼装电脑

Framework 成立于 2020 年,他们专注于设计和制造模块化、高可维修度的笔记本电脑。在此之前,Framework 发布的模块化笔电 Laptop 13 和 16 都得到不错的反响,但与以往产品不同——

今年 4 月 Framework 新发了全球首台可组装触屏 2 合 1 笔记本电脑——Laptop 12。

延续 Framework 以往一贯的风格,这款 2 合 1 可翻转折叠的笔记本电脑看起来有些玩具感,但核心完全不同:整台机器由用户亲手组装。主板、键盘、屏幕、接口、甚至底壳,全是独立模块。

在等待几周到几个月发货周期后,你收到的不是一台集成笔记本,而是一堆零件——仅需一把 Torx 螺丝刀,根据说明书插入选配好的 SSD 和 RAM,装上键盘和扩展卡插槽,启动电源键,便可以完成笔记本的安装。

没错,DIY 装机,再也不是台式 PC 的专属了!

▲ 左图为 Laptop 12 零件,右图为组装过程图. 图片来自:iFixit,Wired

Laptop 12 的所有部件都配有二维码直达说明书,主板高亮的螺丝让你了解部件固定。弹簧针和无线缆的连接件,让组装变得更加轻松,无需费力便可轻松拆卸电池和安装 SSD。为此,极度严苛的 iFixit,都没忍住给出 10 分满分的评价:

这是一种罕见的,以可维修性为目标的用户体验设计。

YouTube 科技频道 JerryRigEverything 也做了实测:结果证明 Laptop 12 可拆卸组装的模块化设计让用户更易维修和升级,拥有最大程度的可定制性。

▲ Laptop 12 散热器. 图片来自:iFixit

不止是部件的可修复设计,Laptop 12 在外观上也做了颠覆性的创新——

The Verge 提到,Laptop 12 是他见过最引人注目的电脑之一。粉蓝「泡泡糖」配色方案特别完美,柔和的色彩充满活力,灰色的键盘完美地融合了整体设计,左对齐的键帽标识让它带有一丝复古气息:

简直是塑料的奇迹!

塑料机身的出色设计,使其收获了不少好评。据 Engadget 报道,Laptop 12 是 Framework 首款完全采用塑料外壳的设备,ABS 和 TPU 双层的塑料包裹让它免于冲击和颠簸,更好的适用于教育和学习。

▲ Laptop 12 外观及配色. 图片来自:Framework

不过,这台备受好评的 Laptop 12,也并非全是优点。

最大的诟病点就在于它配置偏低:第 13 代英特尔酷睿处理器、不够用的运行内存以及小功率的扬声器,使其与同价位产品相比并不突出。

但 Ars Technica 体验下来认为「又不是不能用」—— 10 小时的续航,对于普通的工作的学习来说完全没问题。

Reddit 也有拿到首批真机的用户提到:尽管配置不算出色,但我真的愿意为这种组装体验买单。

Framework 笔记本电脑能够轻松地进行组装,社区用户的全程参与功不可没。

特别有意思的一点是:由于得到了小朋友们的意见输入,这台电脑的组装体验得到了很大的优化。

早在 Laptop 12 研发初期,Framework 的设计师就让他们的孩子参与到整个产品的迭代过程当中,观察他们如何进行组装,并采纳他们的意见。让用户共创的理念贯穿始终,本身就是用户体验最核心的部分。

这也让 Laptop 12 让 Framework构建了一个独特的生态——产品形态的最终呈现,深深依赖于用户的智慧与热情。

▲ Laptop 12 . 图片来自:The Verge

「可维修」是表象,「可创造」才是价值

尽管可维修度满分,但显然不是所有人都是冲着 Framework 电脑的耐用性买单的,而孱弱的硬件配置,显然也不是重点。

Framework Laptop 系列最大的价值,我想还是在于「可创造性」。

对于大部分人来说,拼装乐高和组装宜家绝对不是陌生的体验。尽管过程往往令人懊恼,至少在完成这件产品的过程中,我们已经不再是简单的「消费者」,而是变成了「参与者」甚至是「创造者」。

这种「创造」的确认感、获得感、满足感,甚至可能比产品本身更让人愉悦——我会永远记得我在客厅完成乐高打字机的那个下午,当按下自己装好的打字机按键时,我是真的欢呼雀跃——尽管我不会也不能拿它来码字。

▲ 左图为宜家自组办公桌,右图为乐高打字机. 图片来自:IKEA,Lego

更棒的是,这种可创造性与这台电脑本身,是浑然一体的。有 reddit 用户就表示,为了家里的孩子,他愿意选择 12 英寸带触控笔的版本:

我想我家小孩会在上面创作很多视觉艺术——我和他那么大的时候,我只能用蜡笔或者马克笔在纸上涂鸦。

对家长来说,Framework Laptop 提供了稀缺的创造乐趣,而对于孩子或学生而言,低门槛的硬件教育也是其价值所在。

▲ Laptop 12 组装步骤. 图片来自:Framework

于是,我们看到了一台可能无法成为主力机,但却是一台寓教于乐的「玩具」电脑——在追求极致轻薄、一体化,高性能的笔记本电脑市场里,Framework Laptop 12 显然是个「美丽小废物」,但我们永远乐于见到这样的「怪东西」。

说到底,消费电子产品也不只是一昧追求效率,情绪价值同样重要。

当然,Laptop 12 的配置也没那么差,用来码码字倒也问题不大。

本文作者:周芊彤、肖钦鹏

 

#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。

爱范儿 | 原文链接 · 查看评论 · 新浪微博


What is a bundle, and how are frameworks different?

By: hoakley
25 April 2025 at 14:30

Apps, frameworks and other items come in bundles, structured hierarchies of folders and files that look like a single file in the Finder. This article explains what bundles are and shows how they are structured.

Bundles came to Mac OS X from its NeXTSTEP parent, not Classic Mac OS. The latter assembled its apps from many resources stored in the app’s resource fork. NeXTSTEP and Mac OS X instead built their apps from component files arranged in a series of directories. Those bundles gathered together all the files required for apps and similar items, into what was then presented to the user as a single item. Modern app bundles are descended from ‘new-style’ bundles introduced in Mac OS X, which had a minimum requirement of a top-level folder named Contents, and inside that a property list named Info.plist.

Bundles and packages

When a folder has a name with an extension for a standard bundle type, such as .app, .bundle, .plugin or .kext, the Finder will display and treat it as if it were a file, also offering to Show Package Contents in its contextual menu. For historical reasons, bundles with the extension .framework aren’t treated as bundles, but are displayed and navigated as if they were still folders.

Although bundles have similarities with packages, Apple draws a clear distinction between them, even if the Finder doesn’t. Directory-based documents and similar items that are used to contain multiple files for Rich Text Format Directory (RTFD) and other documents don’t conform to the rules for bundles, and should be referred to as packages to avoid confusion. Look inside an RTFD package, for example, and you’ll see the structure:

  • Contents, a directory containing a PkgInfo file
  • files containing graphics to be included within the documents
  • TXT.rtf, a Rich Text Format file containing the styled text.

which has some common features, but is structured differently and lacks both an Info.plist file and executable code.

Apps and frameworks

The fundamental requirements for an app or related bundle, including those for app extensions or appexes, are:

  • The whole bundle’s contents are within a single top-level folder named Contents.
  • Within Contents is an Info.plist property list containing information and settings for the bundle.
  • There’s executable code, normally in the form of a Mach-O binary inside the MacOS folder.
  • For historical and compatibility reasons, there’s a PkgInfo file containing a Classic Mac OS type and creator code for the bundle, e.g. APPL and ???? for an app.

However, frameworks have a different and more complex structure, lacking a Contents folder, providing at least one version of the framework, and burying the Info.plist file deeper in the hierarchy. This is shown in full later.

App bundles can contain frameworks and other app bundles, as can framework bundles. In the worst case you may need to dive deep into a series of folder hierarchies to reach your goal.

Info.plist

The information property list Info.plist contains key-value pairs in XML format, for attributes such as:

  • bundle name (CFBundleName),
  • name of bundle executable (CFBundleExecutable),
  • version (CFBundleShortVersionString),
  • document types handled by the app (CFBundleDocumentTypes),
  • app identifier (CFBundleIdentifier),
  • other metadata.

Because of the importance of its contents, code signatures protect the Info.plist from being changed in any way.

App bundle

In addition to the minimum requirements of an Info.plist, executable code, and PkgInfo file inside its Contents folder, apps almost invariably contain several additional folders, among them:

  • Resources is universal, and contains any of a rich range of images, localised versions of menu and other text contents, the app icon and any for custom document types, storyboards for GUI elements, Help books, and more.
  • PlugIns is now common, to contain appexes in particular.
  • Library, containing one or more sub-folders with QuickLook and Spotlight support for custom document types, any login items or property lists for LaunchServices, and other support and extensions for the main app.
  • Apps obtained through the App Store should contain a _MASReceipt folder with the store receipt inside it.
  • Signed apps will have a _CodeSignature folder containing the CodeResources file with signature data.
  • Notarized apps may have a notarization ticket in a CodeResources file, but that isn’t required for notarization to work.
  • Some apps may have an embedded.provisionprofile file containing their provisioning profile.
  • Other folders, such as Frameworks for nested framework bundles.

This layout is shown below, with the essentials in light red.

Framework bundle

In comparison, framework bundles are deeper, lack a top-level Contents folder, contain at least one version of the framework (although two or more are now exceptional), and come with symbolic links. This is shown below, again with the essentials in light red.

Three symlinks merit explanation:

  • Versions/Current links to A, the current (and only) version of the framework.
  • a symlink with the same name as the framework’s code is at the top level of the bundle, alongside the Versions folder. That links through the Current symlink, giving the path Current/A/.
  • a symlink named Resources is also at the top level of the bundle, alongside the Versions folder. That too links through the Current symlink, giving the path Current/A/Resources.

Thus paths to the Info.plist file include Resources ➜ Info.plist via the top-level Resources symlink, Versions/Current ➜ Resources via the Current symlink, and Versions/A/Resources without using any symlinks. This demonstrates how confusing this layout can appear in the Finder.

Frameworks commonly include other nested frameworks, appexes in their PlugIns folder, and a diverse range of other resources including localisations in the Resources folder.

Conclusions

  • Bundles are formal structures of folders and files used for apps and their relatives, and for frameworks. Packages used for RTFD and other documents have different structural requirements.
  • App bundles have a top-level Contents folder, inside which is an Info.plist property file, and executable code inside a MacOS folder.
  • Framework bundles don't have a Contents folder, but contain versions of the framework, normally only one named A. They use important symlinks to provide standard access paths to their contents, and their Info.plist file is inside their Resources folder.
  • Info.plist files and other contents are protected by code signatures and can't be modified without breaking the signature. However, they contain valuable information about the app or framework.
  • Building bundles by hand is prone to error, causing bugs. When possible, leave it to Xcode.

Reference

Apple's instructions for developers.

❌
❌