基于Web Vitals的秒开优化调研需求背景项目中上线的H5页面越来越多,用户在Web页面的体验变得更加重要。
随着网络带宽不断发展增大,人们对网页的打开速度要求也变得越来越高。
性能指标做性能优化之前首先需要明确相关指标。明确性能指标就是要明确我们关注哪些数据,这些数据如何测量,什么数据算是好的,什么数据算是不好的。
拿到我们需要的指标数据之后才能再针对特定的场景进行优化。
基于Core Web Vitals的指标多年来Google提供了许多工具衡量和报告网页加载效果,有些开发者擅长使用这些工具,而有些开发者因为工具和指标众多难以跟上节奏。
这里我们按照Chrome的最新LightHouse给出的以用户为中心的标准化指标Web Vitals来衡量网页的性能。
其中我们最关心以下指标:
LCP 最大可视内容绘制时间LCP 会报告视口内可见的最大图片、文本块或视频的渲染时间(相对于用户首次导航到网页的时间)。
从用户视角来看,相比于其他指标LCP最能反映出页面加载的速度。
为了提供良好的用户体验,一个网页应该在2.5s内完成最大可视内容加载。
INP 输入延迟时间输入延迟时间指...
一、背景介绍公司采购了Cursor IDE,其中的Composer功能十分强大。目前Xcode缺乏对应的AI功能,尝试迁移到Cursor。
二、准备工作2.1 必要插件安装
安装Swift扩展插件
安装SweetPad扩展插件
在SweetPad插件中安装TOOLS
xcode-build-server 必须安装 别的按需安装即可
2.2 可选插件安装
安装Chinese简体中文插件将Cursor语言改成中文
安装Xcode Keymap扩展插件将Xcode的快捷键映射到Cursor
2.3 界面优化新下载的Cursor功能菜单默认布局是横向的,空间很小,建议改成纵向布局:
Cursor - 首选项 - 设置 - 工作台 - 外观
搜索 workbench.activityBar.orientation,改为vertical
重启即可
三、编译与运行3.1 设备选择在SweetPad插件中找到DESTINATIONS(设备列表)项:
只能找到iOS17以上的设备,最好使用模拟器
此插件不支持真机Debug
右键点击模拟器后弹出选择设备
3.2 构建项目找到BUILD...
一、项目背景在全球化业务快速发展的背景下,我们的教育类应用需要支持18+语言、覆盖100+国家地区的本地化需求。
二、现状分析目前iOS端在基于系统级的.String文件支持多语能力的基础上又增加了一层动态Json多语。
为了获取动态修复多语的能力,我们额外实现了一套动态拉取多个scope下的18种语言json的功能。支持server、本地文件、内存三级缓存。
在根据多语key提取文本时会先到动态多语模块去查询,如果查不到目标字符串则会回退到系统NSLocalizedString获取文本。
主要实现特点:
123456// 内存管理核心逻辑- (NSDictionary *)getCurrentLanguagesData { NSMutableDictionary *stableLanguages = [NSMutableDictionary dictionary]; [self.subScopes enumerateObjects...]; // 全量合并多语数据 return stableLanguages; // 产生内存峰值}
现存...
iOS背景模糊实现技术方案需求背景晖致日本提出很多代表在家里录制AI作业,希望可以将背景模糊,保护代表隐私。
类似于腾讯会议的背景虚化功能,录制视频作业 的时候将背景模糊化,只保留用户人像区域。
技术方案业界对这个需求的实现方案基本一致。
首先录制过程中将视频帧做高斯模糊形成背景模糊中”背景”部分。
然后在实时的将每一帧图像中包含人像的部分“扣”出来形成一张黑白分明的灰度图(mask)。一般是人像区域为白色,非人像区域为黑色。
最后使用自定义三输入的滤镜,分别传入模糊后的背景视频帧+灰度mask图+原始视频帧,通过片元着色器对每一个像素点进行遴选。根据灰度图的颜色,白色取原始视频帧,黑色取模糊视频帧。
这样就形成了背景区域是模糊的,人像区域是正常的视频,达到要求。
在视频帧处理这方面我们采用项目中已经引入的GPUImage库来实现。
人像分割这个抠图的技术我们称为人像分割,人像分割算法有很多种,常见的包括:基于颜色和纹理的方法、基于边缘检测的方法、基于深度学习的方法、基于图割的方法等。
目前这一步交由AI组伙伴提供基于TensorFlowLiteObjC的深度学习人像分割模型来实...
iOS端 ASR优化一、ASR(Automatic Speech Recognition)简介ASR是一种将语音信号转换为文本的技术,它可以帮助人们更方便地与计算机进行交互。我们的AI作业小节在录制过程中会同步调用ASR服务商实时将用户录制的语音转成为文字,在录制完成后根据ASR结果计算流畅度、语速评分,在上传作业的时候将ASR结果同时上传到服务端进行AI分析。
可见AI作业的流畅度维度评分、语速维度评分和AI分析报告中的关键词分析、口头禅分析、停顿分析都是建立在获得准确的ASR结果上的。所以构建一个准确可靠的语音识别服务是AI作业小节的基本要求,也是AI作业小节的分析准确度和用户满意度的关键。
二、ASR存在的问题2.1 热词/词库问题ASR服务需要手工校准一些生僻专业词语的发音或同音词识别,这也就意味着需要ASR服务商提供词库/热词功能,同时对不同的用户/企业甚至每一次ASR识别过程都可能需要不同的热词。
解决方案:
针对CN、CO、COM/TW/IO 这三个环境平台,调研支持热词的服务商并测试效果。CN 采用了阿里听悟,CO...
ChatGPT使用技巧手册
目录
核心技巧
代码优化与重构
多语言处理
开发辅助
跨平台适配
扩展应用
核心技巧Prompt生成方法论
多Prompt生成
通过生成多个prompt迭代优化输出质量
示例流程:1# 生成初始Prompt → 评估结果 → 生成改进Prompt → 最终优化
角色扮演
作为超级语言解释器(处理复杂语义)
作为提示词训练器(生成领域专用Prompt)
格式规范
强制JSON/YAML结构化输出
表格化数据呈现
代码优化与重构10大即时代码重构技巧
优化方向
典型操作
适用场景
性能优化
算法复杂度分析
循环结构
兼容性
多语言语法适配
跨平台项目
可维护性
模块化拆分
大型工程
重构步骤示例:
使用最新库版本替换过时代码
将ArrayList改为ConcurrentHashMap(数据结构优化)
添加try-with-resources错误处理
多语言处理多语种翻译工作流关键注意事项:
使用 LANG_CODE作为字典key
保留原始文本占位符(如 {0})
优先处理...
iOS Crash类型总结iOS APP系统crash主要分两类:一类是Objective-C Exception,一类是Unix Signal Exception。下面详细介绍。
崩溃日志路径:~/Library/Logs/CrashReporter/MobileDevice
一、Objective-C Exception例如NSDictionary加入nil、数组访问越界等。主要有如下类型:
1. NSInvalidArgumentException非法参数异常(NSInvalidArgumentException)是Objective-C代码最常出现的错误。平时在写代码时需要多加注意,加强对参数的检查,避免传入非法参数导致异常,其中尤以nil参数为甚。
主要场景包括:
1.1 集合数据的参数传递比如NSMutableArray、NSMutableDictionary的数据操作:
NSDictionary不能删除nil的key
NSDictionary不能添加nil的对象
不能插入nil的对象
其他一些nil参数
1.2 其他A...
iOS文件系统编程指南iOS文件系统编程指南
文件系统处理数据文件、应用程序以及与操作系统本身关联的文件的持久存储。因此,文件系统是所有进程使用的基本资源之一。
APFS 是 macOS、iOS、watchOS 和 tvOS 中的默认文件系统。APFS 取代 HFS+ 作为 iOS 10.3 及更高版本以及 macOS High Sierra 及更高版本的默认文件系统。
关于 iOS 文件系统iOS 文件系统面向独立运行的应用程序。为了保持系统简单,iOS 设备的用户无法直接访问文件系统,应用应遵循此约定。
iOS 标准目录:文件所在的位置
目录
描述
AppName.app
这是应用程序的捆绑包。此目录包含应用程序及其所有资源。您不能写入此目录。为防止篡改,捆绑目录在安装时进行了签名。写入此目录会更改签名并阻止您的应用程序启动。但是,您可以获得对存储在应用程序包中的任何资源的只读访问权限。此目录的内容未由 iTunes 或 iCloud 备份。但是,iTunes 会对从 App Store 购买的任何应用程序执行初始同步。
Documents/
使用此目录...
iOS签名机制概要背景在iOS开发中,配置证书总是一件繁琐的工作,网上的教程有很多,基本都是手把手的教操作,但是如果不了解为什么要配置这些东西,对配置流程就不会有深刻的印象。
配置证书最大的作用就是保证安全性,安全性主要表现在以下的几个方面:
1.保证苹果手机下载的App是从苹果官网认证的途径下载
2.保证App在苹果官方注册过的设备上运行
3.保证App在特定的设备中运行(开发需要)
技术支持苹果采用的是数字签名进行加密,它是基于非对称加密算法和摘要算法实现的,和对称加密算法不同的是**,**对称加密通过同一份密钥加密和解密数据,而非对称加密有两个密钥,分别是公钥和私钥,用公钥加密的数据,要用私钥才能解密;用私钥加密的数据,要用公钥才能解密。这里的非对称加密就是我们熟知的RSA,想要深入理解的童鞋可以自主了解。
为了更好的理解非对称加密的好处,我举一个场景例子:A要发送邮件给B,这个过程中要确保在传输中邮件内容没有被篡改,也就是只有B可以查看邮件的内容;还要确保这个邮件是A发送过来的,不是其他人发送的。我们用非对称加密的方式来处理:首先存A和B各有一对公私钥,A持有他自己的私钥...
什么是SwiftUISwiftUI 于 2019 年度 WWDC 全球开发者大会上发布,它是基于 Swift 建立的声明式UI框架。
该框架可以用于 watchOS、tvOS、macOS、iOS 等平台的应用开发,等于说统一了苹果生态圈的开发工具。
SwiftUI provides views, controls, and layout structures for declaring your app’s user interface. The framework provides event handlers for delivering taps, gestures, and other types of input to your app, and tools to manage the flow of data from your app’s models down to the views and controls that users will see and interact with.
SwiftUI Hello World创建新项目并预览画布
和平时创建...