程序聚合 软件案例 FocusTrap - 赛博朋克风格的专注力管理,App这是一款融合了游戏化元素和 AI 人格系统的专注力管理应用,采用 SwiftUI + SwiftData 构建。-FocusTrap

FocusTrap - 赛博朋克风格的专注力管理,App这是一款融合了游戏化元素和 AI 人格系统的专注力管理应用,采用 SwiftUI + SwiftData 构建。-FocusTrap

2026-01-02 18:00:20
行业:生活服务
载体:IOS APP
技术:Combine、Core Data、Swift Package Manager、SwiftUI

业务和功能介绍

1. 立项背景和目标
FocusTrap 是一款面向深度工作者的专注力管理应用,旨在解决现代人手机成瘾、注意力分散的问题。区别于传统番茄钟的冰冷计时器,本项目通过赛博朋克视觉风格和 AI 人格陪伴系统,将专注过程游戏化,让用户在沉浸式体验中培养专注习惯。目标用户为学生、程序员、创作者等需要长时间深度工作的群体。

2. 核心功能模块
专注计时系统:支持倒计时和自由计时双模式,可设置工作/学习/健身/休息等任务类别,配合白噪音场景(海滩、森林、雨声等)营造沉浸氛围。

屏幕时间管控:集成 iOS FamilyControls API,专注期间可屏蔽指定应用,支持白名单管理和紧急解锁机制,从系统层面阻断干扰。

AI 人格系统:内置 Zero、LuXiao、Thea 等多个 AI 角色,每个角色拥有独特性格和对话风格。通过好感度系统,用户专注表现会影响角色态度,解锁更多互动内容。

战报与数据分析:自动生成每日战术报告,包含专注时长、任务分布、心流评级(S/A/B/C)、专注 vs 娱乐时间对比等可视化数据,支持导出分享。

3. 业务流程
用户启动应用 → 选择 AI 人格 → 创建任务指令(或自由模式)→ 开始专注 → 系统屏蔽干扰应用 → AI 实时对话陪伴 → 完成/中断专注 → 获得经验值和好感度变化 → 查看战报分析 → 解锁新场景/角色内容。中途离开应用会触发"逃跑惩罚"机制,AI 会根据角色性格给出不同反应。

项目实现

1. 整体架构和设计思路
项目采用 SwiftUI + MVVM 架构,分为 Views(视图层)、Services(业务逻辑层)、Modals(数据模型层)三层。数据持久化使用 SwiftData 框架,管理 FocusSession、DailyReport、TaskDirective 三个核心实体。状态管理通过 @StateObject 和 @ObservedObject 实现响应式更新,AppState 作为全局状态容器管理场景切换、屏蔽状态等跨页面数据。

UI 组件采用原子化设计,Components 目录包含 30+ 可复用组件(如 BreathingGlow 呼吸光效、RadarChartView 雷达图、CyberBarcodeView 条形码动画等),通过组合构建复杂界面。屏幕时间管控集成 FamilyControls 框架,RealBlockingManager 封装授权请求和应用屏蔽逻辑。

2. 负责模块和结果
AI 对话系统:设计 TheaterDialogueManager 剧场式对话管理器,支持多幕剧本播放。为 Zero、LuXiao、Thea 三个角色编写 500+ 条差异化台词,覆盖问候、鼓励、逃跑惩罚、完成庆祝等 12 种场景触发器。通过好感度阶段(1-5 级)动态调整语气风格。

战报系统:实现 TacticalReportView 战术报告页,包含能量环、任务甜甜圈图、赛博条形码、战斗天平等可视化组件。TacticalMetricsCalculator 负责计算心流评级(基于中断频率)、战斗结果(专注/娱乐时间比)等指标。支持 ImageExporter 导出为分享图片。

属性测试:编写 15+ 个 Property-Based Tests,覆盖对话脚本格式校验、时长格式化、状态序列化往返等核心逻辑。

3. 遇到的难点和解决方案
FamilyControls 授权时序问题:首次启动时授权弹窗与 UI 渲染竞争导致崩溃。解决方案:将授权请求移至 .task 修饰符中异步执行,并添加授权状态检查防止重复请求。

SwiftUI 编译超时:ContentView 超过 1200 行导致类型推断超时。解决方案:将 MainActionButton、DirectiveHubView 等复杂组件提取为独立文件,使用 @ViewBuilder 拆分条件渲染逻辑。

对话脚本维护困难:多角色多场景台词散落各处难以管理。解决方案:设计统一的 TheaterScript 协议,每个角色独立 Scripts 文件,通过 Property-Based Testing 自动校验格式一致性。

示例图片视频


Xuguoan
30天前活跃
方向: 前端-Web前端、后端-Java、
交付率:100.00%
相似推荐
基于STM32的有线视频分配器
1.此项目主要为满足商业场景下有线视频信号一分多路显示的需求。 2.产品主要包含MCU(STM32)和视频传输芯片,其中MCU通过模拟I2C与视频传输芯片的I2C寄存器进行交互,实现有线视频传输的接收与分配。接收芯片将接收到的一路视频信号,分成完全相同的4路输出,输出到不同的显示设备上。
uniapp+php开发视频前后端
项目概览 基于 uni-app 框架开发的跨平台移动应用,采用 Vue 生态技术栈,一套代码覆盖 Android / iOS / H5 / 微信小程序等 10+ 个终端平台。项目涵盖视频流媒体、实时直播、游戏聚合、社区互动四大核心模块,整体代码量 31,000+ 行,包含 43 个页面路由、48 个 Vue 组件、46 个工具模块。
安卓桌面UI管理app-智呈桌面
自定义桌面UI界面,商业化终端应用管理,适用于酒店、足浴行业电视投影设备,指定启动三方应用、自带app管理功能、支持远程推送升级及安装三方应用,桌面所有模块可自定义尺寸及位置,后台统一管理。
ip电话系统
IP语音系统是基于IP网络传输语音信号的电话通信系统,通过部署IP语音中继设备将传统电话网络与IP网络连接,实现跨区域免费通话,本项目是基于网络终端设备,实现在路由器上的IP电话功能,控制协议使用SIP协议,媒体使用RTP协议,配合软交换实现各种补充业务,主要客户是各国网络运营商,通过RJ11口连接电话机,实现电话功能。
视频格式转化工具
由于市面上大多数视频格式转化工具都收费,所以我也自己开发了一个,并且支持定制化开发,支持各种格式的视频转换。非常实用,转化速度可观。界面友好,适合新手使用,并且非常安全。无需安装,解压后双击运行exe文件即可运行。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服