廖林

廖林

Supabase|集成 Google 登录认证

iOS 应用的 Google 登录流程: iOS App → Google OAuth (获取 ID Token) → Supabase Auth (验证 Token) → 返回 Session 在 Google Cloud Console 创建 OAuth 客户端(iOS 以及 Web) iOS 客户端出于安全考虑不提供 Client Secret(移动端无法安全存储密钥),但 Supabase 作为服务器端需要 Client Secret 来与 Google OAuth 服务通信。 因此,我们需要创建两个 OAuth 2.0 Client IDs,一起添加到 Supabase
廖林

NotificationCenter|在组件之间发送和接收消息

NotificationCenter ≠ 系统通知 很多初学者会混淆这两个概念: * 发送 iOS 系统通知,使用 UserNotifications 框架 * NotificationCenter 属于 Foundation 框架,无需格外导入 一句话总结:NotificationCenter 是 App 内部的广播系统,让不同组件之间可以发送和接收消息,而无需直接引用对方。 两种跨组件通信方式 方式 1:NotificationCenter(iOS 2+) 优点:简单、一对多广播、松耦合 缺点:字符串标识易出错、需手动管理生命周期 方式 2:withObservationTracking(iOS 17+) 优点:类型安全、自动追踪、现代化 缺点:需 iOS 17+、需手动重建追踪 withObservationTracking 只生效一次
廖林

macOS 配置 Claude Code Option+P 快捷键指南

在 macOS 上使用 Claude Code 时,Option+P 快捷键可能会被系统拦截,输出 π 字符。本文介绍如何解决这个问题。 问题原因 macOS 默认将 Option 键用于输入特殊字符(如 Option+P = π)。这与终端中 Option 作为 Meta 键的用法冲突。 Cursor 配置方法 1. 打开 Cursor 2. 按 Cmd + Shift + P 打开命令面板 3. 输入 Preferences: Open User Settings (JSON) 4. 添加以下配置: { "terminal.integrated.
廖林

SwiftData|在 AppIntent 中使用 ModelContainer

使用 @Dependency @Dependency 是 App Intents 框架专用的属性包装器,用于依赖注入。 常用的实际场景 使用 @Dependency 注入 ModelContainer 使用方法 直接使用 DataModel 单例(推荐) 是否能访问完整 ModelContainer 数据? 经过测试,直接使用 DataModel 单例,可以正常查询到主 App 中的完整数据: 使用 @Dependency 的方式,如果注入的也是 DataModel.shared.modelContainer 实例,那么也可以正常获取到所有数据:
廖林

macOS|使用 HSplitView 分割应用窗口

SwiftUI 提供了 NavigationSplitView 和 inspector 修饰器,可以轻松创建跨平台的多区域窗口页面。这两个组件创建的 UI 非常接近 Keynote 应用的 UI 效果。 当时他们存在一些限制: * 在左右侧、顶部 Toolbar 强制添加分割线 * 强制添加折叠按钮,无法隐藏 * 会为不同区域默认添加背景色 如果想创建类似 Sketch、Eagle 或者 Linear 应用这样更加干净的 UI 界面,我们只能使用 HSplitView 或 HStack 来自定义分割窗口区域: 推荐使用 HSplitView 来实现窗口分割。但利弊总是相对的,你也会失去跨平台的能力。
廖林

Supabase|集成邮箱登录

魔法链接登录 如果开发 Web 应用,魔法链接登录是一个不错的选项。 启用魔法链接登录无需在 Supabase 做任何格外配置,这是默认启用的选项。 邮箱验证码登录 使用 supabase.auth.signInWithOTP 启用邮箱验证码登录。 此时运行代码,Supabase 仍然会发送 Magic Link 链接。 根据官方文档显示,要发送一次性代码而不是魔法链接,需要修改电子邮件模板: 在 Supabase Dashboard 配置: 往下滑,找到「Magic Link」: 将 {{.ConfirmationURL }} 替换为{{ .Token }} 。
廖林

Vercel|创建 cron jobs 定时任务

设置定时任务之后,Vercel 会定时向指定端点发送 HTTP 请求,从而完成一些自动化工作。 关于 Vercel Cron Jobs 的几个关键点: * 只能通过 vercel.json 配置,不支持 Web 端配置。 * 只对生产环境生效。 * 只支持 GET 方法。 vercel.json 时间配置 Managing Cron JobsLearn how to manage Cron Jobs effectively in Vercel. Explore cron job duration, error handling, deployments, concurrency control, local execution, and more to