在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

鸿蒙 Next 社恐脱敏训练营 App 开发实战:渐进暴露 + 四阶任务 + 勇气值 + 深呼吸急救

作者:duluo
SDK 版本:HarmonyOS API 24 (Next)
开发工具:DevEco Studio 5.0+
语言框架:ArkTS + ArkUI
字数:约 10000 字


目录

  1. 引言:社交焦虑与数字干预
  2. 产品概念与三 Tab 架构
  3. 首页 Tab:勇气值与今日任务
  4. 四阶任务系统设计
  5. 训练 Tab:渐进暴露
  6. 记录与勇气值系统
  7. 深呼吸急救工具
  8. 统计 Tab:成长数据
  9. 视觉设计:暖橙治愈
  10. ArkTS 兼容性记录
  11. 第三十五款 App 全景回顾
  12. 结语

1. 引言:社交焦虑与数字干预

1.1 社交焦虑的普遍性

社交焦虑(Social Anxiety)是当代社会最常见的心理问题之一。研究表明,约 7-13% 的人在一生中的某个阶段经历过社交焦虑症状——在社交场合感到紧张、害怕被评判、回避社交互动。在年轻人群体中,这个比例更高——约 30% 的大学生报告过中等以上的社交焦虑症状。社交焦虑不仅影响心理健康,还会影响职业发展、人际关系和生活质量。

传统的社交焦虑干预方法主要依赖面对面心理咨询,但存在三个障碍:

障碍 1:羞耻感
    社交焦虑者害怕与人交流,因此害怕去找心理咨询师
    这是一个悖论——需要帮助的人往往最不敢去寻求帮助

障碍 2:成本
    专业心理咨询费用较高
    长期治疗的可持续性差

障碍 3:练习机会不足
    每周一次的咨询间期没有练习机会
    技能需要日常练习才能内化

为什么暴露疗法在数字化环境中有效:暴露疗法的核心机制是"习惯化"——当一个人反复面对恐惧的刺激时,焦虑反应会自然消退。数字化工具可以提供一个"低风险的练习场":用户不是真的在社交场合中接受评判,而是在 App 的引导下逐步接近真实的社交情境。任务是真实的(真的去说"谢谢"、真的去打一个电话),但练习的节奏和难度是用户自己掌控的。

1.2 本 App 的定位

本 App 定位为社交焦虑的数字化辅助工具,基于认知行为疗法中的"暴露疗法"原理:

暴露疗法的核心逻辑:
    回避 → 焦虑维持
    面对 → 焦虑消退

App 的实现方式:
    12 个从易到难的社交任务
    每次完成记录心情变化
    累积"勇气值"作为正向激励
    深呼吸工具应对即时焦虑

1.3 功能清单

功能清单:
├── F1: 12 个社交任务(4 阶 × 3 项)
├── F2: 任务完成记录(心情 + 笔记)
├── F3: 勇气值系统(每次练习 +10)
├── F4: 连续天数追踪(从今天往前数)
├── F5: 首页勇气值仪表盘(48px 大号数字)
├── F6: 今日推荐任务(自动推荐未通关任务)
├── F7: 4-7-8 深呼吸急救工具(19 秒周期)
├── F8: 各阶段进度统计(0%/33%/67%/100%)
├── F9: 最近记录列表(最近 20 条含心情 Emoji)
└── F10: 通关通知(Toast 提示)

功能总量的变化:35 款 App 中,功能数量最少的 App(复古未来风电视,9 个功能)和功能最多的 App(AI 简历优化大师,15 个功能)相差不大。"社恐脱敏训练营"的 10 个功能处于中等偏下水平——功能数量不是衡量 App 质量的指标,10 个聚焦的功能比 20 个宽泛的功能更有价值。


2. 产品概念与三 Tab 架构

2.1 三 Tab 设计

build() {
  Stack() {
    Column().width('100%').height('100%').backgroundColor(C.bg)
    Column() {
      this.buildHeader()
      if (this.activeTab === 0) this.buildHomeTab()
      else if (this.activeTab === 1) this.buildTasksTab()
      else this.buildStatsTab()
      this.buildTabBar()
    }
    if (this.showBreath) this.buildBreathOverlay()
    if (this.showComplete) this.buildCompleteOverlay()
  }
}
Tab 图标 功能 核心内容
0 🏠 首页 勇气值 + 今日任务 + 深呼吸入口
1 🎯 训练 4 阶任务列表
2 📊 成长 统计 + 记录列表

