iOS
文章平均质量分 86
FIRE-Lee
️AI全栈工程师|10+年软件开发
️更多精彩,欢迎关注同名GZH
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
国庆这一周,古人只记了三个字
国庆六天,两百多张照片,却大多模糊难忆。古人以“水始涸”三字记秋分之候,而今我们用相机记录,却忘了为何按下快门。作者推出App「栖」,通过分析照片的时辰、节气与色彩,从226首古诗中匹配诗意,生成题跋、信笺等六种形式,还原生活中的诗意。不上传、不生成、不改图,守护隐私与真实。文末赠送100个解锁码,邀你用技术留住记忆,让每一张照片都成为可珍藏的诗。原创 2026-10-05 18:38:49 · 92 阅读 · 0 评论 -
第一次有人为我做的 App 付费,我突然理解了“产品”这两个字
文章摘要: 一位开发者通过抖音分享自己新上线的App「DadShot」,意外获得2.7万播放量并迎来首笔用户付费,让他首次感受到“独立创造价值”的成就感。DadShot旨在帮助父母自动筛选宝宝照片中的优质瞬间,解决照片爆炸式增长却难以整理的痛点。开发者反思,过去专注于技术实现,如今更注重从需求出发,理解用户为何愿意付费。他意识到,AI时代程序员的核心能力不仅是技术,而是将技术转化为真实价值的能力,包括产品、运营和内容创作。这次经历让他开始尝试“一人公司”模式,闭环覆盖需求到付费的全流程,并强调内容传播对产品原创 2026-08-14 18:47:01 · 205 阅读 · 0 评论 -
我做了个不要账号、不要定位权限的旅行 App,聊聊那些「不做」的决定
本文介绍了旅行照片整理应用TripStamp的设计理念与技术实现。作者通过四个"不做"原则(无账号体系、不获取定位权限、无服务端渲染、不采用订阅制)确保用户隐私,同时解决了平面地图无法显示跨洲行程的技术难题,最终采用3D地球实时渲染方案。文章还分享了开发过程中遇到的存储膨胀问题及解决方案,展现了产品开发中的取舍思考与技术细节。该应用目前已上架App Store,帮助用户将旅行照片转化为精美的地理标记卡片。原创 2026-08-12 21:15:47 · 187 阅读 · 0 评论 -
860 次展示,13 次下载:我的第一个出海 App 上线一个月
本文总结了作者开发并上架首个App的经历与反思。该App是一个针对繁体中文市场的扬声器除水工具,采用简单技术实现,定价2.99美元。上线一个月后数据显示:搜索结果展示860次,仅16人点击产品页,13人下载,零收入。核心发现包括:高产品页转化率(81%)表明展示内容有效,但极低的搜索结果点击率(1.86%)暴露冷启动难题;目标市场零下载,核心假设被证伪;分销而非产品是主要瓶颈。作者决定转向网页版以连接内容与产品,并停止开发新App,强调实践中学到的审核细节和市场验证的重要性远超短期收益。原创 2026-08-10 23:14:35 · 206 阅读 · 0 评论 -
WWDC26 深度解析:如何在 iOS 27 中打造“秒开”的相机体验
摘要: iOS 27相机启动性能优化方案解析。Apple通过拆解AVFoundation捕捉会话生命周期,提出四大关键阶段优化点,其中Output初始化是最主要瓶颈。核心方案为Deferred Start(延迟启动),推迟非必要输出资源加载,使冷启动耗时降低50%。针对用户提前操作问题,引入Responsive Capture确保指令缓冲执行;高码率视频场景则通过Pro Video Storage优化I/O性能。该方案尤其适合依赖实时图像处理(如OCR、边缘检测)的业务,通过分离预览与数据处理流,实现秒级起原创 2026-06-10 22:30:09 · 509 阅读 · 0 评论 -
【WWDC】Core AI:iOS 端侧大模型新纪元
苹果在WWDC 2026推出革命性端侧AI框架Core AI,彻底改变iOS开发生态。该框架提供从PyTorch模型转换到Swift集成的完整工具链,支持动态维度输入和Transformer架构的KV Cache状态管理,通过AOT编译和硬件特化实现极致性能。Xcode深度集成调试工具,开发者可精确优化推理延迟。Core AI标志着iOS进入原生大模型部署时代,突破算法与客户端的协作壁垒,赋予开发者端侧AI全流程控制能力,在保障隐私的同时降低云端成本,将成为iOS工程师向AI架构师转型的核心技术。原创 2026-06-09 23:15:45 · 664 阅读 · 0 评论 -
【图像处理】颜色空间——RGB之外的世界
摘要:RGB、HSV和Lab是三种不同的颜色空间,分别适用于不同场景。RGB是相机记录颜色的方式,但三个通道耦合度高,调整颜色不直观;HSV通过色相(H)、饱和度(S)和明度(V)解耦颜色属性,更符合人类直觉;而Lab则基于感知均匀性设计,能更准确地反映人眼对颜色差异的感知。RGB到HSV的转换通过六扇区模型实现,而Lab需经过线性化、XYZ转换等复杂步骤。理解这些颜色空间的特性有助于在图像处理中选择合适的工具,满足不同需求(如调色、色彩校正等)。原创 2026-06-08 17:21:19 · 509 阅读 · 0 评论 -
【图像处理】一文带你窥探近期火热图像App的主要实现原理:主色提取——从图像到调色板
图像主色提取:从算法到应用 本文探讨了从图像中提取代表性主色的技术方案和应用场景。核心问题是处理百万像素点,找出最能代表图像的6种颜色(调色板)。通过分析不同算法的性能特点,文章重点介绍了Median Cut算法——将RGB颜色空间视为3D立方体,递归切割最长轴(颜色差异最大的通道)直至获得目标颜色数。该方法复杂度为O(N log k),兼具速度和确定性,适合音乐App动态配色、电商商品标注等实时场景。文章还提供了Swift实现的关键代码,包括降采样、颜色过滤和分箱策略。原创 2026-06-06 23:13:00 · 347 阅读 · 0 评论 -
【图像处理】图像直方图——从“频率分布“到“智能决策“
直方图是图像分析的强大工具,通过统计像素亮度分布,能快速评估曝光、对比度和色调。RGB+亮度四通道直方图结合BT.709亮度公式,量化图像特征。核心统计量(均值、标准差、中位数、熵)揭示亮度分布、对比度和信息量。Otsu算法通过最大化类间方差自动寻找最佳二值化阈值。直方图均衡化则通过调整CDF实现对比度增强。掌握直方图分析,就能不依赖主观判断,科学评估和优化图像质量。原创 2026-06-03 22:15:12 · 507 阅读 · 0 评论 -
两个改动,让这个iOS OCR SDK识别成功率翻了一倍
本文分享了作者优化银行卡OCR识别的经验。针对中国银行等复杂卡面识别不稳定问题,作者通过两个关键改进提升了性能:1)过滤银联Logo误检,避免无效透视变换;2)调整多帧融合对齐策略并引入Luhn校验补救。优化后,复杂卡面识别速度提升近一倍,中行卡从基本不可用变为可用,甚至在弱光环境下表现优于微信。该方案完全本地运行,保障隐私安全。作者强调"发现问题本质"的能力比代码更有价值,相关代码已开源。原创 2026-05-05 22:59:10 · 263 阅读 · 0 评论 -
【图像处理】vImage/Accelerate——SIMD 让 CPU 也能飞
GPU 是并行之王,但它不是唯一的选择。CPU 的 SIMD 单元在正确的场景下,可以让代码快 8–16 倍——而且不需要离开 Swift。原创 2026-06-01 16:03:58 · 650 阅读 · 0 评论 -
【图像处理】Core Image 与 GPU 渲染管线——让滤镜飞起来
CPU 是一位精英工程师,一次专心做一件事;GPU 是一支万人工厂,每条流水线同时处理一块像素。选对工具,差距可以是 10 倍。原创 2026-05-30 16:48:12 · 469 阅读 · 0 评论 -
【图像处理】框架设计——协议、值类型与工程化思维
本文探讨了图像处理框架的设计决策,对比了函数式、命令式和协议式三种实现方式,最终选择了基于协议的链式调用方案。核心设计哲学包括:协议定向编程(POP)替代继承、纯函数无副作用、值类型与写时复制优化。同时分析了some与any协议类型的选择逻辑,以及precondition/guard/throw三种错误处理方式的适用场景。工业级代码还需考虑性能优化(如内联函数)和API友好性(如@discardableResult),通过协议组合、值语义和防御性编程实现高可测试性、线程安全与可维护性。原创 2026-05-28 20:07:26 · 466 阅读 · 0 评论 -
【图像处理】图像导出与工业级压缩策略——从像素到文件的最后一公里
图像格式选择与压缩优化指南 摘要:工业级图像处理需权衡格式选择、质量参数与文件大小。PNG适合透明图像和UI元素,JPEG更适合照片类内容。JPEG压缩通过色度采样和量化实现,quality参数(推荐0.85为平衡点)直接影响文件大小与质量。动态质量算法可根据图像复杂度自动调整参数,而二分法能精确控制文件体积。最后采用优先级降级链(PNG→高质量JPEG→低质量JPEG)确保导出可靠性。实际应用中需结合具体场景在质量与体积间取得最佳平衡。(149字)原创 2026-05-26 16:35:24 · 548 阅读 · 0 评论 -
【图像处理】Sobel 边缘检测——让机器“看见“轮廓
图像边缘检测是计算机视觉的关键技术,Sobel算子通过3×3卷积核高效计算水平和垂直梯度,定位亮度突变区域。文章详细解析了Sobel算子的数学原理、实现细节(包括梯度计算和预模糊处理),并对比了不同边缘检测算法的特点。Sobel在速度与精度间取得平衡,是基础而实用的边缘检测方法。原创 2026-05-24 16:19:00 · 516 阅读 · 0 评论 -
【图像处理】高斯模糊——最优雅的模糊算法
高斯模糊通过模拟自然界的光学衍射,相比均值模糊能产生更真实平滑的效果。其核心在于高斯函数的衰减特性,使邻近像素权重更大,符合自然规律。高斯模糊的关键优化是可分离性,将二维卷积分解为水平和垂直两个一维卷积,大幅降低计算复杂度(从k²降到2k)。实现时采用显式独立缓冲区确保读写安全,并通过动态核生成支持自定义模糊半径。这种高效自然的特性使高斯模糊在图像处理中被广泛应用。原创 2026-05-22 21:38:53 · 549 阅读 · 0 评论 -
【图像处理】卷积原理与卷积核——图像处理的核心引擎
本文深入解析了图像处理中的核心操作——卷积。通过3×3滑动窗口的比喻,解释了卷积核如何通过权重计算实现不同效果。文章详细介绍了四种典型卷积核:均值模糊核(权重均等)、锐化核(增强边缘对比)、浮雕核(模拟光照)和Sobel核(边缘检测),并分析了其数学原理和视觉效果。同时探讨了边界处理的三种策略,强调奇数尺寸核的必要性,并提供了完整的Swift实现代码,包括scale和bias参数的应用场景。卷积作为图像处理的底层工具,统一了模糊、锐化、边缘检测等多种看似不同的效果实现。原创 2026-05-20 16:30:47 · 908 阅读 · 0 评论 -
【图像处理】饱和度——颜色的浓淡与灰度化
摘要: 本文探讨了图像饱和度调整的原理与应用。饱和度调节本质是在原始颜色与灰度值之间进行线性插值,通过数学公式实现色彩浓淡的控制。研究发现,完全灰度化(s=0)会丢失重要的颜色对比信息,在某些场景(如OCR识别)反而降低效果。文章提出了分级饱和度策略(s=0.3-1.0),并分析了饱和度与对比度的联动关系,强调需根据背景复杂度、颜色对比度等要素动态调整。最后通过Swift代码示例展示了两种实现方式,验证了Core Image的CIColorControls滤镜与手动计算的等效性,指出"降饱和到0"与传统灰度原创 2026-05-18 16:29:05 · 606 阅读 · 0 评论 -
【图像处理】二值化与阈值——从灰度到黑白的决策
二值化:图像处理的"黑白决策" 二值化是将灰度图像转换为仅含黑白像素的处理方法,通过设定阈值将像素分为前景和背景。核心算法包括: 固定阈值法:简单高效但依赖人工设定 Otsu算法:自动寻找最优阈值,最大化类间方差 局部自适应阈值:解决光照不均问题 典型应用包括OCR、条码识别等需要明确区分目标的场景。二值化常配合形态学操作(腐蚀/膨胀)和边缘检测(如Sobel)使用,是图像分析的基础步骤。其关键挑战在于阈值选择,直接影响处理效果。原创 2026-05-16 11:17:07 · 684 阅读 · 0 评论 -
【图像处理】亮度与对比度——图像的线性变换
本文深入解析了图像处理中最基础的亮度与对比度调整技术。通过数学公式和代码实现,揭示了二者的本质区别:亮度调整是像素值的线性平移(加法运算),而对比度调整是以128为中点的缩放(乘法运算)。文章详细阐述了数值溢出的处理机制(clamping)、锚点选择的原理,以及如何将两种调整合并为统一的线性变换公式。最后从框架设计角度,探讨了滤镜链式调用的实现哲学,展示了通过协议抽象实现图像处理流程的优雅方式。全文以Swift代码示例贯穿始终,既呈现了底层数学原理,又体现了工程实践中的最佳方案。原创 2026-05-14 17:06:11 · 738 阅读 · 0 评论 -
【图像处理】颜色科学与灰度化——人眼看到的和数字记录的不一样
彩色照片转黑白不能简单用RGB平均值,因为人眼对不同颜色的敏感度不同。研究发现,人眼对绿色最敏感(视锥细胞占比40:20:1),红色次之,蓝色最弱。因此,现代图像处理采用BT.709标准(L=0.2126R+0.7152G+0.0722B),其绿色权重最高(0.7152),蓝色最低(0.0722),更符合人眼感知。实现时需注意数值精度(四舍五入)和保留Alpha通道。相比平均值法和旧标准BT.601,BT.709在sRGB色彩空间下能产生最自然的灰度效果。原创 2026-05-13 17:40:05 · 599 阅读 · 0 评论 -
【图像处理】坐标系与图像加载——UIImage 是怎么变成内存像素的
本文深入探讨了iOS图像处理中的关键问题,包括坐标系差异、颜色空间转换和像素格式处理。文章首先分析了Apple图像体系的三层架构(UIImage、CGImage和像素数据),指出UIImage并不直接存储像素数据。在颜色空间部分,解释了不同颜色空间对显示效果的影响,并提供了sRGB归一化的解决方案。重点讨论了坐标系问题,揭示了CGContext在内存绘制时的特殊行为,指出常见的"flip变换"方法在内存Context场景下会导致图像倒置。原创 2026-05-12 16:16:56 · 495 阅读 · 0 评论 -
【图像处理】从“图片“到“内存“——你真正理解图像处理的第一天
这篇文章揭示了图像处理的本质:图像在计算机中是以二维像素矩阵形式存储在连续内存中的数字阵列。每个像素由RGBA四个通道组成(各占1字节),采用行优先方式展平为一维数组存储。文章详细解释了像素坐标与内存索引的转换公式(y×width+x)×4,并介绍了MLBitmap数据结构的核心设计理念,包括使用UInt8数组而非结构体数组的性能考量。最后通过不同分辨率图像的内存占用对比,强调了内存防御的重要性。全文旨在帮助读者从"看图"思维转向"操作内存数据"的底层视角,这是图像处原创 2026-05-11 09:53:03 · 397 阅读 · 0 评论 -
iOS 银行卡识别,我把最难的部分都替你踩过了
OCRKit是一款纯Swift开发的iOS端侧OCR框架,专为解决支付场景下用户手动输入银行卡/身份证号的痛点。支持银行卡和身份证识别,具备实时矩形检测、复杂场景适应(模糊/凸印/倾斜/深色卡片)、透视矫正等功能。提供SPM、CocoaPods和手动三种接入方式,完全离线运行保障隐私安全。该框架由10年支付行业经验的开发者打造,未来计划支持更多证件类型和多语言识别。开源项目地址:https://github.com/FreakLee/OCRKit-Release原创 2026-04-28 17:46:51 · 269 阅读 · 0 评论 -
世上K线大师有两个,一个是特朗普,另一个是你
特朗普发条推特,纳指跌 5%;再发一条,道指涨 3%。这哥们不炒股——他就是 K 线。而作为一个 iOS 工程师,你连个像样的 K 线图都没写过,凭什么说自己懂金融科技?本文手把手带你读懂并实现 EFStockChart——一个从零开始、仿照东方财富的 Swift K 线图库。GitHub 地址在文末,先收藏,后细看。原创 2026-04-25 12:15:38 · 412 阅读 · 0 评论 -
深入探究Swift中String的内存布局及底层实现
通过汇编语言、Swift源码及MachOView等多途径探究Swift中String的内存布局及底层实现原创 2024-08-17 22:25:35 · 1325 阅读 · 1 评论 -
浅析Swift中的Copy-on-Write
简称COW)是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy)被建立,因此多个调用者只是读取操作时可以共享同一份资源。原创 2024-06-07 13:45:16 · 1944 阅读 · 0 评论 -
腾讯开源利器:让iOS UI调试更高效
腾讯的是一款专为iOS开发者设计的UI调试工具,类似于 Xcode 自带的工具,或者以前常用的另一款软件Reveal。腾讯的是一个强大的iOS UI调试工具,其通过实时查看、编辑和调试视图层级和属性,极大地提高了UI开发和调试的效率。通过掌握其原理和使用方法,开发者可以更高效地处理UI问题,提高应用的整体质量。原创 2024-06-05 13:53:02 · 2106 阅读 · 0 评论 -
iOS最新制作Framework总结
最新图文详解iOS自定义Framework制作。外部依赖第三方库,内部嵌入第三方库原创 2022-11-29 12:02:00 · 3491 阅读 · 0 评论 -
一次由图片引起的致命崩溃问题
上周项目上线后出现一个奇怪的线上崩溃问题,写篇文章记录一下。问题系统为iOS9.0.2、iOS9.1、iOS9.2、iOS9.2.1的iPhone,通过App Store下载的,一启动程序就会闪退,但是在模拟器上或者真机debug模式相同系统版本的情况下也不会闪退。我们的项目环境为:Xcode9、Objective-C、Target iOS8.0及以上。日志下面列举几个常见的日志:1、U...原创 2018-09-28 01:06:57 · 3095 阅读 · 2 评论 -
探究iOS中的KVO底层实现
什么是KVOKey-value observing provides a mechanism that allows objects to be notified of changes to specific properties of other objects.KVO(Key-value observing)是键值观察的简写,是Objective-C对观察者设计模式的实现,是Cocoa...原创 2018-10-30 22:20:02 · 348 阅读 · 0 评论
分享