- 博客(163)
- 资源 (4)
- 收藏
- 关注

原创 ios apns推送 离线锁屏语音播报
公司正在研发的一款App,需要在进行消息推送时支持语音播报。 具体要求:- 离线:App在用户未打开时,可收到消息推送- 锁屏:用户在设备锁屏状态下,仍可收到消息推送- 语音播报:收到消息推送时可同时进行语音播放苹果的APNs消息推送, 支持在应用未打开及设备锁屏状态下收到推送。 而同时进行语音播报,则需要做一些特殊处理。 目前语音播报的场景有两种: 一种是固定音频的播放, 一种是需要动态合成后的音频播放。如支付宝或微信收款的消息提醒: “支付宝/微信成功收款100元” 。
2023-04-24 14:23:26
137
2

原创 graphhopper-ios 编译过程详解
GraphHopper 是一个快速且高效的路径规划引擎,它默认使用和GTFS数据, 也可以导入其他数据源。它可以用作java库或独立的web服务器,去计算两个或多个点之间的线路的距离,时间,转弯指令和许多道路属性。除了“A-to-B”的路径规划能力之外,它还支持“snap to road”、等时线计算、移动导航等。是的oc版本,它使用j2objc将.java源代码转换为代码, 以供iOS平台的开发者来使用。该库在成功编译后会生成一个的静态库文件。接下来介绍该库在终端命令行模式下的编译过程。
2022-10-27 17:06:23
1186
1

原创 iOS 音视频开发之AVCaptureMetadataOutput
AVCaptureMetadataOutput用于处理AVCaptureSession产生的定时元数据的捕获输出,它继承自AVCaptureOutput
2022-09-27 18:30:00
1300

原创 基于AVFoundation实现视频录制的两种方式
方案一:AVCaptureSession + AVCaptureMovieFileOutput方案二:AVCaptureSession + AVAssetWriter
2022-07-05 17:21:09
494

原创 如何在.podspec 文件中添加对本地库的依赖
说明在使用cocoapods来管理库时, 当前库想要添加一个本地库的依赖, 尝试在.podspec 文件中设置如下依赖:s.dependency = 'my pod', :path => ''尝试后发现是不可行的。 .podspec 中不支持 :path => 或者 :git => 的方式来引入本地库。那么有办法可以解决吗 ?方案通过查资料,终于找到了合适的方案。 首先,我们不能向上面那样在.podspec中设置pod的依赖, 但可以在Podfile文件中指明pod 的sour
2022-04-18 17:24:22
2218

原创 uniapp ios原生插件开发 (framework,cocoapods)
已知UniApp的插件开发方式有两种, 第一种 Xcode Framework的方式,这种方式是官方指定的方式。 这种方式的优点就是简单直接, 但也有不足,比如当插件需要引入一些三方库时,操作起来就不是那么方便。 而使用Cocoapods则可以很方便的引入三方库。 接下来,本文探索使用Cocoapods的方式来进行UniApp插件开发。
2022-03-02 14:47:24
4482
18

原创 使用pod package打包framework 实现组件的二进制化
随着项目的多次迭代,功能越来越多,项目也越来越大,相应的编译时间也越来越长。 亟需要方案来解决项目日益变大,模块变多,功能藕合变紧密的问题。 对项目进行模块化,组件化迫在眉睫。可见,组件化是项目变大后的必经选择。那组件化能给项目带来哪些优势,又有哪些不足呢? 接下来本文会就组件的拆分,组件的创建,组件的二制化来介绍项目组件化的整个过程。组件化是不是所有的项目都适用组件化 ?答案是否定的。 只有当项目到了一定规模,各功能模块日趋增多,此时可考虑对项目进行组件化的重构。我们先来了解一下组件化到底有哪些
2022-01-07 18:26:12
2103

原创 iOS WebRTC集成时遇到的问题总结 (声音默认输出由听筒改为扬声器、视频镜像、远端视频全屏等比填充等)
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言之它是一个支持网页浏览器进行实时语音对话或视频对话的技术。它为我们提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android,iOS。它在20.
2021-12-23 15:15:54
2451
4

原创 ios animation 动画学习总结
动画一直是 iOS 开发中很重要的一部分。设计良好,效果炫酷的动画往往能对用户体验的提升起到很大的作用,在这里将自己学习 iOS 动画的体会记录下来,希望能对别人有所帮助。iOS 的动画框架,即 CoreAnimation,本身十分庞大和复杂,这里暂时分两个部分进行介绍,分别是 UIView 动画 和 CALayer 动画。1、UIView Animation简单动画对于 UIView 上简单的动画,iOS 提供了很方便的函数:+ animateWithDuration:animations
2021-12-11 12:47:55
1649

