绕过 SwiftUI Slider 的颜色动画限制
SwiftUI 的 Slider 在 macOS 上不支持 tint 颜色动画。本文记录了问题的根因分析,以及如何通过 NSViewRepresentable + 手动帧插值彻底绕过这个限制。
SwiftUI 的 Slider 在 macOS 上不支持 tint 颜色动画。本文记录了问题的根因分析,以及如何通过 NSViewRepresentable + 手动帧插值彻底绕过这个限制。
1. 产品概述 产品名称:Inserable 目标平台:macOS 技术栈:Swift + SwiftUI 核心功能:管理 Hugo 博客的图片资源,自动重命名并生成 Markdown 格式的图片引用文本 解决的问题:Hugo 博客中图片管理混乱、命名不规范、手动编写图片引用繁琐 2. 核心概念 2.1 层级结构 Inserable ├── 根目录 1 (Root Folder 1) │ ├── Session A (文件夹 A) │ │ ├── formatA_001.png │ │ ├── formatA_002.png │ │ └── ... │ ├── Session B (文件夹 B) │ │ └── ... │ └── ... └── 根目录 2 (Root Folder 2) ├── Session X (文件夹 X) │ └── ... └── ... 2.2 核心关系 概念 说明 根目录 (Root Folder) 用户的 Hugo 图片存储路径,如 /Users/alex/myblog/static/images/。最多支持 2 个。 Session 与根目录下的一个文件夹形成 1:1 绑定关系。Session 名 = 文件夹名。 图片 Session 文件夹内的图片文件,按统一格式命名。 2.3 命名规则 图片命名格式:<formating_1>_<###>.<ext>
Sonodex 开发企划,技术架构与实现规范 (v1.0) 1. 项目概述 Sonodex 是一款专为音乐制作人设计的本地 MIDI 与音频采样管理系统。其核心任务是高效索引、检索并管理分布在本地磁盘上的数十万计媒体素材,提供秒级的搜索响应,并确保数据状态与物理文件的高度一致性。 1.1 核心原则 稳定性优先: 拒绝隐式缓存,所有数据变更必须透明且可追溯。 性能导向: 针对 100,000+ 记录优化,确保 UI 线程永不阻塞。 数据主权: 采用开放格式的 SQL 数据库,不依赖黑盒框架。 2. 技术栈选型 (Tech Stack) 维度 技术选型 说明 开发平台 macOS 14.0+ 针对 Apple Silicon 与原生系统特性优化。 编程语言 Swift 5.9+ 利用强类型、值类型语义与并发模型(Concurrency)。 UI 框架 SwiftUI 声明式 UI,处理状态驱动的复杂视图。 持久化层 GRDB.swift (SQLite) 放弃 SwiftData,选择类型安全的原生 SQL 包装器。 并发处理 Swift Concurrency 使用 async/await 处理文件 IO 与重型检索。 3. 系统架构设计 系统采用 层级解耦架构,确保数据库持久层与 UI 表现层之间有明确的边界,彻底消除“幽灵缓存”。 3.1 实体模型 (Entity Model) 弃用 Class 引用语义,全案使用 Value-based Struct。
A brief introduction to four applications I developed for Apple platforms.