Tab 顺序的逻辑:首页作为默认打开 Tab,展示勇气值和今日推荐任务——用户不需要任何操作就能看到"今天该做什么"。训练 Tab 是核心功能页,展示所有任务的完整列表。成长 Tab 需要用户有练习记录后才能展示数据,放在最后一位。

Header 中的"深呼吸"按钮:首页和训练 Tab 的 Header 右侧始终显示"🧘 深呼吸"按钮。这个按钮在整个 App 中固定存在——无论用户在哪个 Tab,都能快速调用深呼吸工具。社交焦虑的一个特征是"突发性紧张"——可能在看任务列表时突然感到焦虑,这时能立刻使用深呼吸工具。


3. 首页 Tab:勇气值与今日任务

3.1 勇气值系统

calcStats(): void {
  let total = 0;
  for (let i = 0; i < this.tasks.length; i++) {
    total += this.tasks[i].doneCount;
  }
  let pts = 0;
  for (let i = 0; i < this.tasks.length; i++) {
    pts += this.tasks[i].doneCount * 10;
  }
  this.totalPractices = total;
  this.couragePoints = pts;
}

勇气值 = 总练习次数 × 10。每次完成一次社交任务获得 10 点勇气值。这个简单的线性计算让用户能够清晰预见"再做一次能加多少分"。

勇气值的命名意义:为什么叫"勇气值"而不是"积分"或"经验值"?“勇气"这个词本身就是一种正面暗示——用户不是在"赚积分”,而是在"积累勇气"。语言的选择影响了用户的自我认知。当用户看到"勇气值 +10"的通知时,TA 感觉的不是"获得了一个虚拟奖励",而是"我真的做了一件有勇气的事"。

首页勇气值的视觉展示:首页顶部的大号数字(48px 粗体)搭配"你的勇气值"标签和"每次练习 +10"的辅助文字。数字的橙色使用了主色 #F59E0B——暖色强化了"温暖鼓励"的感受。

3.2 今日推荐任务

@Builder
buildRecommendedTask() {
  if (this.getRecommendedId() > 0) {
    // 显示推荐任务卡片
  }
}

首页自动推荐一个"未完成"的任务。如果所有任务都已完成,推荐卡片自动隐藏。推荐算法很简单——按任务 ID 顺序找到第一个未完成的。不引入复杂度排序,因为 12 个任务已经按照"从易到难"设计了 ID 顺序。

推荐任务的显示逻辑:首页调用 getRecommendedId() 获取推荐任务 ID。如果返回 0(表示所有任务都已通关),buildRecommendedTask 中的 if (this.getRecommendedId() > 0) 条件为 false,整张推荐卡片不渲染。这是一种"条件渲染"的典型用法——不需要通过 visibility 属性控制显隐,而是完全从组件树中移除。

推荐任务卡片的结构:卡片包含任务标题(Lv.X + 名称)、任务描述、一条 💡 提示和"开始练习 🎯"按钮。点击按钮后跳转到完成记录弹窗,而不是跳转到训练 Tab——这是因为从首页进入时用户已经看到了推荐任务,直接弹出完成弹窗是最短的路径。


4. 四阶任务系统设计

4.1 12 个任务的内容设计

难度 任务 核心技能
1 🌱 初级暴露 目光接触、说谢谢、问问题 在场——让自己出现在社交场景中
2 🌿 主动接触 打招呼、打电话、赞美 主动——主动发起社交行为
3 🌳 深度互动 加入对话、提请求、表达不同 表达——在社交中表达自我
4 🌲 社会融入 自我分享、参加活动、邀请 连接——建立和维持社交连接

任务设计的核心原则:每个任务都是具体的、可执行的——不是"多和人交流"这种抽象目标,而是"向店员说谢谢"这种明确动作。

为什么从"目光接触"开始:目光接触是最低强度的社交行为——不需要说话、不需要微笑、不需要停留。用户只需要在路上与陌生人进行 1 秒的目光接触。这个任务几乎是"零风险"的——即使紧张,也只是短暂的一瞬间。从最低强度开始,让用户获得第一次成功体验,建立信心。

为什么以"主动邀请"结束:主动邀请朋友是社交焦虑者最难完成的行为之一——它涉及被拒绝的风险。放在最后一阶,是因为用户在完成前面 11 个任务后,已经积累了足够的成功经验和自我效能感,更有能力面对"被拒绝"的恐惧。