原创 iOS操作本地视频 - 获取,压缩,取第一帧
现在大多数应用都涉及到对本地视频的相关处理, 比如社交类,短视频类应用等等。本文通过视频选取,视频的压缩,视频的处理的操作流程来说一下视频处理过程中常用到的功能 。1.通过PHAsset获取AVURLAsset对视频操作的第一个步骤肯定是视频的选取。视频的选取可以通过调用系统提供的UIImagePickerController 控件或三方库来处理。目前市面上用的比较多的三方库诸如:TZImagePickerController, HXPhotoPicker 等,功能上也都相似。三方框架提供的功能相
2021-12-04 23:12:53
4132

原创 iOS 自制Framework 获取指定bundle并读取里面的资源
应用中某些模块需要组件化,组件化后的工程最后会做二进制化处理,打包成.framework文件。 今天简单聊一下在主工程或其他组件中是如何访问自制组件.framework中的bundle,及其中资源的。访问应用资源我们知道苹果应用是基于沙盒机制, 打包生成.ipa后的资源会被放到沙盒的根目录下。通常在主工程中我们是这样访问资源的:NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"]
2021-12-02 13:48:22
2110

原创 iOS 组件化实施过程
组件化的拆分组件与组件之间如何进行通讯(路由)从Cocopods拉取代码的过程远程索引库里很多的.spec文件,该文件记录了很多内容,如用户名,框架名称,描述,框架的地址Podfile 文件是拉取框架源码的配置文件, pod install 命令会根据Podfile中配置来拉取框架源码Pod setup 命令会把远程索引库拷贝到本地,在本地还有一个检索文件执行pod search命令过程,并不是直接从远程索引库查找,它是从本地的检索文件,该检索文件是以键值对
2021-11-29 11:44:38
824

