零代码的"死了么"APP:从网页到应用开发思路

2026-01-16 16:55:34
文章摘要
“死了么”APP因精准戳中独居人群痛点而蹿红,本文介绍了用两套方案搭建该APP原型的方法,包含开发、封装、商业化改造方向及避坑指南,还对比不同方案特点,推荐了学习路径,为开发此类型应用提供参考。

凌晨三点,你一个人倒在出租屋里。

没有智能手表报警,没有摄像头识别异常,甚至没有人知道你今晚在做什么,多久才会被发现?

这是当代年轻人必须要面对的困境。

最近,一款叫 “死了么” 的 APP 在 AppStore 下载榜突然窜升。它不监测心率,不分析睡眠,只做一件事:48 小时不打卡,系统自动给你的紧急联系人发邮件,提醒对方“你可能已经出事了”。

这没有任何技术含量,却精准戳中了独居年轻人最隐秘、也最现实的焦虑。这是数字时代最朴素、也最诚实的遗嘱系统,确保你死了会被发现。

今天我们就用两套零代码方案,做出一个能跑的“死了么”原型,全程只用点鼠标,毕竟写代码不是你的工作。


图 1:APP 功能演示示例(点击打卡与倒计时效果)

01


为什么这个 APP 有商业价值

场景 1:独居老人监护

中国独居老人超过 1.18 亿,子女不在身边,每天打电话又显得多余。这个 APP 可以设置成每天上午 10 点前打卡,如果没打卡,自动通知子女或物业。

场景 2:高风险职业自我保护

记者、律师、社工等职业有时会面临人身威胁。设置成每 12 小时打卡一次,如果失联,紧急联系人会第一时间收到警报。

场景 3:心理健康监测

抑郁症患者的家属可以用这个功能变相监测状态。不是监控聊天记录,而是监测是否保持正常作息。如果连续 3 天凌晨 4 点才打卡,说明可能需要介入。

商业化路径

模式 定价 目标用户 年收入潜力
To C 免费+广告 0 元,广告分成 独居年轻人 50 万(10 万用户×5 元 CPM)
To B 企业版 1980 元/年 物业公司、养老机构 200 万(1000 家×1980 元)
To G 公益定制 政府采购 社区独居老人监护 500 万+(单个区级项目)

02


方案 A:Gemini Canvas 模式秒出成品

适合完全不懂技术的人,全程可视化操作。

什么是 Canvas 模式?

Gemini 的 Canvas 是个代码画布,你用自然语言描述需求,AI 直接生成可运行的网页应用,还能实时预览。不需要下载任何软件,浏览器打开就能用。

访问方式

  1. 打开 gemini.google.com
  2. 点击左下角的 Canvas 图标即可(画板样式)

图 2:Gemini 界面左下角红框标注的 Canvas 按钮

提示词模板

复制以下内容,粘贴到 Gemini 对话框:

帮我开发一款极简风格的“独居安全监控”应用,名字为“死了么?”。

核心功能:

1. 一键每日签到:一个醒目的按钮,供用户每天确认自身安全。
2. 紧急通知系统:如果用户在可自定义的时间段内(例如 48 小时)未能签到,应用会自动向指定的紧急联系人发送警报邮件/短信。
3. 黑色幽默/极简 UI:简洁、高对比度的界面。显示“已生存天数”计数器,“当前状态:活着且工作”,“当前状态:活着且睡觉”等状态信息。
4. 简易上手:用户只需输入姓名和紧急联系人的电子邮件地址即可。无需复杂的社交功能。

技术栈:
- 简单的状态管理,用于跟踪上次签到时间戳。
- 后台任务或服务器端定时任务,用于在超过签到截止时间后触发警报。

UI 风格:
- 美学风格:粗犷主义或超极简主义。
- 关键元素:一个大型“我还活着”按钮、一个显示距离下次警报时间的倒计时器,以及一个用于设置联系人信息的简单设置页面。

