250614 夜记 · iOS app 技术选型定下来了

2026年6月14日
约 3 分钟
暂无翻译稿。

定下来了。


scope/life scope/work/coding/indie

问题

一直有一个 app 想法:日历矩阵对我的时间感知没用。这周三、下周三、下下周三放在同一列,我不会因为这个对齐获得任何信息。我只想知道哪些事快了、哪些事还远。

所以想要一条时间轴。线段表示有起止的 schedule,点表示 due。极简。Widget 应该作为核心部分——扫一眼就知道未来几天节奏。

技术选择

三个候选:SwiftUI / Flutter / React Native。

排除 React Native 最快——iOS only 的前提下跨平台框架没有意义。剩下 SwiftUI 和 Flutter 之间犹豫了一段时间。

Flutter 的强项是像素级自定义 UI、跨平台一致。但有两个问题:

  1. 我不打算做 Android——不认可那边的生态,盗版、碎片化、用户习惯都不想 deal with。跨平台前提不存在了。
  2. Widget 只能用 SwiftUI 写。如果用 Flutter 做 app 本体再加一个 SwiftUI widget,两套 UI 系统,设计语言要手动对齐,长期维护成本不低。而且 widget 对我来说不是锦上添花,是核心。

所以回到 Swift + SwiftUI。

之前有两个顾虑,今天都解决了:一是 Neovim 做 Swift 开发的环境已经成熟了(sourcekit-lsp + xcodebuild.nvim + preview 插件,可以完全不开 Xcode);二是自定义极简 UI 在 SwiftUI 里做 timeline 这种视图并不难,Canvas + Shape 就够了,不需要做「跟 HIG 打架」那种挣扎。

结论:Swift + SwiftUI。

下一步

  • 先把 Neovim Swift 环境搭起来
  • 然后画一个静态 timeline 原型——一条竖线,几个点,几根线段
  • 再用 TimelineView 让它动起来
  • 设计 tokens 先定(颜色、间距、线段风格)

跟花聊到最后发现,其实我自己已经把逻辑走完了,她只是帮我确认了一遍。

前文
没了
后文
2024-PRESENT
CC BY-NC-SA 4.0
©
froQ