Apple 文本编辑器独立开发 9 年
一位独立开发者用 Objective‑C 打造极简 Mac/iOS 文本编辑器的九年历程,引发了对原生 Apple 开发与 Web 或跨平台技术栈取舍的更广泛讨论。评论者剖析了 Swift 与 Objective‑C、SwiftUI 的成熟度、向后兼容性和依赖规避,同时也强调了对 UI 细节的极致关注、定价实验以及直接应用内支持如何让 Apple 平台上的小型付费独立应用具有可行性。总体而言,这个讨论串对比了 Apple 原生框架所能提供的稳定性与工艺感,以及 Web 上更快迭代和更广覆盖面的吸引力。
原生 vs Web 与平台稳定性
- 几位评论者认为 Web 运行时极其稳定,且几乎完全向后兼容;旧的 JavaScript 应用通常还能继续运行。
- 相比之下,原生 Apple 平台被视为较脆弱:系统更新可能破坏应用,Swift 早期缺乏 ABI 稳定性,而且 Apple 不会回移植很多 API。
- 也有人指出,框架变动对 Windows 和 Web 来说比 Apple 更严重;在 Apple 上,AppKit/UIKit 随时间推移相对稳定。
Objective‑C vs Swift 与工具链
- 围绕继续坚持 Objective‑C 的选择展开了激烈讨论。
- 支持 ObjC 的观点:旧代码仍可编译、编译更快、工具链/调试器更可预测、“低层且可 hack”、适合低维护产品。
- 支持 Swift 的观点:Swift 已经成熟,提供更好的安全性与表达力,如今 ABI 已稳定,而且 Apple 越来越多地用 Swift 编写新框架,甚至 Foundation 的一部分。
- 有人描述了一种平滑的渐进迁移策略(在 ObjC 应用中加入 Swift 模块/测试);也有人不喜欢 Swift 编译慢、错误信息差。
- 对 ObjC 的长期未来存在分歧:有人认为它终将被边缘化;也有人认为它会在 Apple 操作系统中长期深度嵌入。
SwiftUI vs UIKit/AppKit
- 对 SwiftUI 的体验褒贬不一,偏负面:有人抱怨变化频繁(例如 Combine → Observation)、导航/状态管理故事糟糕、预览有 bug、以及大型列表的性能陡降。
- 也有人说,只要待在它的“快乐路径”里,SwiftUI 很好用;复杂部分可以退回 UIKit/AppKit,甚至把 SwiftUI 嵌进经典视图中。
- 还有人觉得,对严肃应用来说,SwiftUI 仍然远远落后于 UIKit/AppKit。
UX 细节与光标动画
- 平滑的光标动画很有争议:有人觉得非常“顺滑”、令人愉悦;也有人觉得它分散注意力,或相比离散跳动不够精确。
- 很多人强调,细微、可被发现的“边角料”式体验(“fringes”)会带来依恋、信任感以及工艺感,尤其是在文本编辑器里。
商业模式与分发
- 早期弹出的“Pro 功能”窗口和通知权限请求被普遍认为过于激进;开发者计划延后它们。
- 用户很喜欢一次性的“终身”选项,并要求一个无烦扰的基础模式。
- 一个主要讨论串涉及企业采购:应用内购买不能与 MDM/Apple Business Manager 配合使用,因此公司需要一个付费、非 IAP 的 SKU。
- 讨论之后,开发者创建了一个单独的、未公开的、付费的“for business” App Store 版本来支持这一点。
网站、SEO 与营销
- 那篇长技术说明页面因设计和清晰度受到称赞;它是用 Tailwind 和自定义视觉效果手工构建的。
- 那个极细的自定义滚动条被广泛批评为不可用;开发者逐步加宽它,并让它在悬停时展开。
- 网站的 SEO 导向博客(例如“最佳写作应用……”这类列表文章)让一些读者反感;也有人指出,这是一种务实的获客方式。有人建议把“真正”的文章分离到单独的 RSS feed 中。
独立经济、平台选择与依赖
- 很多人称赞这款应用的打磨、性能和零第三方依赖路线,并将其归功于 AppKit/UIKit 的深度。
- 有几位认为,Apple 用户仍然相对愿意为高质量独立应用付费,不像典型的 Windows/Linux 用户。
- 这款应用目前收入明显低于欧洲全职薪资,因此仍是副业,但营收在增长。
- 讨论还涉及锁定 vs 覆盖面:有些人更喜欢专注于一个平台,以获得更高质量和更少麻烦;另一些人则主张用跨平台技术栈(Flutter、React Native、Qt、Delphi 等)来触达更大的市场,代价是“原生感”和部分功能。