- 博客(60)
- 资源 (31)
- 问答 (1)
- 收藏
- 关注
原创 Flutter Android Studio开发实用技巧
在课程中我们推荐的做法是将复杂的布局提取成一个函数或者一个组件,那么接下来给大家分享一个提取flutter代码的技巧;13、前进后退:当跟踪代码的时候,经常跳转到其他类,后退快捷键:option+command+方向左键,前进快捷键:option+command+方向右键。10、查看类的子类:选中要查看的类,然后command + B或者option + command + B。Flutter最让人头疼的一点是布局的嵌套,对于复杂的布局嵌套如果不进行任何重构的情况下嵌套的非常深,
2025-09-08 10:17:34
751
原创 Flutter工程师面试题
有状态Widget是一种可以包含可变状态的Widget类型。当其内部状态(state)发生变化时,可以通知Flutter框架进行重新构建,并且可以在多次构建之间保留状态。通常在需要响应用户交互或数据更新时使用,比如表单、按钮、动画等。有状态Widget通常包括两个类:一个是继承自的Widget类,另一个是继承自State的状态类,状态类包含了Widget的可变状态。Flutter应用程序通常会包含许多不同的小部件,这些小部件可能需要访问和共享数据,而状态管理的目标是使这个过程更加有组织和高效。
2025-07-15 16:39:26
1096
原创 iOS高级开发工程师面试——Swift
但是适用于所有的数据类型,而非仅仅局限于类,Optionals 相比于 OC 中的 nil 指针 ,更加安全和简明,并且也是 swift 诸多最强大功能的核心。还可以将多维数组转换为一维数组,对于N维数组, map函数仍然返回N维数组。区别是flatMap会过滤nil元素, 并解包。关键字提供了一个安全和简便的方式来处理这件事,用于映射, 可以将一个列表转换为另一个列表。方法把数组元素组合计算为一个值。, 可以筛选出想要的元素。类似于 OC 中指向。
2025-07-15 15:44:17
1072
原创 iOS高级开发工程师面试——关于网络
其实公钥就被包含在数字证书中,数字证书通常来说是由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,证书中包含了一个密钥对(公钥和私钥)和所有者识别信息。socket 是 “open—write/read—close” 模式的一种实现,那么socket 就提供了 这些操作对应的函数接口。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性(传输加密和身份认证保证了传输过程的安全性)。:TCP 可靠的、保证消息顺序,UDP 不可靠(易丢包)、不能保证顺序。
2025-07-15 14:57:30
975
原创 iOS高级开发工程师面试——常见第三方框架架构设计
不设为 1,当某个请求正在回调时,下一个请求还是得等待一直到上个请求获取完所要的资源后解锁,所以这边并发回调也是没有意义的。的原理就是需要将服务器的公钥打包到客户端中, tls 验证时,会将服务器的证书和本地的证书做一个对比,一致的话才允许验证通过。而AF让线程常驻的原因是,当发起多个http请求的时候,会统一在这个子线程进行回调的处理,所以干脆就让其一直存活下来。的模式,这样的话,只要保证证书续期后,证书中的公钥不变,就能够通过验证了。发起的请求,不再需要在当前线程进行代理方法的回调。
2025-07-15 09:37:54
1186
原创 iOS高级开发工程师面试——多线程
进程是一个具有独立功能的程序关于某次数据集合的一次运行活动,他是操作系统分配资源的基本单位。进程是指系统正在运行中的一个应用程序,就是一段程序执行的过程。我们可以理解为手机上的一个app。每个进程之间是独立的。每个进程均运行在起专用且受保护的内存空间内,拥有独立运行所需的全部资源。进程是操作系统进行资源分配的单位。2. 线程:程序执行流的最小单元,线程是进程中的一个实体。一个进程想要执行任务,必须至少有一条线程。应用程序启动的时候,系统会默认开启一条线程,也就是主线程。
2025-07-15 08:59:45
1202
原创 iOS高级开发工程师面试——关于Block
和函数类似, 只不过是直接定义在另一个函数里的, 和定义它的那个函数共享同一个范围内的东西。block可以实现闭包, 有些人也称它作。结构如下:由上图可知,block实际上是由6部分组成的:指针,用于按位表示的一些附加信息,保留变量,函数指针,指向具体的实现的函数调用地址,从它的结构体可以看出,主要表示该的附加描述信息,主要是大小,以及和函数的指针,捕获的变量,能访问它的外部的局部变量,就是因为将这些变量(或变量地址)复制到了结构体中是类。 它有三种类型:分别是ARC下:和,切换到非ARC下的;这种块不会
2025-07-14 22:30:08
675
原创 iOS高级开发工程师面试——RunTime
语言是一门动态语言。它把一些决策从编译阶段链接阶段推迟到运行时阶段,实现该机制的基础就是runtime(又叫作运行时)。Runtime 提供的接口基本都是 C 语言,源码由 C\C++\汇编语言编写。Runtime API 为 Objective-C 语言的动态属性提供支持,充当一种用于 Objective-C 语言的操作系统,使得该语言正常运转工作。OC中的对象指向的是一个指针类型,;从它的结构体中可以看出,它包括一个isa指针,指向的是这个对象的类对象,一个对象实例就是通过这个isa找到它自己的。
2025-07-14 21:52:20
1042
原创 iOS高级开发工程师面试——RunLoop
RunLoop可以称之为运行循环,在程序运行过程中循环做一些事情,如果没有RunLoop程序执行完毕就会立即退出,有RunLoop程序会一直运行,并且时时刻刻在等待用户的输入操作。RunLoop可以在需要的时候自己跑起来运行,在没有操作的时候就停下来休息。充分节省CPU资源,提高程序性能。基本作用1. 保持程序持续运行。程序一启动就会开一个主线程,主线程一开起来就会跑一个主线程对应的RunLoopRunLoop保证主线程不会被销毁,也就保证了程序的持续运行。2. 处理App中的各种事件。
2025-07-14 15:42:32
952
原创 iOS高级开发工程师面试——Objective-C 语言特性
OC可以先跳过编译,到运行的时候才动态地添加函数调用,在运行时才决定要调用什么方法,需要传什么参数进去。这就是动态绑定,要实现他就必须用SEL变量绑定一个方法,最终形成的这个SEL变量就代表一个方法的引用。读写线程安全,但效率低,而且不是绝对的安全,比如如果修饰的是数组,那么对数组的读写是安全的,但如果是操作数组进行添加移除其中对象的话,就不保证安全了。,而不是通过调用存取方法,直接或通过实例变量访问的机制。,会产生悬垂指针,修饰的对象在被释放后,assign指针仍然指向原对象内存地址,如果使用。
2025-07-14 14:44:39
1315
原创 iOS高级开发工程师面试——关于优化
而且产生的位图缓存的大小是有限制的,一般是2.5个屏幕尺寸。一般情况下,OpenGL会将应用提交到 Reader Server 的动画直接渲染显示,但对于一些复杂的图像动画显示并不能直接渲染叠加显示,而是需要根据 Command Buffer 分通道进行渲染之后在组合,这一组合过程中,就有些渲染通道是不会直接显示的;在实现 drawRect方法的时候注意减少多余的绘制操作,它的参数 rect 就是我们需要绘制的区域,在 rect范围之外的区域我们不需要进行绘制,否则会消耗相当大的资源;
2025-07-13 23:15:45
1076
原创 iOS高级开发工程师面试——架构设计
比如:以上面的咖啡工厂为例,某天我的口味突然变了,不想喝咖啡了想喝啤酒,这个时候如果直接修改简单工厂里面的代码,这种做法不但不够优雅,也不符合软件设计的“开闭原则”,因为每次新增品类都要修改原来的代码。它通过View来接受用户的输入,之后利用Model来处理用户的数据,最后把结果返回给View。View Model 封装的是视图的表示逻辑和数据,负责暴漏方法,命令,其他属性来操作 View 的状态,组装 model 作为 View 动作的结果,并且触发 view 自己的事件。也就是把模型转化成UI。
2025-07-13 15:14:59
1218
原创 iOS App快捷指令(App Intents)在系统搜索服务中注册shortcuts
网上很多资料都是关于的,但是只能实现快捷指令的添加,无法在系统搜索服务中搜索到。这时候就得用到了。下面实现一个简单的App快捷指令,实现点击指令唤醒App并对相应的指令进行页面跳转。/// 标题static var title: LocalizedStringResource = LocalizedStringResource("扫一扫")/// 描述= IntentDescription("扫一扫intent")/// 点击运行时是否打开App@MainActor。
2024-08-29 16:05:23
1902
2
原创 iOS 不用VOIP也可以实现微信来电邀请推送持续响铃震动及及时来电取消
写这个功能花费我了很长一段时间,简直头秃。不知道有没有相同感受的。一开始原以为使用推送服务扩展轻轻松松就可以实现,然后一顿操作,发现了很多问题。重新查看了官方文档,发现以目前的机制根本无法实现这个功能。后来又一顿资料搜索发现了VOIP这个东西,刚刚好正是我所需要的,但是问题来了,中国地区在iOS13后,已经禁用了该功能,一旦使用这个功能就面临着,上架被拒的风险,当然如果你是在国外上架的,当我没说。当撸掉头上一戳毛之后,终于看到了希望的曙光.请继续往下翻。
2024-02-22 20:42:47
2003
原创 Flutter WebView之给H5网页图片添加点击事件以实现原生图片预览
网上很多方案,都是获取html中的图片列表,再往里面添加点击事件。思路是没错的,但是由于很多H5使用的VUE或者Ajax等技术异步加载渲染,因此此处需要借助jQuery库给一步渲染的img动态绑定事件。具体怎么做,往下看。
2024-01-29 10:05:42
979
原创 iOS 不用VOIP也可以实现微信来电邀请推送持续响铃震动及及时来电取消
写这个功能花费我了很长一段时间,简直头秃。不知道有没有相同感受的。一开始原以为使用推送服务扩展轻轻松松就可以实现,然后一顿操作,发现了很多问题。重新查看了官方文档,发现以目前的机制根本无法实现这个功能。后来又一顿资料搜索发现了VOIP这个东西,刚刚好正是我所需要的,但是问题来了,中国地区在iOS13后,已经禁用了该功能,一旦使用这个功能就面临着,上架被拒的风险,当然如果你是在国外上架的,当我没说。当撸掉头上一戳毛之后,终于看到了希望的曙光.请继续往下翻。
2024-01-08 17:54:51
1393
原创 Flutter 音频转码Mp3文件插件
网上找了很多插件不是不支持录音转码mp3,要不就是不返回音量数据。没办法,之前的录音代码也不想改,于是就自己撸了个把音频转码为mp3的插件。
2022-12-20 20:39:49
1268
原创 Flutter 界面背景添加水印
在聊天页面背景添加水印。网上很多文章要么都是在图片添加水印,要么给的例子都是全屏的水印,无法满足我先有的需求。怎么办呢,自己怼一个好了。在页面里添加一个widget作为底层背景,在这个背景绘制水印。绘制前需要先认识、、、 CustomPaint class提供了让用户自定义widget的能力,它暴露了一个canvas,可以通过这个canvas来绘制widget,CustomPaint会先调用painter绘制背景,然后再绘制child,最后调用foregroundPainter来绘制前景,CustomP
2022-06-13 14:03:03
1576
1
原创 iOS 组件化开发
组件化开发,就是将一个臃肿,复杂的单一工程的项目, 根据功能或者属性进行分解,拆分成为各个独立的功能模块或者组件 ; 然后根据项目和业务的需求,按照某种方式, 任意组织成一个拥有完整业务逻辑的工程。...
2022-06-13 11:43:46
357
原创 iOS App Extensions之Action Extension
iOS App Extensions之Action Extension创建Action Extension扩展无界面`No User Interface `内容配置`info.plist`分析扩展例子代码与Safari中的网页进行交互文件的分享实现有界面`Presents User Interface`内容配置`info.plist`分析ActionViewController自定义UI配置数据共享跳转到容器App不显示界面直接跳转到容器App创建Action Extension扩展在原有的项目里,添
2021-11-16 19:27:32
3342
原创 iOS App Extensions之Share Extension
iOS App Extensions之Share Extension创建Share Extension扩展配置Share Extension分析ShareViewController创建Share Extension扩展在原有的项目里,添加扩展target然后选择”iOS” -> “Application Extension” -> “Share Extension”,点击“Next”。如图:给扩展起个名字,这里填写了“ShareExtension”,确定你的目标Target,
2021-11-16 15:00:01
4370
原创 iOS App Extensions初识及工作原理
iOS App Extensions初识及工作原理概念创建和交付应用程序扩展工作原理应用扩展的生命周期应用扩展如何通信应用扩展可以与应用间接通信某些 API 对应用扩展不可用声明共享或操作扩展支持的数据类型常见场景数据共享方式一:NSUserDefaults方式二:NSFileManager方式三:CoreData提审AppStore的注意事项概念应用扩展可让您将自定义功能和内容扩展到您的应用之外,并在用户与其他应用或系统交互时提供给用户。您创建一个应用扩展来启用特定任务。例如,要让用户从 Web 浏
2021-11-11 19:52:15
3019
原创 iOS - KVC(Key-Value Coding)初识及实现机制
iOS - KVC(Key-Value Coding)初识及实现机制概念使用符合键值编码的对象KVC提供的API方法KVC 设值KVC 取值参考概念键值编码是一种由NSKeyValueCoding非正式协议启用的机制,对象采用该机制来提供对其属性的间接访问。当对象符合键值编码时,其属性可通过字符串参数通过简洁、统一的消息传递接口进行寻址。这种间接访问机制补充了实例变量及其相关访问器方法提供的直接访问。KVC在Objective-C中的定义:KVC的定义都是对NSObject的,扩展来实现的(Obj
2021-08-09 18:02:10
386
原创 iOS 核心动画(Core Animation)三:基础动画
核心动画(Core Animation)三:基础动画(CABasicAnimation) 简介CABasicAnimation与CAAnimation继承关系## CALayer 动画属性CABasicAnimation 属性列表CASpringAnimation 属性列表动画实例基础动画弹簧动画简介修改图层属性并提供基本的单关键帧动画功能的对象。CABasicAnimation与CAAnimation继承关系## CALayer 动画属性anchorPointbackgroundColor
2021-05-26 11:45:30
503
1
原创 iOS 核心动画(Core Animation)二:抽象超类
核心动画(Core Animation)二:抽象超类(CAAnimation)简介继承关系CAMediaTiming协议属性列表CAAnimation属性列表CAPropertyAnimation属性列表简介是一个抽象类, 遵循了CAMediaTiming协议和CAAction协议 我们不能直接使用CAAnimation类 而是使用其子类。继承关系CAMediaTiming协议属性列表beginTime指定接收者相对于其父对象的开始时间duration指定动画的基本持续时
2021-05-26 11:44:59
254
原创 iOS 核心动画(Core Animation)一:初识
核心动画(Core Animation)一:初识简介继承关系图层(CALayer)图层继承关系图层提供绘图和动画的基础图层(CALayer)与视图(View)之间的关系图层使用两种类型的坐标系坐标点(position)锚点(anchorPoint)在三个维度上操纵图层更改UIView使用的图层类使用图像作为图层的内容使用委托提供图层内容简介Core Animation是可在iOS和OS X上使用的图形渲染和动画基础结构,可用于为应用程序的视图和其他视觉元素制作动画。使用Core Animation,绘制
2021-05-26 11:43:54
524
原创 iOS widget小组件-Today Extension
Today Extension前言样图创建布局TodayViewControler`NCWidgetProviding`协议数据共享交互方式例子源码其他参考前言前段时间采用WidgetKit、SwiftUI写了哥支持iOS 14及以上的小组件,那么iOS 14 以下无法支持,Xcode的版本也是在12.2的版本,没办法创建Today Extension, 怎么办呢?重新下了支持Today Extension的扩展的Xcode 11。其实Today Extension在iOS 8的时候就已经出现了,在
2021-02-22 17:41:27
1556
原创 iOS 14-Widget小组件3—动态配置
Widget 动态配置认识与配置基本实现效果图创建及配置Intent Definition添加及配置Intent Handler 添加及配置例子源码其他问题参考认识与配置在这篇文章已经做了比较详细的介绍与创建配置iOS 14-Widget小组件1—初识基本实现上一篇文章已经做了比较详细的介绍与创建配置iOS 14-Widget小组件2—实现效果图创建及配置Intent Definition添加及配置如果你刚刚创建Widget。 File > New > Target在Appl
2021-01-22 20:43:50
4777
5
原创 iOS 14-Widget小组件2—实现
Widget 实现认识与配置实现效果图支持显示方式交互数据共享刷新认识与配置上一篇文章已经做了比较详细的介绍与创建配置iOS 14-Widget小组件初识(一)实现效果图支持显示方式@main 入口添加.supportedFamilies([.systemSmall,.systemMedium,.systemLarge]) 同时支持3种大小struct TestWidgetEntryView : View { @Environment(\.widgetFamily) var famil
2021-01-22 20:43:37
2260
1
OpenCV矩形检测及裁剪
2019-04-24
libstdc.zip
2019-10-11
iBeacon.zip
2021-01-04
WaterMarkDemo.zip
2019-08-24
个人搭建使用的Flutter基础框架
2025-11-04
Flutter 仿iOS桌面悬浮球效果
2024-08-30
iOS 各个技术模块大厂面试题
2022-06-09
iOS 自定义相机拍照视频录制
2024-01-25
Flutter 界面背景添加水印
2022-06-13
iOS基础+进阶+案例+数据库(视频教程)
2022-06-09
网页开发+HTML基础教程.pdf
2022-06-09
Flutter 官方开发文档PDF
2022-06-09
LHQQRCodeDemo.zip
2021-09-10
编译的opencv2附加opencv_contrib
2021-09-10
LHQ3DTouchDemo.zip
2021-01-14
iOS 第三方app原生系统的分享到自个的应用,怎么把自己的应用显示出来。
2021-06-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