公开标签 #iOS开发
iOS 开发中,用好库和工具能省不少时间。今天分享 7 个高质量的工具库,覆盖进度提示、后端开发、API 调用、异常处理、文档编辑、自动化测试等。1. MBProgressHUD:iOS 进度提示组件GitHub 地址:https://github.com/jdg/MBProgressHUDMBProgressHUD 是一个老牌的进度提示组件,用 OC 写的,在 iOS 开发者里普及度很高。它经过了十几年的打磨,稳定性没话说。核心功能就是各种加载场景:菊花转、进度条、成功或失败的提示,登录、网络请求、下
之前一直用 Xcode 纯手工,后来试了下 Cursor,发现 AI 辅助确实能省不少事,今天就来聊聊怎么配置 Cursor 开发 iOS 项目。Cursor 本质上是 VSCode 的一个 fork 版本,内置了很多 AI 功能。相比 Xcode,它有几个明显的优势:• AI 代码补全更智能,能根据上下文预测下一步要写的代码• 内联编辑很方便,选中代码按 CMD+K 就能让 AI 帮忙重构• 聊天面板可以随时问问题,不用切到浏览器• Agent 模式可以一次性改多个文件Cursor 是收费的,想尝试的
SDWebImage 大家应该都用过吧?加载 jpg、png 啥的确实好用,但一碰到 SVG 就抓瞎了,之前项目里有一堆 SVG 图标,每次都得单独处理,麻烦得很。SDWebImageSVGCoder 这个插件装上之后,SVG 也能像普通图片一样加载了,完全用地 Apple 原生框架,没有乱七八糟的依赖,集成起来也简单:// 注册下 SVG 解码器就行SDImageCodersManager.shared.addCoder(SDImageSVGCoder.shared())// 然后就能直接加载 SVG
Liquid Glass 是什么?简单说,它是苹果为 iOS 26、iPadOS 26 及 watchOS 11 打造的新视觉语言,特点如下:• 分层设计:玻璃层始终漂浮在主内容之上,不与主 UI 争抢视觉焦点。• 动态模糊:系统实时采样下方内容,进行模糊和着色处理,让玻璃像水滴一样“融”进背景。• 统一动效:交互时,玻璃会有微妙的尺寸变化和高光闪烁,如同液体流动。一句话:它既是装饰,也是交互的一部分。基础用法:glassEffect() 三连击在 SwiftUI 中,苹果提供 glassEffect(
URLSession 是 Apple 提供的用于处理 HTTP/HTTPS 请求的 API。它支持多种网络任务,包括: 数据任务(Data tasks):发送和接收数据,如 GET 或 POST 请求。 下载任务(Download tasks):下载文件。 上传任务(Upload tasks):上传文件。 流任务(Stream tasks):处理流数据。 URLSession 提供了同步和异步两种方式来处理网络请求,并支持后台传输、取消和恢复传输等高级功能。 URLSession 实例有两种方法: UR
苹果要求,应用和第三方 SDK(XCFrameworks、Swift 包或 Xcode 项目的形式分发),如果有用到涉及隐私的 API 接口,必须包含名为 PrivacyInfo.xcprivacy 的隐私清单文件,来记录相关的隐私信息。 创建隐私清单 PrivacyInfo.xcprivacy步骤: 1、打开 Xcode,选择 File > New > App Privacy。 2、点击下一步,选择 Target(这一步很重要,一定不要忘了)。 3、点击创建按钮。 名称使用默认的就可以了,创建完成后,
一说到 mac 上的抓包工具,大家自然而然的会想到 Charles,作为老牌抓包工具,它功能很全面,也很强大。但是随着系统的不断更新迭代,Charles 的一些缺点也慢慢表露出来,比如: 卡顿,特别在一些低端 Mac 机型上比较卡,体验就很差 吃内存,时间久了总是得重启一下,不然内存吃的太多 页面老旧,感觉像是旧时代的产品 介绍一个好用的抓包工具,Proxyman,可以作为臃肿 Charles 的替代。 Proxyman 配置 安装就不说了,大家可以自行去官网下载安装。 Proxyman 提供了一个免费
装载过程 为何需要装载? CPU只能处理被装载到内存中的指令和数据 我们编写好的app程序被编译为可执行二进制文件,其内部包含了操作指令和数据集合,是确确实实存储在手机上的物理文件,应用启动之初,操作系统会为其创建一个进程,iOS一个应用只有一个进程,早期的装载过程十分暴力,直接把可执行二进制从磁盘拷贝到内存中,随着硬件的发展,多用户、虚拟存储的操作系统被发明出来,装载过程得到很大的优化,现代操作系统页映射被广泛应用为动态装载方案,内存也得到了进一步的解放 页映射是虚拟存储机制的一部分,将内存和所有磁盘
1