WWW.YOUINFO.SITE
标签聚合 Await

/tag/Await

v2ex · 2026-05-25 13:36:30+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

v2ex · 2026-05-25 13:36:30+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

v2ex · 2026-05-25 13:05:38+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

v2ex · 2026-05-25 13:05:38+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

v2ex · 2026-05-25 12:15:41+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

v2ex · 2026-05-25 12:15:41+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

v2ex · 2026-05-25 12:00:33+08:00 · tech

大家好,我做了一个 iOS App ,叫 Await 。 它的出发点很简单:很多点子太小,不值得专门做成一个完整 App ,但如果能真的放到 iPhone 主屏上,又会变得挺有用。 比如我之前看到一张 ADHD Bingo 卡片:一个 5x5 的格子,每个格子是一件很小的日常任务,做完就点一下。它本来只是一张截图,但我觉得这不就是一个小组件该有的样子吗? 用 Codex + Await ,我大概一分半做出了一个可点击的基础版。再调几轮,加上手绘网格、荧光笔标记和每天零点重置,前后大概五分钟,就变成了一个真的可以放到主屏上的小组件。 Await 做的事情是:用 TypeScript 创建真实的 iPhone 小组件,不用打开 Xcode ,也不用自己配置 WidgetKit extension 。 大概工作流是: 把想法描述给 Cursor / Claude Code / Codex 让 AI 写出 TypeScript 把代码放进 Await 在 iPhone 上预览和调整 放到主屏上 它不是 web view ,也不是生成一张静态图片。Await 会把 TypeScript/TSX DSL 渲染成真实的小组件 view ,可以有状态、timeline 、intent 、网络请求、本地存储、文件、音乐、音频等能力。 另外我做了一个 custom panel 机制。代码里可以把一些参数标记成可调整项,比如文字、颜色、字号、开关、token 、数据源路径。Await 会在 App 里自动生成面板,而且面板和代码是同步的。 这个对 AI coding 很有用:AI 先搭结构,后面那些「颜色深一点」「字号大一号」「这个 token 换一下」之类的细节,就不用每次都让 AI 重写代码了。 我录了两个视频,能更直观看到它在 iPhone 上的效果: https://www.bilibili.com/video/BV1hJGL6ZEgB https://www.bilibili.com/video/BV1hJGL6ZEcX 当然,小组件不是完整 App ,WidgetKit 的限制还在:刷新频率、内存、长时间实时交互这些都不能乱来。Await 不是要把小组件变成完整 App ,而是想把这些限制之内的空间变得更容易创作。 App Store: https://apps.apple.com/app/id6755678187 Website: https://awaitwidget.com 想听听大家怎么看: 如果做一个真实 iPhone 小组件的成本足够低,你会想给自己做一个什么样的小组件?

linux.do · 2026-05-04 10:07:53+08:00 · tech

(async function checkoutLinkOnly() { try { const session = await fetch('/api/auth/session').then((r) => r.json()); const accessToken = session?.accessToken; if (!accessToken) { console.log('accessToken: null'); return; } const payload = { plan_name: 'chatgptplusplan', billing_details: { country: 'ID', currency: 'IDR', }, cancel_url: 'https://chatgpt.com/#pricing', promo_campaign: { promo_campaign_id: 'plus-1-month-free', is_coupon_from_query_param: false, }, checkout_ui_mode: 'hosted', }; const response = await fetch('https://chatgpt.com/backend-api/payments/checkout', { method: 'POST', headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, body: JSON.stringify(payload), }); const data = await response.json(); const hostedUrl = data?.url || data?.stripe_hosted_url || data?.checkout_url || null; console.log('accessToken:', accessToken); console.log('paymentLink:', hostedUrl); } catch (e) { console.log('accessToken: null'); console.log('paymentLink: null'); } })(); 11 个帖子 - 5 位参与者 阅读完整话题