对通用平台项目的思考
对通用平台项目的思考 本文记录了对于近期项目设计方式, 实现方式的思考 前言 我司项目以 iOS 小组件为核心, 主要包含组件详情/编辑 & 桌面小组件, 是一款通用的小组件平台. 欢迎体验我司产品 万象小组件 如何设计一款通用,可扩展的通用平台就成了最核心的方向性问题. 本文则记录了主要的设计思路和逻辑问题 基本的业务流程设计 简单来说通用平台就是要支持所有类型...
对通用平台项目的思考 本文记录了对于近期项目设计方式, 实现方式的思考 前言 我司项目以 iOS 小组件为核心, 主要包含组件详情/编辑 & 桌面小组件, 是一款通用的小组件平台. 欢迎体验我司产品 万象小组件 如何设计一款通用,可扩展的通用平台就成了最核心的方向性问题. 本文则记录了主要的设计思路和逻辑问题 基本的业务流程设计 简单来说通用平台就是要支持所有类型...
iOS 音视频处理小记 本文记录了处理音频时候踩的坑, 主要是其中因不熟悉导致耗时较长的点 从视频中提取音频 音频文件的播放 AVAudioPlayer 创建报错 系统中音频文件的格式 iOS-音频-AVAudioSession 从视频中提取音频 视频由视轨和音轨组成, 从视频中提取音轨需要用到 AVFoundation 框架...
iOS 小组件 - 创建透明小组件 本文记录了创建透明小组件的思路和实现 可以尝试一下我们的 万象小组件 来体验效果 何为透明小组件 用户将手机桌面截图上传到 App, App 内根据组件位置和尺寸进行截图, 用作小组件的背景, 这样放到桌面的小组件看起来就和桌面浑然一体好像透明一样. 用户操作步骤为: 手机桌面截屏, 上传用于制作透明背景 在 App 中保存...
本文主要记录了如何基于创建一个自己的 HTTP / FTP 服务器 这样能在不破坏开发环境的情况下提供稳定接口调试服务, 为自己节省大量时间 背景 详细说一下背景(写给自己, 记录一下当时情况, 可以直接看下面实操): 刚接手公司项目时, 要做一个网络文件下载/解析/本地存储/读取的功能. 这些直接依赖于公司服务器, 由于我所开发的任务是预研新功能并开发, 所以服务端并没...
灵动岛 (Dynamic Island) 是 iPhone 14 Pro 系列推出. 最低适配系统 iOS 16.1 在开发中灵动岛相关开发称为 ‘实时活动’(Live Activity) Live Activity overView Activity framework Programatic layout with SwiftUI and WidgetKit Ex...
Tips: 本文是创建基于 SiriKit 的可配置小组件 最新基于 AppIntent 的可配置组件移步Making a configurable widget 桌面小组件分为两种: 静态小组件 & 可配置小组件 静态小组件就是 Xcode 默认创建的小组件, 不再赘述. 这里主要讲可配置小组件. 可配置小组件有两种创建方式: SiriIntent 和 AppIn...
iOS 17 上苹果为小组件新增了两个交互性组件 Botton / Toggle. 通过这两个 View, 我们可以直接在小组件中执行某些 App 的功能. 其内部基于 AppIntent 框架实现, 核心逻辑是: App 基于 AppIntent 给系统暴露一个可执行的功能 小组件中交互组件点击, 系统执行 App 暴露的功能 具体实现步骤如下: 创建组件 创建一...
最近研究了 iOS 小组件相关的内容, 需要将学习的新内容整理成之后能随时拿来用的文档. 所以第一想法就是放到自己博客上. 无奈博客已经很久没有更新过, 一顿操作之下 github action 一直过不去, 虽然可以直接将整个本地编译好的 blog 静态站全部推上 github.io, 但是总感觉这样不好, 这样一搞当时是能用了, 但是后续几乎就再也不用考虑更新版本了, 主要我不是专...
摘要: 往项目中添加自定义字体 项目中运行时, 通过网络下载并使用字体 1. 项目中添加静态字体 准备好字体资源,直接拖拽到项目中,选择好所属 target Info.plist 文件完整添加字体资源, 注意后缀要完整写上 添加后效果如图, 也可以使用源文件的方式,直接拷贝下面实例代码添加 Info.plist 源码如下: &l...
并发编程指南- Dispatch Queue 官方地址:ConcurrencyProgrammingGuide Grand Central Dispatch (GCD) dispatch queues 是执行任务非常强大的工具,它可以同步/异步执行任意数量的任务。 dispatch queues 几乎可以执行你使用线程可实现的所有操作,其优势就是它更简洁且高效。 关于 Dispatch...