Prototype · Private sourceCase 06 / On-device iOS

小柴。

每天一张中文小纸条,可以随手画一笔、生成分享图,也能在主屏幕 Widget 上安静出现。

A private-source, local-first iOS prototype for one daily Chinese note, focused drawing, shareable cards, local backup, and home-screen widgets.

Role
独立 iOS 开发者 · 产品与工程实现
Stage
v0.0.9 · Simulator RC · 源码私有
Core loop
每日纸条 → 全屏涂鸦 → 分享 / Widget
Privacy
无登录 · 无云 · 无追踪 · 无第三方依赖
小柴主界面,显示每日中文纸条、原创线稿和近 14 天日期导航 主界面 · iPhone Simulator
小柴分享面板,显示竖版分享图实时预览与继续分享按钮 竖版分享预览 · iPhone Simulator
v0.0.9 Simulator RC · 随系统切换浅色与深色外观

不是再造一个内容 Feed,而是让一天只出现一张纸条。

小柴把信息量主动压到最低:每天由本地资源决定一张纸条,用户可以读、画、分享,也可以什么都不做。最近 14 天的导航提供回看,但不制造无限下滑。

产品的信任前提同样简单:纸条、涂鸦和偏好不需要账户,不上传云端,也不依赖第三方分析服务。

UIKit 主应用与 WidgetKit 共用一个确定性的本地模型。

  1. Bundled JSON 提供 365 条常规纸条与 1 条闰日特例,本地文件保存用户涂鸦与偏好。
  2. UIKit 纯代码布局承载纸条、近 14 天日期、全屏涂鸦、撤销 / 重做、整笔橡皮、可恢复清空和主题交互。
  3. 分享面板实时预览竖版或方形卡片,确认后再生成高清图片并交给系统分享面板。
  4. 用户可以通过系统 Files provider 主动导出或导入版本化本地备份;导入先校验,再原子合并。
  5. WidgetKit 读取 App Group payload;共享容器不可用时显示 bundled deterministic fallback。
  6. 版本、隐私清单、发布标识、图标、iPhone / iPad 构建与 UI 测试进入统一 Makefile 门禁。
  • Swift
  • UIKit
  • SwiftUI
  • WidgetKit
  • XCTest
  • Privacy Manifest
  • App Group

隐私不是说明文字,而是架构中没有网络层。

主 App 使用 UIKit,Widget 使用 SwiftUI

UIKit 负责需要手势、绘制和生命周期控制的主界面;WidgetKit 的 SwiftUI 声明式视图负责系统小组件。两种 UI 技术围绕共享模型协作,而不是强行统一。

共享失败时不悄悄写回普通偏好

App Group suite 不可用时,主应用不会回退到标准 UserDefaults;Widget 只展示可预测的 bundled fallback,避免两个进程看起来同步、实际数据分叉。

发布检查前置

App、Widget 与 Tests 的版本一致性、Privacy Manifest、标识和图标由脚本检查,减少“模拟器能跑但发布配置缺失”的后期返工。

本案例公开的验证证据。

  • 模拟器画面本页截图来自 v0.0.9 RC,展示修订后的夜纸主题与分享预览链路。Visual proof
  • 构建与测试Simulator RC 覆盖 iPhone、iPad、iOS 17.5 / 26.2 / 26.5,并通过单元测试、UI 测试、Sanitizer、静态分析与无签名 Release build。Private logs
  • 隐私门禁App 与 Widget 各自包含 Privacy Manifest,并声明不追踪、不收集数据。Static checks
  • 学习前置公开的 UIKitLifecycleDemo 记录 UIKit 生命周期、事件路由与测试工作流。Review ↗

原型边界与分发状态。

Private-source boundary

本案例只发布脱敏截图与工程说明,不公开源码仓库地址、签名信息、设备标识或构建日志。页面不提供下载,也不暗示已经上架。

当前 v0.0.9 已完成 Simulator RC,尚未开始真机签名、App Group 跨进程真机验收或 TestFlight / App Store Connect 分发。模拟器与无签名 Release build 可以验证产品主流程、编译和 fallback,但不能替代真实设备证据。

Back to first case · 01 / 06全智评 · 证据优先的实操评价