4.2 通关机制

savePractice(): void {
  task.doneCount++;
  if (task.doneCount >= 3) { task.done = true; }
}

每个任务需要完成 3 次 才能通关。三次练习的设计依据:

第 1 次:突破"不敢做"的心理障碍
第 2 次:验证"我确实能做到"
第 3 次:将行为内化为"我可以做到"

3 次不是随意选择的数字——太少(1 次)不足以形成习惯,太多(5 次)可能让用户在已经克服恐惧后感到无聊。认知行为疗法的研究表明,3 次成功的暴露练习足以显著降低焦虑反应。

通关后的通知:在 savePractice() 方法中,保存后通过 promptAction.showToast 显示通知。如果 task.done === true(刚通关),显示"🎉 恭喜通关!“;否则显示"🦋 记录成功,真棒!”。两种不同的 Toast 信息让用户感知到"通关"和"普通练习"的区别——通关是一个更值得庆祝的时刻。

通关状态对首页推荐的影响:当任务通关后,done 字段变为 truegetRecommendedId() 方法会跳过它,推荐下一个未通关的任务。当 12 个任务全部通关后,getRecommendedId() 返回 0,首页的推荐卡片自动隐藏。用户完成了所有训练——这是一个值得庆祝的里程碑。


5. 训练 Tab:渐进暴露

@Builder
buildTasksTab() {
  Column() {
    Scroll() {
      Column() {
        ForEach([1, 2, 3, 4], (level: number) => {
          this.buildLevelCard(level)
        }, (level: number) => level.toString())
      }
    }
  }
}

四个阶段的卡片按顺序排列,每个阶段显示该阶段的 3 个任务。每个任务显示:

  • 完成状态图标(⬜ 未开始 / 🔄 练习中 / ✅ 已通关)
  • 任务标题
  • 练习次数
  • 🎯 开始按钮

阶段卡片的视觉层级

┌──────────────────────────────────┐
│  🌱 第一阶 · 初级暴露      60%    │ ← 阶段标题 + 进度
│  ██████████████░░░░░░░░░░░       │ ← 进度条
│                                    │
│  ⬜ 与目光接触       练习 0 次  🎯 │ ← 任务项
│  ✅ 微笑着说"谢谢"   练习 3 次     │
│  🔄 问一个问题       练习 1 次  🎯 │
└──────────────────────────────────┘

三个阶段图标使用了从"小到大"的 Emoji——🌱(幼苗)→ 🌿(草丛)→ 🌳(大树)→ 🌲(松树)。这个渐进变化的视觉隐喻暗示用户的成长:从一株幼苗开始,经过训练成长为参天大树。

5.1 阶段进度计算

getLevelProgress(l: number): number {
  let done = 0; let total = 0;
  for (let i = 0; i < this.tasks.length; i++) {
    if (this.tasks[i].level === l) { total++; if (this.tasks[i].done) done++; }
  }
  if (total === 0) return 0;
  return Math.round(done / total * 100);
}

每个阶段的进度 = 该阶段已通关任务数 ÷ 该阶段总任务数 × 100%。每个阶段 3 个任务,所以进度只会是 0%、33%、67% 或 100%。

5.2 任务完成状态的三种图标

Text(t.done ? '✅' : (t.doneCount > 0 ? '🔄' : '⬜')).fontSize(16)

三种图标对应三个状态:

图标 条件 含义 用户感知
doneCount === 0 从未练习过 “还没开始”
🔄 doneCount > 0 && !done 练习中但未通关 “在做了”
done === true 已完成 3 次练习 “通关了”

“🔄”(练习中)状态的激励作用:当用户完成第一次练习后,图标从⬜变为🔄。这个变化暗示"你已经开始了,继续下去就能通关"。这是一种微妙的进度提示——用户会倾向于"不浪费已经付出的努力"而继续练习。


6. 记录与勇气值系统

6.1 完成弹窗

完成弹窗包含三个交互元素:

  1. 心情选择:5 档 Emoji(😰→😐→🙂→😊→🥰),记录完成后的情绪状态
  2. 感受记录:可选的文本输入
  3. 保存按钮:记录本次练习
