水印相机
水印相机《水印相机-简单好用》《水印相机-简单好用》的起源,是v2论坛有人询问ios 上有没有好用的可添加时间位置水印的相机,而恰好我使用 OC开发一个的水印相机,功能只有地点和时间水印; 于是便萌发了开发一个 Swift 版的,但是要开发一个 APP 上线,里面的功能要有那些,界面要怎么样?这些从哪里来呢? 首先是功能: 水印的种类要有哪些?市场上提供的水印相机有很多,那我要做的功能有哪些,怎么保证独特不重复? 论坛上这个用户需要的是简单的时间、地点的水印,所以水印a有了,即正常的时间、地点水印,再延展一下,就是日期、时间、地点,可自定义显示哪些。 水印b来源,是遇到过很多网站都需要上传身份证,来进行实名认证,但是每次上传都担心身份证信息被泄露。再想到之前有次租房的时候,看中介的身份证照片,上面写了一个文字《此照片仅供租房使用》,由此产生了第二个需求,身份证照片水印,即一行文字,可自定义内容和颜色。 还要有什么水印呢?考虑的是,经常会有照片被盗用,就是我拍摄的照片,转头就被别人拿走了发到朋友圈或者其他地方来冒用,那针对这样的,要怎么办呢?我就想做个印章模样的,就跟名人画的...
2022年已经做了的事情
背景梳理一下2022年已经做了的东西 原因之前规划中,todo 类和天气类 APP 是最简单的,打算自己注册开发者账号后,开发出来上架,作为自己的 APP,但是后来计划有变,开发出来给别人了。 已完成: 不止美剧《水印相机-简单好用》《挑战24点》《极简天气-简单至极》《极简待办》
制作自己表情包
背景浏览 X 的时候,看到一篇制作马年表情包的文章,突然想起来自己之前也有把家里狗狗制作成表情包的念头,当时因为太复杂放弃了。看到文章使用 AI 生成图片,就想再试试 实现参考# 谁不想拥有专属的微信表情包呢,一步步操作,很简单,最终制作成功,步骤如下: 批量生成表情包Gemini Banana Pro 的提示词如下,你可以根据要生成的对象,适当修改,同时附上一张图片/照片: 为我生成图中角色的绘制 Q 版的,LINE 风格的半身像表情包,注意头饰要正确彩色手绘风格,使用 6x4 布局,涵盖各种各样的常用聊天语句,或是一些有关的娱乐 meme其他需求:不要原图复制。所有标注为手写简体中文。生成的图片需为 4K 分辨率 16:9 ⚠️ 需要注意的是,有时候中文会写成不认识的词,可能需要检查修改 ⚠️ 为了保存高清图片,记得点击 Gemini 生成图片右上角的下载按钮哦,右键保存的图片分辨率较低。 生成一个裁切工具生成了 6x4 的表情包,但还需要一张张裁切也太麻烦了。那就用 AI 生成一个图片裁切工具吧,gemini 提示词如下: 写一个web工具可以裁剪图片, 图片是...
Swift后缀表达式(逆波兰式)转换计算
Swift后缀表达式(逆波兰式)转换计算背景最近在开发《挑战24点》的过程中遇到了一个问题,即,如何计算常用数学表达式的结果,即,给定字符串8 - (6 + 4 / 2 - 1) * 2,怎么计算得到结果,并且得到计算的过程。 网上查资料发现,大部分都是类似系统计算器的处理,在遇到第二个运算符时,就把前一步的操作结果计算出来。这样的处理方式并不适用于笔者想要解决的问题。 进一步搜索后发现,前缀表达式、中缀表达式、后缀表达式的概念,给定的字符串8 - (6 + 4 / 2 - 1) * 2属于中缀表达式,而想要计算机得出结果,可以转为前缀表达式或者后缀表达式,然后再对转换后的表达式进行计算。 这里采用中缀表达式转后缀表达式,然后计算后缀表达式得出结果,步骤如下。 Swift 中缀表达式转后缀表达式什么是中缀表达式、后缀表达式?首先理解中缀表达式和后缀表达式分别是什么? 中缀表达式: 是常用的算术表示方法,操作符处于操作数的中间,比如 (a + b),即中缀形式,故而称之为中缀表达式。 后缀表达式: 运算符写在操作数之后,比如 (a, b, +),称之为后缀表达式,又名...
iOS 录音 && 播放实现
录音代码录音转 mp3录音播放播放播放锁屏通知栏显示背景问题获取录音时长的问题参考iOS 获取音频时长的正确姿势 笔记,获取音频时长,有两个问题: 录音的 http 链接经过了一次封装,且需要 token 才能获取,这种情况下获取不到 录音的链接,下载保存到系统的 cache 文件夹下 1234567891011121314- (NSTimeInterval)audioDurationFromURL:(NSString *)url { AVURLAsset *audioAsset = nil; NSDictionary *dic = @{AVURLAssetPreferPreciseDurationAndTimingKey:@(YES)}; if ([url hasPrefix:@"http://"]) { audioAsset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:url] options:dic]; }...
iOS 音频后台播放 && 锁屏显示及控制
播放锁屏通知栏显示背景播放音频时,希望通知界面能显示,且能控制音频播放。由于之前需求是进入后台时播放暂停,所以每次打开通知界面时,播放就暂停,看不到类似于音乐播放器那样的效果。后来发现,去除进入后台暂停代码后,通知界面就可以显示播放器,但是不能控制、且没有进度。 实现支持后台播放首先需要 APP 支持后台播放,即,一方面去除进入后台播放暂停的代码逻辑;另一方面,设置 Target -> Signing & Capabilities 中,添加 Backgroud Modes,打开 Audio, AirPlay, and Picture in Picture。图片如下: 注意设置AVAudioSession,播放前根据实际需要设置,播放后关闭 AVAudioSessionCategory类型 Category类型 当按”静音”或者锁屏时是否静音 是否可以和其他支持混音的 APP 混合播放 是否支持后台 场景举例描述 AVAudioSessionCategoryAmbient 是 是 否 常用于 APP 的背景音,比如玩游戏时还可以听音乐 AVAud...
iOS SDK 不支持模拟器解决办法
背景iOS 第三方 SDK 不支持模拟器,报错提示: building for ios simulator, but the linked framework ‘’xxx(比如: IDLFaceSDK.framework)” was built for ios 解决办法.。 解决办法首先,在Target -> BuildSettings -> Excluded Source FileNames -> Debug 中添加一行,注意,key选择 Any iOS Simulator SDK,value 中添加报错中提示的 SDK的目录,示例如下: 然后,在项目中,引用对应 SDK 头文件,以及使用 SDK 方法的地方添加如下代码判断 1234567891011121314#if !(TARGET_IPHONE_SIMULATOR)#import <xxx/xxx.h>#endif#if !(TARGET_IPHONE_SIMULATOR)[xxx share].yyy = xxx;#endif
iPhone Safari 下载企业包出现 apk
背景来水一篇文章,日常备用,知道的很简单,不知道怎么也查不到。。。。 有人反馈企业包下载链接,使用 iPhone Safari 打开后出现下载 apk 的提示 起初以为是用户手动设置了 userAgent,后来发现是设置——Safari——请求桌面网站的开关开启了。。。。 如下图,下面的开关要关闭 end哈哈哈
iOS 接入 HTTPDNS
背景最近开发水印相机,遇到了用户网络正常,但是上传超时、上传失败的问题。通过听云后台看到接口错误记录中,用户的 localDNS 为空,于是就有了接入 HTTPDNS 的需求。 实践由于项目中网络请求使用的 AFNetworking 框架,接入第三方 HTTPDNS 后,需要修改 AFNetworking 中的内容,才能让请求走IP。 大致流程是接入 SDK——>注册 SDK——>获取 IP——>存储——>使用。这里可依据个人情况,在启动时进行 SDK注册,获取 IP 有两种方式,一是只在 APP 启动时获取一次,然后存储起来,APP使用过程中不需要更新。二是在 每次某个接口使用时都获取。 下面详细来看看接入的过程 阿里 HTTPDNS 按照快速入门中的步骤进行配置 添加域名,注意阿里的添加域名,可以添加全匹配和二级域名的方式 参考iOS SDK 接入进行接入 使用 CocoaPods 接入 这里到要骂人的地方了,按照阿里自己的官方文档上面写的 CocoaPod 安装的SDK不是最新的 12345source 'https://gith...