生成后的调试

Gemini 会生成一个完整的 HTML 文件,右侧实时预览。


图 3:Gemini 代码生成与右侧实时预览界面

如果 UI 不满意,可以追加指令:

“请把按钮改成红色,倒计时改成更大的字体”

或者

“增加一个功能:点击按钮时播放’活着真好’的音效”

Gemini 会实时修改代码并刷新预览。

部署方式

方式 1:直接使用(最简单)

新建一个 index.html 文件,复制 Gemini 生成的代码,粘贴进去并保存。双击打开,就能在浏览器里用。
缺点:只能自己用,无法分享给别人。

方式 2:托管到 GitHub Pages

步骤:

  1. 注册 GitHub 账号(github.com
  2. 创建新仓库,名字为 died-yet
  3. 上传 index.html 文件
  4. 在仓库设置中开启 GitHub Pages
  5. 访问 yourname.github.io/died-yet

图 4:GitHub Pages 设置页面,显示如何开启免费托管

优势

  • 完全免费
  • 有独立网址,可以分享给家人朋友
  • 支持自定义域名(如果你有的话)

03


方案 B:Cursor 编辑器深度定制

适合想要更多控制权的人,比如需要添加数据库、微信通知等功能。

Cursor 是什么?

Cursor 不是 VS Code 的插件,而是基于 VS Code 深度改造的独立编辑器。核心优势:

  • AI 理解你的整个项目,不是单个文件
  • 用自然语言描述需求,AI 直接写代码
  • 实时预览,改代码浏览器自动刷新

下载地址cursor.sh(支持 Windows/Mac/Linux)


图 5:Cursor 官网下载页面,点击 Download 按钮选择对应系统版本

3 分钟搭建项目骨架

步骤 1:创建项目

打开 Cursor,按 Ctrl+L 打开 AI 对话框,输入:

@create vue3 + vite project named died-yet

30 秒后,项目结构自动生成:

died-yet/
├── src/
│   ├── components/
│   ├── composables/
│   ├── App.vue
│   └── main.ts
├── vite.config.ts
└── package.json

步骤 2:安装依赖

Cursor 会自动检测到需要安装依赖,右下角弹出提示点击安装即可。或者手动运行:

npm install
npm run dev

浏览器自动打开 http://localhost:5173

5 分钟生成核心功能

功能 1:签到按钮组件

在 Cursor 对话框输入:

@add component CheckInButton.vue
功能:点击后记录当前时间到localStorage
样式:大按钮,红色,显示"我还活着"
点击后变绿并显示"已打卡",3秒后恢复

Cursor 自动生成代码:

<template>
  
</template>

<script setup>
import { ref } from 'vue'

const isChecked = ref(false)

const handleCheckIn = () => {
  localStorage.setItem('lastCheckIn', Date.now())
  isChecked.value = true
  setTimeout(() => isChecked.value = false, 3000)
}
</script>


功能 2:倒计时组件

继续对话:

@add component Countdown.vue
读取localStorage的lastCheckIn时间
如果超过48小时未打卡,显示红色警告
否则显示剩余时间

生成的核心逻辑:

<script setup>
import { ref, onMounted } from 'vue'

const timeLeft = ref('')
const isExpired = ref(false)

const updateCountdown = () => {
  const lastCheckIn = localStorage.getItem('lastCheckIn')
  if (!lastCheckIn) {
    timeLeft.value = '从未打卡'
    return
  }
  
  const diff = Date.now() - Number(lastCheckIn)
  const hours = 48 - Math.floor(diff / 3600000)
  
  if (hours <= 0) {
    isExpired.value = true
    timeLeft.value = '警报已触发'
  } else {
    timeLeft.value = `${hours}小时后触发警报`
  }
}

onMounted(() => {
  updateCountdown()
  setInterval(updateCountdown, 60000) // 每分钟更新
})
</script>

功能 3:邮件通知

这是最关键的部分。推荐使用 EmailJS,它提供免费 API,每月 200 封邮件额度,很适合前期测试。

注册 EmailJS

  1. 访问 emailjs.com
  2. 注册账号
  3. 创建邮件模板
  4. 获取 Service ID 和 Template ID

图 6:EmailJS 官网管理控制台界面,获取 ID 的位置

在 Cursor 对话框输入:

@add composable useEmailAlert.ts
当距离上次打卡超过48小时,调用EmailJS发送警报邮件
收件人从localStorage读取

生成的代码:

import emailjs from '@emailjs/browser'

export function useEmailAlert() {
  const sendAlert = async () => {
    const contact = localStorage.getItem('emergencyContact')
    if (!contact) return
    
    const params = {
      to_email: contact,
      user_name: localStorage.getItem('userName') || '用户',
      message: '该用户已超过48小时未签到,请确认安全'
    }
    
    await emailjs.send(
      'YOUR_SERVICE_ID',
      'YOUR_TEMPLATE_ID',
      params,
      'YOUR_PUBLIC_KEY'
    )
  }
  
  return { sendAlert }
}

注意:把 YOUR_SERVICE_ID 等替换成 EmailJS 提供的真实值。

7 分钟完成设置页面

对话输入:

@add component Settings.vue
表单包含:
1. 用户姓名输入框
2. 紧急联系人邮箱输入框
3. 签到间隔选择(24小时/48小时/72小时)
4. 保存按钮,数据存入localStorage

Cursor 自动生成完整的表单组件,包含输入验证。


04


APP 封装:从网页到手机应用

网页做好了,但要在手机上像真 APP 一样使用,有两种方式。

方式 1:PWA 渐进式网页应用(免费)

在项目根目录创建 manifest.json

{
  "name": "我死了吗",
  "short_name": "DiedYet",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#000000",
  "theme_color": "#ff4444",
  "icons": [
    {
      "src": "/icon.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

index.html 的 head 标签加上:

<link rel="manifest" href="/manifest.json">

效果:用户用手机浏览器打开网址后,可以添加到主屏幕,像原生 APP 一样使用。

方式 2:使用 Capacitor 打包成真 APP(进阶)

Capacitor 是 Ionic 团队开发的跨平台工具,可以把网页打包成 iOS/Android 应用。

安装

npm install @capacitor/core @capacitor/cli
npx cap init
npx cap add android
npx cap add ios

构建

npm run build
npx cap sync
npx cap open android  # 或 ios

会自动打开 Android Studio 或 Xcode,点击运行即可在模拟器测试。

优势

  • 可以上架应用商店
  • 可以调用原生功能(推送通知、后台定时任务)
  • 用户体验更接近原生 APP

劣势

  • 需要开发者账号(iOS 年费 99 美元,Android 一次性 25 美元)
  • 需要学习打包流程

05


商业化改造方向

改造 1:微信通知替代邮件

国内用户更习惯微信,可以接入企业微信或 Server 酱。

Server 酱方案(最简单):

  1. 访问 sct.ftqq.com 注册
  2. 获取 SendKey
  3. 在代码中替换邮件发送为 Server 酱推送
const sendWechatAlert = async () => {
  const sendKey = 'YOUR_SENDKEY'
  const contact = localStorage.getItem('emergencyContact')
  
  await fetch(`https://sctapi.ftqq.com/${sendKey}.send`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      title: '安全警报',
      desp: `${contact}已超过48小时未签到`
    })
  })
}

成本:免费版每天 5 条消息,付费版 19.9 元/年不限次数。


图 7:Server 酱官网界面,展示消息通道配置

改造 2:后台定时检查

网页版的问题:必须用户打开页面才能检查。如果用户昏迷了,页面根本不会打开。

解决方案:使用 Cloudflare Workers 免费定时任务。

步骤

  1. 注册 cloudflare.com
  2. 创建 Worker
  3. 部署以下代码:
export default {
  async scheduled(event, env, ctx) {
    // 从KV存储读取所有用户数据
    const users = await env.DB.list()
    
    for (const user of users) {
      const data = await env.DB.get(user.name)
      const lastCheckIn = JSON.parse(data).lastCheckIn
      
      if (Date.now() - lastCheckIn > 48 * 3600000) {
        // 发送警报
        await sendAlert(user.email)
      }
    }
  }
}

设置 Cron 触发器:每小时检查一次

成本:免费额度 100 万次请求/天,个人使用足够。

改造 3:多人协作监护

场景:养老院需要监控 100 位老人的签到状态。

技术方案

  1. 后端使用 Supabase(免费数据库)
  2. 前端增加管理后台
  3. 展示所有用户的签到状态

06


避坑指南

坑 1:隐私泄露风险

问题:如果使用云服务存储用户数据,可能被黑客攻击导致紧急联系人信息泄露。

解决

  1. 优先使用浏览器 LocalStorage,数据不上传
  2. 如果必须用云服务,加密存储
  3. 在隐私政策中明确说明数据用途
// 加密存储示例
import CryptoJS from 'crypto-js'

const saveEncrypted = (key, value) => {
  const encrypted = CryptoJS.AES.encrypt(
    JSON.stringify(value), 
    'YOUR_SECRET_KEY'
  ).toString()
  localStorage.setItem(key, encrypted)
}

坑 2:误报导致恐慌

问题:用户手机没电或忘记打卡,紧急联系人收到警报以为出事了。

解决

  1. 第一次警报前发送预警提醒
  2. 提供一键延期功能
  3. 警报邮件中说明这可能是误报

邮件模板改进

标题:【安全警报】XXX 已超过 48 小时未签到

内容
您的联系人 XXX 已经 48 小时未在"我死了吗"APP 中签到。

这可能意味着

  1. 对方可能遇到紧急情况(概率 30%)
  2. 对方忘记打卡或手机没电(概率 60%)
  3. 系统误报(概率 10%)

建议

  • 立即拨打对方电话确认安全
  • 如果无法联系,考虑报警或上门查看

[确认安全] [报告误报]

坑 3:邮件进垃圾箱

问题:EmailJS 发送的邮件经常被 Gmail/QQ 邮箱识别为垃圾邮件。

解决

  1. 使用自己的域名邮箱(如 name@yourdomain.com
  2. 配置 SPF 和 DKIM 记录
  3. 或者改用短信通知(成本约 0.05 元/条)

推荐短信服务商

  • 阿里云短信:0.045 元/条
  • 腾讯云短信:0.05 元/条

07


结语

独居的人害怕的不是死亡本身,而是怕死后很久才被发现。这个应用提供的是一种心理安慰:至少有人会在 48 小时内知道我出事了。

从商业角度看,这是个简单但高粘性的产品。用户可能一年才打开 10 次,但一旦设置好,很少会卸载。类似保险,平时没用,关键时刻救命。

附录:完整技术栈对比

方案 开发时间 技术难度 功能完整度 适用场景
Gemini Canvas 15 分钟 60% 个人使用,快速验证
Cursor + Vue 2 小时 ⭐⭐⭐ 90% 小团队产品
完整商业版 2 周 ⭐⭐⭐⭐ 100% 企业级应用

推荐学习路径

  1. 先用 Gemini 做出能用的版本,理解产品逻辑
  2. 再用 Cursor 深度定制,增加特色功能
  3. 最后考虑商业化改造,对接支付、数据分析等

本文代码为演示逻辑,生产环境需完善错误处理、性能优化、安全防护等。

声明:该内容由作者自行发布,观点内容仅供参考,不代表平台立场;如有侵权,请联系平台删除。
标签:
低代码 / 无代码工具
模型开发平台
部署工具
场景化部署
智能硬件
SaaS工具
对话式 AI
社交媒体营销
边缘模型部署