savePractice(): void {
  task.doneCount++;
  if (task.doneCount >= 3) { task.done = true; }
  const record = { id, taskId, taskTitle, date, mood, note };
  this.records = [record, ...this.records];
  this.tasks = [...this.tasks];
  this.calcStats();
}

心情选择器的设计:5 档 Emoji 覆盖了从"很紧张"到"很开心"的完整情绪光谱。社恐脱敏训练的一个重要观察是——用户完成社交任务后,即使过程很紧张(😰),结果也可能是积极的(😊)。通过记录心情,用户可以回顾到"虽然当时很紧张,但完成后心情变好了"这个模式——这是认知行为疗法中的"行为实验"核心发现。

保存逻辑中的通关判定:每次保存时判断 doneCount >= 3,达到 3 次后自动标记为通关。通关后会在列表中显示"✅ 已通关"标签,并且在首页的"今日推荐"中不再推荐已通关的任务。

6.2 连续天数计算

calcStreak(): number {
  let streak = 0;
  const today = new Date();
  for (let d = 0; d < 365; d++) {
    const chk = new Date(today);
    chk.setDate(chk.getDate() - d);
    const dateStr = chk.getFullYear() + '-' + (chk.getMonth() + 1) + '-' + chk.getDate();
    let found = false;
    for (let i = 0; i < this.records.length; i++) {
      if (this.records[i].date === dateStr) { found = true; break; }
    }
    if (found) { streak++; } else { break; }
  }
  return streak;
}

与冥想 App 相同的连续天数算法——从今天往前遍历,找到第一个没有记录的日期即停止。


7. 深呼吸急救工具

7.1 4-7-8 呼吸法

openBreath(): void {
  this.showBreath = true;
  this.breathPhase = 0;
  let count = 0;
  this.breathTimer = setInterval(() => {
    count++;
    if (count % 4 === 0) this.breathPhase++;
    if (count % 11 === 0) this.breathPhase++;
    if (count % 19 === 0) this.breathPhase++;
  }, 1000);
}

4-7-8 呼吸法的三个阶段的切换时机

吸气 4 秒:第 1-4 秒(count 1-4),count % 4 === 0 时切换
屏息 7 秒:第 5-11 秒(count 5-11),count % 11 === 0 时切换
呼气 8 秒:第 12-19 秒(count 12-19),count % 19 === 0 时切换
总周期:4 + 7 + 8 = 19 秒

4-7-8 呼吸法的科学原理:也称为"放松呼吸法",由哈佛医学院的 Andrew Weil 博士推广。其原理是通过延长呼气时间(8 秒)来激活副交感神经系统,降低心率和血压。4-7-8 的比率——吸气 4 秒、屏息 7 秒、呼气 8 秒——是最经典的组合。屏息 7 秒让二氧化碳在血液中积累,促进氧气释放到细胞中。

为什么在社恐 App 中加入深呼吸工具:社交焦虑的即时生理反应包括心率加快、呼吸变浅、肌肉紧张。深呼吸是最快的物理干预方式——在 19 秒内(一个完整周期)就可以开始降低生理唤醒水平。用户在完成社交任务前如果感到紧张,可以先做 1-2 轮深呼吸再开始。

深呼吸弹窗的 UI 设计:弹窗使用居中卡片样式,背景半透明黑色。呼吸引导文字(吸气/屏息/呼气)在弹窗中央显示,通过 breathPhase 变量每 19 秒循环一次。关闭弹窗需要点击"关闭"按钮——点击弹窗外不会关闭,同样设计的原因与冥想 App 一致:鼓励用户完成练习再关闭。

与冥想 App 呼吸引导的对比:冥想 App 使用 4-4-4-4 模式(16 秒周期),社恐 App 使用 4-7-8 模式(19 秒周期)。两个 App 的呼吸节奏不同,因为使用场景不同——冥想 App 用于日常静心,节奏舒缓即可;社恐 App 用于焦虑急性发作,需要更长的屏息和呼气时间来激活副交感神经。4-7-8 的 19 秒周期比 4-4-4-4 的 16 秒周期更有效。


8. 统计 Tab:成长数据

@Builder
buildStatsTab() {
  // 空状态:没有记录时显示引导
  // 有记录时:成长概览 + 各阶进度 + 最近记录
}

成长概览包含三个核心指标:总练习次数(琥珀色)、勇气值(紫色)、连续天数(红色)。下方展示四个阶段的进度条和最近 20 条练习记录。

