[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"product:indieforge":3},{"id":4,"name":5,"slug":6,"slogan":7,"description":8,"organization":9,"images":10,"avatar_url":11,"image_url":12,"website_url":13,"status":14,"build_by":15,"categories":16,"stats":23,"upload_relationship":26,"create_at":27,"update_at":28,"owner_id":24,"upload_user_id":29,"reviewer_id":30,"video_info":31,"prerelease_cover_url":36,"scheduled_publish_at":37,"user_scheduled":38,"emoji_reacts":39,"tag":37,"user_star":38},2468,"IndieForge","indieforge","IndieForge—— 为独立开发者打造的项目管理工具","{\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"写在前面：这篇文章记录了我从零开始开发一款 iOS App 的全过程。没有融资，没有团队，没有外部资源。只有一个刚毕业的硕士生、一台 Mac、和一个想做点什么的念头。\", \"type\": \"text\"}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"一、为什么做这件事\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"    今年硕士毕业。\", \"type\": \"text\"}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"毕业季过后，有一段属于自己的时间。论文写完了，答辩结束了，学位拿到了。然后呢？艰难的大环境，让我难堪，于是我想做点什么，做点我想做的事情。\", \"type\": \"text\"}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"我做过‘冰箱’物品管理软件《别忘了你的冰箱》，但是这个软件完全是免费的，对于那688的Apple developer会员，我想做一些商业化的产品。\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"二、做什么产品\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"做产品之前，先想清楚一个问题：谁需要什么？\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"我的回答是：我需要什么。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"我自己平时会维护一些小项目——有的在 App Store 上架了，有的是 side project，有的写着写着就放下了。管理这些项目的过程让我特别痛苦：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"Notion\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \" 管任务，但它面向团队，一个人用总觉得大材小用；\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"Google Sheets\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \" 记收入和支出，但和任务完全割裂；\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"备忘录\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \" 写开发日志，但没有结构，翻回去看一片混乱；\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"纸笔\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \" 画看板，但没法跨设备同步。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"我试过 Trello、Linear、Things、OmniFocus，每一个都很好，但没有一个是从\\\"一个人做产品\\\"这个场景出发设计的。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"市面上缺少一款工具：它能按版本管理任务，能追踪每个项目赚了多少花了多少，能把散落各处的文件归档到一起，能让我记录自己的开发故事，还能让我把这些故事分享出去。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"既然没有，那我就自己做一个。而且恰逢这两年OPC经济又被炒出来了，独立开发者也渐渐增多，于是 IndieForge 被推了出来。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"hardBreak\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"所谓IndieForge 就是，Independent Forge，字面意思独立锻造，翻译过来就是独立产品的意思。还具有两个层次的更深层含义：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"第一层：Forge = 铁匠铺：铁匠铺是一个人工作的地方。\", \"type\": \"text\"}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"铁砧（Anvil）\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"：承载一切的基础 —— 就像项目管理框架，任务有了放的地方\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"锤子（Hammer）\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"：反复敲打的工具 —— 就像每天的编码和迭代\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"火焰（Fire）\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"：让金属变软、可塑的热量 —— 就像热情和动力\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"火花（Spark）\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"：锤子落下时飞溅的光 —— 就像灵感、突破、每一次发布\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"铁匠不是一次性造出完美作品的。他反复加热、反复敲打、反复淬火。独立开发也是一样：一个版本一个版本地打磨。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"第二层：Forge = 创造\", \"type\": \"text\"}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Forge 还有一个意思：to forge ahead（奋力前进）。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"对独立开发者来说，每一天都是在没有路的地方开路。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"没有人给你分配任务，没有人检查你的进度，没有人告诉你方向对不对。你自己决定做什么，自己动手做，自己承担结果。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"这就是 forging —— 在未知中开辟道路。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"hardBreak\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"hardBreak\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"三、这段时间做了什么\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"接下来是这段时间的完整开发记录。我会按功能模块逐一介绍，每个模块说清楚它解决什么问题、怎么设计的、用了什么技术。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"3.1 版本驱动的项目管理\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"IndieForge 的核心设计决策：按版本（Version）组织任务，而不是按 Sprint。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"为什么？因为独立开发者的节奏不是两周一个 Sprint，而是\\\"这周把 v0.3 的功能做完，下周末发 TestFlight\\\"。版本是独立开发者心里真正的节奏单位。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"在 IndieForge 里，一个项目有多个版本，每个版本有多个任务。任务可以在四列看板（To Do → Doing → Review → Done）之间拖拽移动。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"3.2 收入与投资追踪\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"独立开发者最常被问到的问题之一：你那个产品赚钱了吗？\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"大多数人的回答是：好像赚了？不太确定。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"因为收入数据分散在 App Store Connect、支付宝、Stripe 等多个平台，成本数据分散在各种订阅账单里。没有一个统一的视图能看到：这个月净利润到底是多少。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"IndieForge 的财务模块就是为了解决这个问题：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"收入条目\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"按项目、按月份记录，支持手动录入和 CSV 导入\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"投资条目\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"记录每一笔支出（服务器、工具订阅、域名、广告、设计外包等），自动归类\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"损益面板\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"收入 - 投资 = 净利润，按项目维度和整体组合两个视角展示\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"六个月趋势图\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"使用 Swift Charts 绘制堆叠柱状图，一眼看出收入走势\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"数据全部存在用户的 iCloud 里，我不碰任何人的财务信息。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"hardBreak\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"3.3 项目文件归档\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"做产品过程中会产生大量文件：PRD 文档、API 合同、设计稿、App Store 截图、财务表格……\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"这些文件通常散落在各种地方——有的在 Downloads 文件夹，有的在微信聊天记录里，有的在 iCloud Drive 的某个深层目录。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"IndieForge 的文件管理模块让这些文件归到项目里：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"支持 Word、Excel、PDF、图片、Figma、Sketch、JSON 等常见格式\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"文件自动按类型分组（文档 \u002F 表格 \u002F 设计 \u002F 图片 \u002F 数据）\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"可以关联到特定版本，也可以被任务引用作为参考资料\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"通过 CloudKit CKAsset 同步到所有设备\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"缩略图优先同步，大文件按需下载，本地缓存自动管理\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"3.4 Apple 生态深度集成\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"作为一个 SwiftUI 项目，IndieForge 覆盖了 Apple 几乎所有的系统扩展点：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"桌面小组件（WidgetKit）\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"小尺寸：连续天数 \u002F 今日聚焦 \u002F 收入摘要\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"中尺寸：今日任务详情 \u002F 收入仪表盘\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"大尺寸：完整数据概览\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Apple Watch 伴侣应用\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"表盘 Complication：四宫格数据摘要\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"Today's Focus：查看今日任务，点击标记完成\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"Revenue Glance：收入概览 + 趋势迷你图\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"Streak Ring：环形进度 + 统计数据\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Mac 桌面端\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"三栏布局：侧边栏导航 + 主内容区 + 详情面板\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"支持项目表格视图、看板视图、Overview 仪表盘\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"所有数据通过 CloudKit 同步。iPhone 上记一笔收入，Mac 上立刻能看到。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"3.5. AI助手 Forgey AI\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"四、技术决策与取舍\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"做独立产品，技术决策要服务于一个原则：一个人能维护。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"所以我做了以下取舍：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"✅ 选择 Swift 全家桶：SwiftUI + SwiftData + CloudKit。优点是和 Apple 生态深度绑定，API 一致性好。缺点是只能跑在 Apple 平台上。但对于一个 iOS 优先的产品，这不是问题。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"✅ 选择 CloudKit 而非自建后端：好处：零服务器成本（10,000 用户以内基本免费）、数据加密、Apple 维护基础设施。坏处：调试痛苦（CloudKit 的错误信息堪称谜语）、平台锁定。权衡之后，对一个 MVP 来说是正确选择。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"✅ 选择 RevenueCat 管理订阅：StoreKit 2 本身可以处理订阅，但 RevenueCat 提供了更友好的 dashboard、A\u002FB 测试、和跨平台能力。8 美元\u002F月的成本完全可以接受。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"❌ 不做 Android现阶段没有精力同时维护两个平台。如果 iOS 端验证了 PMF（Product-Market Fit），再考虑用 Kotlin Multiplatform 扩展。我本来是做Android的，不做Android的还有一层次原因是Android的国内上架程序繁琐，商业化流程复杂。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"❌ 不做 Web 端同样的原因。先把一个平台做到极致。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"❌ 不自建后端省掉服务器运维、数据库管理、API 开发、安全审计等大量工作。一个人的时候，能不做的事就不做。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"五、这段经历教会了我什么\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"1. 完成比完美重要。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"我一开始想做很多功能。后来发现，如果每个功能都想做到完美，永远发布不了。最后给自己定了规则：先交卷，再改。所以 v0.3 就提交审核了。不是完美的产品，但它是完整的、可以被人用的产品。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"2. 自驱力是一种需要练的能力。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"没人催你，没人检查你的进度，全靠自己。前几天很兴奋，中间有几天想摆烂，后来看到功能一个个做出来又停不下来。这段时间下来，我觉得自己的自驱力上了一个台阶。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"3. 做产品的过程中，你会变成一个更好的人。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"这句话听起来很鸡汤，但我是认真的。做产品让你学会取舍（功能优先级）、学会共情（用户到底需要什么）、学会面对不完美（总有 bug）、学会坚持。这些能力不管未来做什么都有用。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"hardBreak\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"六、接下来的计划\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"hardBreak\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"短期：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"等待 App Store 审核结果\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"通过后发布第一个商业化验证版本\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"收集第一批用户反馈\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"长期：\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"App Store Connect API 集成\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"bulletList\", \"content\": [{\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"如果验证了 PMF，考虑 Android（KMP），以及自建服务器。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}, {\"type\": \"listItem\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"text\": \"接入AI问答功能，作为您的独立开发顾问。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"七、写在最后\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"这篇文章不是成功故事。App 刚提交审核，还没有一个用户，不知道市场会不会接受它。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"但这是一段真实的记录。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"记录一个人怎么从一个想法开始，一段时间后把它变成一个可以下载的产品。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"如果你也在做自己的 side project，或者正在考虑开始，希望这篇文章能给你一点参考。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"不需要很大的团队，不需要很多的钱，不需要完美的时机。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"你需要的只是：一个你真正想解决的问题，和打开编辑器的勇气。\", \"type\": \"text\", \"marks\": [{\"type\": \"bold\"}]}]}]}","王旭东","https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_c7c1ddfe-a4bf-4119-819d-3d61036b2cfb.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_36b1e15b-7e42-416a-a76f-2dd1ac8a5911.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_a57347cd-0457-4e93-a219-86579381e4da.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_cc5ced0c-5a39-42f3-a05f-08c556866f63.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_d3f1ab82-f43f-425e-a2ab-9244423f1667.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_07a80975-24bf-4114-93f1-5752f8438df5.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_8271acb3-d3c0-4b69-9019-28d820fbee94.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_565c5e53-337b-4472-a70d-45e47431ccd8.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_967c0c10-ff7b-4233-8177-24353addbc45.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299383_d457975c-f7c2-4eee-b334-8afd50931049.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299413_ef81b641-5ce3-4855-a19e-12b24c55e5ae.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299413_b7e31d70-7eb7-4e5f-bb5b-1066417df005.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299413_e0dfa621-91f5-45dc-90ee-9375bae25e34.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299413_0ac3e824-9a81-4528-9b62-550ad3899f5a.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299429_3f1fa79d-5a68-428e-87b1-60bda81ced0b.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299429_95b9e29f-26a8-435b-bd40-8c6b0aa227fb.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299429_c52dcef3-33ba-4934-ac42-1bd0a0249c37.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299429_bee119fe-7ae7-4a9f-80c4-ad4f1763e9eb.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1784889244_fd606aab-dc3b-445d-b869-5478a3a3c576.png;https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1784889244_3c08a9b3-a830-4b79-84b1-2f36a82dd82e.png","https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299294_41b38182-cc36-4797-92c0-76a7bfe5f8e6.png","https:\u002F\u002Fwatcha.tos-cn-beijing.volces.com\u002Fprod\u002Fuser\u002Fuploads\u002F10070920_1783299364_f12de0e0-3812-45da-a42e-23be8476b021.png","https:\u002F\u002Foac.ac.cn\u002Finde\u002F","PUBLISHED",[],[17,20],{"id":18,"name":19},14,"效率工具",{"id":21,"name":22},1,"通用助手",{"upvotes":24,"stars":21,"review_count":24,"reply_count":24,"update_at":25},0,"2026-08-11T06:43:48.603Z","OWNER","2026-07-06T01:00:23.432Z","2026-07-24T15:21:25.001Z",10070920,10004627,{"type":32,"src":33,"cover_url":34,"desc":35},"bilibili","BV1FrMw6aEU8","http:\u002F\u002Fi1.hdslb.com\u002Fbfs\u002Farchive\u002F932a63444b3f84271cbce1d2d1a04d008197d271.jpg","VibeCoding大赏｜硕士毕业后，我一个人写了app","",null,false,{"reacts":40},[41],{"emoji_code":42,"count":43,"reacted":38},"🤩",2]