原创 iOS 微信、支付宝、银联、Paypal 支付组件封装
移动支付为人们的生活提供了便捷,越来越多的应用也都开始集成了移动支付功能。国内目前的几大支付平台分别有微信、支付宝、银联,国际的有Paypal, ApplePay等。 大部分的电商应用基本上对时下这几个支付平台都有集成,为用户下单支付提供更多的便利及选择。本人目前所从事的旅游行业也是要与电商结合,会在线销售全球不同目的地的景点门票,酒店等产品。所以也免不了涉及到移动支付这一块。 在使用各家平台的iOS sdk时必然会碰到很多集成上的问题,但所幸都一一解决。早就想找个时间把集成时碰到的问题写下来,一来
2021-11-16 09:15:19
1925
原创 使用UICollectionView实现聊天列表的细节整理
一、初始进入聊天界面,数据加载完成后,默认滚动到底部二、发送消息后,新消息在底部显示三、下拉加载更多历史消息四、键盘弹出时,调整聊天内容列表的显示位置
2023-06-08 14:12:37
13
转载 Swift 最佳实践之 Property Wrapper
如上介绍的 RGBValue,日常开发中有很多值有有效取值区间,如:RGB、age、 weekday、fps 等。关于 Property Wrapper 的应用,「只有想不到,没有做不到」,是一个充满想象力和创造力的地方!通过 Property Wrapper 可以很好地将这些逻辑封装起来,极大简化了业务上的处理。合理的封装 Property Wrapper ,可以提升代码的复用性,以及简化业务使用。如上,定义了一个最简单的 Property Wrapper。
2023-06-05 11:58:27
14
转载 理解Swift中的 some 不透明返回类型
为什么SwiftUI的返回类型?some View?为什么不能只返回常规协议?什么是不透明类型?不透明返回类型是Swift 5.1中添加的一项功能,它是新SwiftUI框架功能的重要组成部分。它最终解决了协议使用和Swift API设计的基本问题,为创建和使用公共API开辟了新的可能性。
2023-05-29 11:28:04
22
原创 finallshell mac SSH工具
FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求.
2023-05-22 09:23:08
464
原创 在 Xcode 中使用 Swift Package
以前在 macOS/iOS 开发中,我们通常使用CocoaPods或Carthage等非官方工具来管理项目中的三方库依赖。但现在我们又多了一种方式,它就是苹果官方提供的。苹果从Xcode11以后 增加了的功能, 用来添加和管理依赖的三方库。在使用Swift Package 时,只需要输入第三方库的git地址, 其他的会自动完成,非常方便。(Swift 包管理器,一般简称SwiftPM或者SPM)是苹果官方提供的一个用于管理源代码分发的工具,旨在使分享代码和复用其他人的代码变得更加容易。
2023-05-17 15:29:36
147
原创 xcode历史版本下载
较早之前做过一个项目,当时使用swift 3.x开发。 项目结束后就没再有新需求与更新。 但最近呢需要对项目的某些功能进行调整,项目又重新被拾了起来。 我们知道现在的swift 版本已经到了 5.x, 相应的语法上较 3.x版本也有了不小的变化。使用最新版本的xcode都已经不支持swift 3.x的 swift version. 所以目前面临两种方案: - 升级项目到swift 5.x (成本较大)- 开发工具xcode降版本
2023-04-26 13:41:35
499
原创 我的创作纪念日 2023
以前的CSDN产品相比现在没那么完善,“混迹”坛子里的经历也早以成为过往,偶尔也会从记忆的深处翻出来怀念一番。带着这种“情怀”, 再依托于CSDN现有的成熟产品,致力于将自己所学与工作中遇到的问题与大家分享交流。连接人脉的方式有两种:一种是你主动去连接,另一种则是被动连接–即别人来连接你,写作就是高效进行被动连接的绝佳手段。
2023-04-21 11:37:44
30
转载 ios 不常用的__attribute__
之后执行, 因为 dyld(动态链接器)最开始会先通知 objc runtime 去加载其中所有的类,每加载一个类时,它的。指定函数的执行,是在dealloc之前。在指定的函数中,可以传入一个形参,参数就是cleanup修饰的变量,形参是一个地址。在父类的方法后面添加,那么子类调用该方法必须实现 [super thisMethod],否则会黄色警告。如果某个变量未使用,会提示unused xxx,可以通过unused消除这个警告。随之调用,全部加载完成后,dyld 才会调用所有的。
2023-03-31 15:05:03
35
原创 使用VS Code创建第一个Flutter工程
介绍Flutter的开发工具VS Code 的安装与使用。 并且介绍了如何使用VS Code来创建一个Flutter 应用
2023-01-09 11:42:27
1523
2
原创 《技术管理实战36讲》学习总结
对于互联网技术人来说,“带团队”不再是一个可选项,而是迟早都要面对的事儿。做技术和带团队,更像是职业发展的两条腿,而不是完全叉开的两条路。管理实战36讲刘建国老师,将多年的技术管理经验浓缩于此课程, 满满的干货。总结并分享了技术管理方向的 “管理图谱”,对不知道如何做管理,什么是管理,怎么做的新技术经理人给予方向。
2022-10-24 11:37:30
466
原创 PaddleOCR 自制模型训练
拿文字识别场景举例:文字识别也是图像领域一个常见问题。然而,对于自然场景图像,首先要定位图像中的文字位置,然后才能进行识别。文字检测:解决的问题是哪里有文字,文字的范围有多少文字识别:对定位好的文字区域进行识别,主要解决的问题是每个文字是什么,将图像中的文字区域进转化为字符信息。
2022-09-19 20:00:00
1393
原创 PaddleOCR 标注工具PPOCRLabel的使用
PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PP-OCR模型对数据自动标注和重新识别。使用Python3和PyQT5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PaddleOCR检测和识别模型的训练。cd ./PPOCRLabel # 切换到PPOCRLabel目录 python PPOCRLabel.py --lang ch点击自动标注后就能看到自动标注的结果,用户根据自己的需求微调和修改,非常简单。..................
2022-08-26 17:20:35
1025
原创 uniapp ios原生应用与uni小程序间的通信
在文章《iOS原生应用集成uniapp uni小程序SDK教程》中我们介绍了如何在原生应用中集成uni小程序。显然小程序并不会单独存在,只所以将某些模块设计成小程序的方式集成,在某种程度上是为了提高模块的可复用性,可扩展性。但同时也面临着被隔离的小程序模块与宿主应用间的通讯问题。宿主 App 向小程序发送事件小程序向宿主 App 发送事件。
2022-08-23 13:53:43
627
原创 AVMakeRectWithAspectRatioInsideRect 的使用
此外, 如果要在使用aspectFillMode模式的UIImageView中显示UIImage的精确大小的话, 使用这个函数也是很有用的。它可以根据你提供的size,然后自动计算当前size按比例能缩放成多大的,然后返回.返回的Rect是一个居中显示的矩形。.........
2022-08-18 18:05:25
366
原创 uniapp ios原生插件开发之插件包格式(package.json)
在阅读本文章前,想必你已经对UniApp下的原生插件开发已经有了一定程度的了解。当原生插件开发完成后,我们需要按照既定的`“插件包格式”` 来将插件组装起来,也只有这样,组装后的插件包才能被UniApp的工程所识别。
2022-08-16 17:03:50
1055
原创 PaddleOCR mac 安装指南
现在网络上有很多百度PaddleOCR的安装教程,但普遍的问题是缺少对整个安装流程框架的讲解,而遇到的问题又五花八门,导致小白安装时容易被绕晕。本文将梳理PaddleOCR的安装框架,同时提供几个常见报错和解决方案,希望能帮助大家高效地成功安装PaddleOCR:1.官网安装PaddlePaddle2.下载github上PaddleOCR包3.install支持PaddleOCR的包。............
2022-08-10 13:43:01
1013
原创 技术新经理如何实现从技术岗到管理岗的转变
目前认识到的一些技术新经理, 大部分都是从技术岗被提拔到管理岗位上。 并且有超过80%的技术管理者,都是在没有明确表达管理意愿的情况下,被公司推到管理岗位的。确实没想到竟然有这么大比例的人都不是主动做出的选择,同时也一定可以想象得到,绝大多数技术管理者在刚开始带团队时, 对管理该怎么做是知之甚少的,因为他们毫无准备,甚至都不确定自己是不是要在这条路上坚定地走下去。我当初开始带团队时,也是充满了迷惑和不知所措,当时我多么渴望有前辈可以给以指引。 可以告诉我从技术转做管理,都有哪些要注意的地方,都有哪些事情要做
2022-07-13 11:30:16
929
原创 Swift CustomStringConvertible 协议的使用
先看一下Swift标准库中对协议的定义从声明中我们可以看到协议中只包含了一个 的只读属性 ,而且通过协议命名也可以窥探到它的作用 Custom+String+Convertible (所作用的类型去自定义String的转换)实现协议类似于在Objective-C中重写方法, 可用于:如标准库中给的示例,拿出来分析一下:通过上面的介绍,我们基本上了解了CustomStringConvertible协议的用法, 接下来介绍几种使用场景。如果在使用枚举时,除了需要访问枚举的外,还需要可以方便的输出每个枚举
2022-07-11 10:48:49
505
原创 uniapp ios原生应用集成uni小程序SDK教程
首先务必确认uni-app和原生代码,谁是主谁是从的问题。两种情况如下:如果你的应用是uni-app开发的,需要扩展一些原生能力,那么首先去插件市场看看有没有现成的插件,如果没有,就自己开发。原生插件开发的教程,可以参考我的另外一篇文章 《UniApp 使用Cocoapods进行原生插件开发探索》如果你的App是原生开发的,部分功能栏目想通过uni-app实现,有2种方式:接下来本文就重点介绍:在原生应用为主的前提下,如何进行uni小程序的集成 。uni小程序SDK,是为原生App打造的可运行基于 uni-
2022-06-28 14:41:15
2701
转载 美团好文:从预编译的角度理解Swift与Objective-C及混编机制
本文涉及面较广,篇幅较长,阅读完需要耗费一定的时间与精力,如果你带有较为明确的阅读目的,可以参考以下建议完成阅读:随着 Swift 的发展,国内技术社区出现了一些关于如何实现 Swift 与 Objective-C 混编的文章,这些文章的主要内容还是围绕着指导开发者进行各种操作来实现混编的效果,例如在 中开启某个选项,在 中增加某个字段,而鲜有文章对这些操作背后的工作机制做剖析,大部分核心概念也都是一笔带过。正是因为这种现状,很多开发者在面对与预期不符的行为时,亦或者遇到各种奇怪的报错时,都会无从下手,
2022-06-22 20:00:00
501
原创 iOS 常见编译报错及解决方案汇总(持续更新)
如下图示A: 该类问题一般都是因为导致编译报错。A: 此类问题根据报错即可知道,是由于 'xxx’文件找不到导致的。 但出现这种问题的情况不止一种 :
2022-06-17 20:00:00
649
iOS支付组件封装(微信,支付宝,银联)
2022-03-26
工作中整理的前后端技术文档与代码规范
2022-03-22
iOS开发你需要知道的
2022-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人