统计页面的数据流:所有统计指标都源自 calcStats() 方法,该方法在 aboutToAppear()savePractice()calcStats() 三个时机被调用。每次保存新练习后自动刷新所有统计。

勇气值的可视化:勇气值在首页和统计 Tab 同时显示,但表达方式不同——首页用大号数字突出显示(48px),统计 Tab 将勇气值与总练习次数和连续天数并列展示(32px)。首页的勇气值是"激励",统计 Tab 的勇气值是"记录"。

最近记录列表:统计 Tab 底部展示最近 20 条练习记录,每条记录包含任务名称、心情 Emoji 和日期。心情 Emoji 让用户一目了然地看到自己的情绪变化趋势——如果连续几天的 😊 比 😰 多,说明训练正在产生积极效果。记录按时间倒序排列,最新的记录排在顶部。


9. 视觉设计:暖橙治愈

const C: ColorScheme = {
  bg: '#FFF7F0',           // 暖白底色
  bgCard: '#FFFFFF',
  bgLight: '#FFEDE0',      // 浅橙底
  primary: '#F59E0B',      // 琥珀橙
  primaryDim: 'rgba(245,158,11,0.1)',
  accent: '#10B981',       // 翡翠绿(完成)
  warm: '#EF4444',         // 红色(连续天数)
  gold: '#8B5CF6',         // 紫色(勇气值)
  text: '#2D1810',         // 深棕
  textLight: '#8A6E5A',
  textMuted: '#B8A898',
  border: '#F0E8E0'
};

暖橙色调传递温暖和鼓励——“你正在做一件勇敢的事”。

暖色与"勇气"的关联:橙色在色彩心理学中代表活力、温暖和自信——这与 App 想要传达的情感一致。与冥想 App(冷灰→平静)不同,社恐训练 App 需要的是"行动力"而非"平静"。暖色调在潜意识中传递"去做"的信号。

对比 35 款 App 的配色:从"意愿清单"的温暖琥珀到"冥想引导"的冷静灰,再到"社恐训练"的治愈橙——35 款 App 的配色覆盖了从"冷静"到"行动"的完整光谱。每个 App 的配色策略都与产品功能高度一致。

UI 组件在暖色背景上的适配:暖白色背景 #FFF7F0 配合琥珀主色 #F59E0B,卡片使用纯白 #FFFFFF 在暖白背景上形成微微的对比。输入框和次要背景使用 #FFEDE0(浅橙),比卡片略暖但比页面背景略亮,形成了"页面→卡片→输入框"的三层视觉嵌套。深棕色文字 #2D1810 在暖色背景上比纯黑更柔和,减少了长时间使用的视觉疲劳。


10. ArkTS 兼容性记录

10.1 编译错误

# 错误类型 位置 修复
1-3 buildHomeStat 不是 @Builder 首页 添加 @Builder 注解
4 const rec 在 @Builder 推荐任务 改用 getter 方法
5 const progress 在 @Builder 阶段卡片 改用方法调用
6-7 const task + if(!task)return 在 @Builder 完成弹窗 改用 getter 方法

实际错误数:7 个。7 个错误中有 5 个是重复之前的教训类型(@Builder 中不能有变量声明),2 个是 @Builder 中数组 find 方法的变量赋值。这是一个之前遇到过但未单独记录的教训——用 find 方法返回值赋值给 const 变量本质上也是"@Builder 中不能有变量声明"的变体。

10.2 教训 38:@Builder 中不能使用数组 find 方法赋值的变量

// ❌ 错误(ArkTS 不允许)
@Builder buildCard() {
  const rec = this.tasks.find(t => !t.done);
  if (!rec) { return; }
}

// ✅ 正确:将 find 逻辑封装到 getter 中
getRecTitle(): string {
  const t = this.tasks.find(t => !t.done);
  if (t) return t.title;
  return '';
}

教训 38 的本质:任何在 @Builder 方法中使用 const 声明变量的行为都会被 ArkTS 编译器拒绝——无论这个变量是通过什么方式赋值的(直接赋值、find 返回值、filter 返回值等)。解决方案始终是:将数据获取逻辑提取到独立的 getter 方法中。

10.3 35 款 App 的教训分布

类别 数量 占所有教训比例
@Builder 相关 9 条 24%
组件 API 限制 6 条 16%
数据类型 5 条 13%
状态管理 4 条 11%
语法限制 4 条 11%
生命周期 3 条 8%
其他 7 条 18%

