廖林

廖林

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
廖林