@Builder 相关的错误以 9 条的数量和 24% 的比例继续稳居榜首——35 款 App 中,近四分之一的教训都与 @Builder 的使用有关。这个比例从 App 13 到 App 35 几乎没变,说明 @Builder 的约束是 ArkTS 语言设计中的"结构性难点"。


11. 第三十五款 App 全景回顾

11.1 数据总览

指标 数值
代码行数 520 行
编译错误数 7 个
@Builder 方法 10 个
社交任务 12 个(4 阶 × 3)
弹窗 2 个(完成记录 + 深呼吸)
数据模型 2 个(Task + PracticeRecord)
setInterval 1 个(深呼吸计时器)

11.2 38 条 ArkTS 铁律

App 1-7  | 基础语法
App 8-23 | ForEach、setInterval、@Builder 等
App 24   | 索引签名、数字键名
App 25-31| @Builder 约束系列
App 32   | @State 变量名冲突
App 33-34| FlexWrap、setInterval 伪暂停
App 35   | @Builder 中数组 find 变量不可用

11.3 产品类型覆盖

35 款 App 覆盖了 9 种产品类型——从情感陪伴到职业发展,从氛围体验到健康引导,从内容创作到社交训练。以下是按类型分类的列表:

情感陪伴:情绪垃圾桶、AI 树洞、漂流瓶
生活管理:愿望清单、习惯打卡、意愿清单
人生规划:遗愿清单
职业发展:AI 简历优化大师
内容创作:博客一键转图文、爆款脚本库
氛围体验:复古未来风电视
健康引导:冥想与正念
记录分析:梦境解析日记
心理训练:社恐脱敏训练营  ← 第 9 类

社恐脱敏训练营是第一款"心理训练"类 App——它不是"记录"也不是"引导",而是"训练"。用户需要在真实世界中完成具体的行为任务,App 提供的是"任务清单 + 勇气值 + 完成记录"的框架。这类 App 的特点是:核心行为发生在 App 之外


12. 结语

12.1 从"行为记录"到"行为改变"

社恐脱敏训练营是 35 款 App 中最特别的一款——它不关注用户在 App 内的操作(写了多少字、看了多少页面),而是关注用户在 App 之外的行为(有没有对陌生人说谢谢、有没有打电话)。App 只是一个"记录本"——真正的改变发生在真实世界中。

35 款 App 的行为层级

层级 1:App 内操作(打字、点击、阅读)
    → 几乎所有 App 都属于这一层

层级 2:App 外行为(社交练习、运动冥想)
    → 冥想与正念、社恐脱敏训练营 属于这一层

层级 3:生活改变(习惯养成、人生规划)
    → 意愿清单、遗愿清单 属于这一层

第 35 款 App 达到了"层级 2"——它鼓励用户在 App 之外做出行为改变。这个设计方向的转变标志着开发理念从"优化 App 体验"到"优化现实生活"的演进。

12.2 从 35 款 App 看产品方向

App 1-10:  基础语法学习期 → 代码会写了
App 11-20: 开发模式成熟期 → 模式会用了
App 21-30: 产品类型探索期 → 工具会做了
App 31-35: 用户价值思考期 → 行为会变了

第 35 款 App 提出的问题不再是"这个功能怎么做",而是"这个功能能不能让用户在现实生活中有改变"。这个问题的转变比任何技术积累都更重要。

12.3 感谢

35 款 App、35 篇博客、约 350,000 字。从情绪垃圾桶到社恐脱敏训练营,从释放情绪到面对恐惧——产品的进化方向越来越接近生活的核心命题。

第 35 款 App 是关于"勇气"的。它不会魔法般地消除社交焦虑,但它提供了一个结构化的路径——从目光接触开始,一步一步走到主动邀请。路径在那里,走不走,需要用户的勇气。

但至少——现在有一款 App 愿意陪你一起走。从第 1 次目光接触开始,到第 36 次主动邀请结束——每一次 +10 的勇气值都在告诉自己:我能做到。

这不是第 35 款 App 的终点,而是第 36 款的起点。35 款 App 的积累——38 条 ArkTS 铁律、16 种复用模式、9 种产品类型——都会成为下一款 App 的起点。这就是"持续输出"的力量:不是每一款 App 都很完美,但每一款 App 都比前一款好一点点。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