DEVELOPMENT NOTES · 2015–2017
问题记下来,思路留下来。
从界面动画到音视频,把 128 篇旧笔记按主题重新整理。原始发布日期、文章地址和技术代码保留,方便沿着一个问题继续找下去。
这些文章记录的是当时的开发环境;本次整理未重新运行验证示例。每篇文章单独标明署名、出处和需要留意的版本信息。
先选一个主题
UIKit 与图形动画
布局、列表、手势、富文本,以及 UIView、Core Animation 与图形绘制。
进入主题 02 15 篇Swift 与运行时
Swift 语言实践、Objective-C 消息机制、KVO、Block 与代码组织。
进入主题 03 7 篇并发与性能
多线程、RunLoop、线程保活、界面卡顿与性能排查。
进入主题 04 24 篇数据与网络
Core Data、缓存、网络请求、即时通讯、推送与系统服务接入。
进入主题 05 20 篇工程工具与发布
CocoaPods、Git、静态库、Xcode、测试、适配与应用发布记录。
进入主题 06 5 篇音视频开发
FFmpeg 编译、H.264 解码、音视频采集、推流与播放器集成。
进入主题 07 9 篇Web 与开发随笔
WebView、JavaScript 交互、小程序、博客维护、源码整理与开发随笔。
进入主题全部文章
128 篇 · 按主题归档UIKit 与图形动画
导读与完整目录-
iOS 两行代码实现自定义转场动画
介绍 WTKTransitionAnimate 的调用方式,通过导航代理和工厂方法选择转场,再结合拖动手势与百分比进度控制实现交互式返回动画,说明封装内部的组织思路。
-
iOS开发之UITextField的那点事
针对文本输入长度、数字和金额限制、中文联想及键盘遮挡等问题,利用分类与运行时组织可扩展的输入规则,再通过键盘通知调整界面位置。
-
iOS开发之按钮动画
承接 Core Animation 基础,用 CALayer、CABasicAnimation 与动画组实现按钮的渐变和形变,说明图层属性、时间设置以及多个动画配合时的组织方式。
-
iOS开发之百度外卖APP个人中心头像<浪>起来的动画效果
拆解个人中心头像周围的波浪效果,利用 CADisplayLink 驱动刷新、三角函数生成曲线,再交给 CAShapeLayer 绘制,说明连续波形动画所需的组成部分。
-
iOS游戏开发没有你想的那么难--Hardest
介绍用 Objective-C 与 UIKit 实现 Hardest 小游戏的整体结构,覆盖关卡选择、游戏状态、分数结算、音效和存档,并说明专用游戏引擎与此示例的适用差别。
-
iOS开发之复杂动画之抽丝剥茧(Objective-C & Swift)
将一个欢迎页复杂动画拆成圆形缩放、椭圆挤压、边缘凸起、旋转和波浪填充等阶段,逐步安排图层与路径变化,展示如何把视觉效果转换为可实现的动画步骤。
-
iOS动画CoreAnimation浅谈
围绕 CALayer、CAAnimation 与 CAAction 介绍 Core Animation,解释图层和动画对象的关系、时间控制与动作查找,再通过示例理解隐式和显式动画的组织方式。
-
分分钟解决iOS开发中App启动广告的功能
封装启动广告视图,支持全屏或底部保留标志的两种布局,通过 SDWebImage 获取广告图片,再用透明度动画与 block 回调处理显示、点击和关闭等事件。
-
iOS开发之动画篇-碎片动画
通过 UIView 的 maskView 解释遮罩如何影响内容显示,再把遮罩拆分成多个区域并分别安排动画,逐步构建碎片化展示与图片轮播过渡效果。
-
iOS开发之超链接富文本
利用 Core Text 绘制属性字符串,在预留的文字位置插入图片并实现超链接交互,再比较 TextKit 的处理方式,串起聊天表情与富文本排版所需的基本流程。
-
iOS开发之如何制作番茄钟App
围绕番茄钟应用串起定时、通知提醒、音乐播放和 Today Widget,并整理卡片布局、转场、xib 与 URL Scheme 等实现入口,适合结合工程了解功能如何组合。
-
iOS开发动画篇之layout动画深入
通过登录页的账号列表展开与按钮收缩,演示调整顶部、高度和左右边距约束后触发布局动画,进一步说明视图层级与约束变化如何配合形成连续过渡。
-
Swift之实现类似于格瓦拉启动页中的放大转场动画
从普通导航 push 过渡到圆形放大转场,利用 CALayer 遮罩控制页面显露范围,再加入手势驱动动画;正文以 Swift 展开,并提供 Objective-C 示例参照。
-
iOS开发仿微信(WeChat)系列(七)
拆解聊天输入栏与消息单元格,用 block 将发送和显隐事件交给控制器,再根据消息归属配置头像、拉伸气泡背景,并在模型中计算尺寸以适配不同长度的消息。
-
学习Swift你应该懂点Core Graphics (长篇高能)
从获取绘图上下文和建立路径开始,以 Swift 演示矩形、圆、曲线、文字和图片绘制,再扩展线性与径向渐变、混合模式、坐标变换以及位图和 PDF 输出。
-
iOS开发之Layout动画初体验
从横竖屏下的文本布局说明约束的作用,再拆解随列表滚动变化的界面动画,通过调整约束值控制元素位置和尺寸,演示 Auto Layout 与动画结合的基本过程。
-
Github源码推荐:(02.22):高仿小日子Swift2.0,高仿爱鲜蜂Swift2.0
选编 Swift 2.0 实现的小日子和爱鲜蜂两个仿制项目,提供 SmallDay、LoveFreshBeen 仓库及作者介绍入口,便于结合完整工程观察页面组织与界面实现。
-
iOS开发Swift自定义下拉刷新如此简单
使用 xib 创建文字视图覆盖 UIRefreshControl 的默认样式,分阶段旋转、变色和缩放文字,再模拟数据加载与插入,串起自定义下拉刷新从开始到结束的流程。
-
iOS开发自定义转场动画实战讲解
从转场中 from、to 与 presenting 的角色区别出发,逐步实现自定义模态和导航转场,再扩展交互式动画与转场协调器,解释复用动画逻辑的组织方式。
-
iOS开发动画篇之Transform和KeyFrame动画
通过季节文字变化和落叶动画说明仿射变换与关键帧动画,逐步组合缩放、平移和旋转,讨论形变参数及动画阶段安排对最终运动轨迹的影响。
-
Swift2.0之CoreText排版神器(续)
在 Core Text 基础排版之上,分析基线、上升部和下降部等字体度量,逐行绘制统一中文与 emoji 的行高,再扩展链接与提及识别等富文本交互。
-
iOS开发仿微信(WeChat)系列(三)
继续完成仿微信主界面,记录从 xib 暴露约束并按屏幕调整 constant、微调导航栏按钮位置,以及使用 SDWebImage 占位图加载图片的具体做法。
-
Swift2.0之CoreText排版神器(长篇高能)
从富文本属性设置进入 Core Text,介绍字体、颜色与文本范围,再结合底层排版和绘制步骤实现图文混排,帮助理解复杂文本界面所需的基本对象。
-
iOS开发仿微信(WeChat)系列(二)
搭建仿微信的通讯录、发现和个人页面,复用分组 UITableView 与自定义个人信息 Cell,并用排序和分组数据组织联系人列表,展示多个页面的初始界面结构。
-
iOS开发仿微信(WeChat)系列(-)
仿微信系列的开篇先整理工程与 MVC 文件夹,建立公共控制器,再创建各功能页和 UITabBarController,重点说明后续页面共享的导航骨架如何搭建。
-
Cell特效之图片随着TableView的滑动上下移动
根据单元格中心与父视图中心的偏移调整图片位置,使图片随 UITableView 滚动形成视差,并记录自定义 Cell 与可见项更新方式,附改编代码和原项目链接。
-
iOS开发动画篇之从UIView动画说起
以输入框进入和按钮出现的登录动画为例,介绍 UIView 可动画属性、时间与选项参数,再加入弹簧动画,帮助理解位置、透明度与形变如何组合成连续效果。
-
iOS开发之视觉差动画效果详解
把视差效果拆成多层视图的位置关系,通过拖动中间层、补偿文字层偏移和裁剪越界内容,让文字相对底层保持不动,解释遮挡与位移如何共同形成视觉差。
-
iOS开发之CollectionViewFlowLayout实现LOL皮肤选择动画
通过自定义 UICollectionViewFlowLayout 实现英雄皮肤卡片选择效果,说明如何调整布局属性和滚动停止位置,再将布局子类接入列表以完成居中切换动画。
-
iOS开发仿简书、淘宝等等App的View弹出效果
将仿简书和淘宝的弹出效果拆成内容、遮罩与弹出层,结合两阶段图层形变和收起动画实现背景后退的视觉感受,并说明视图添加到 window 的层级关系。
-
iOS开发仿美国国家地理App的一个炫酷的动画
拆解仿国家地理应用的弹出页面动画,逐项处理状态栏隐藏、视图拖动与回弹、导航栏衔接和返回按钮变色,展示多层界面联动效果的实现过程。
-
iOS实现自定义炫酷的弹出视图(popView)
介绍 HWPopTool 自定义弹出视图的接入,通过配置内容视图、背景遮罩和关闭按钮控制展示效果,并说明关闭回调由代理改为 block 后的使用方式。
-
iOS开发之事件传递响应链
从 UIResponder、UIEvent 与 UITouch 说明触摸事件如何交给视图处理,结合多个自定义视图观察响应链和手势的关系,并讨论事件传递机制在界面中的应用。
-
仿window阿里旺旺登陆界面,打印机吐纸动画效果
模仿 Windows 阿里旺旺的打印机吐纸登录动画,通过保持视图横向位置与宽度不变、逐步调整高度实现展开效果,并提供 LBPrinterPaper 示例工程。
-
Github源码推荐:(12.25):手势解锁,个人SDK集成,无限循环图片轮播
选编手势解锁、个人中心与无限图片轮播三个开源项目,列出下载入口和部分集成代码,便于按界面需求了解对应组件及其使用方式。
-
Mac OS开发系列之NSImageView
以 macOS 图片视图为例,展示 NSImageView 的创建、图片赋值及添加到界面的过程,再通过启用图层、设置圆角与边框完成圆形头像样式。
-
Bison教你1分钟集成3D无限翻转的Banner
通过左右滑动手势切换广告图片,并结合转场动画实现三维翻转轮播,介绍组件导入与点击代理。原文同时指出该效果使用私有动画接口,保留为技术实验。
-
iOS9新特性之实现3D Touch就是So easy(更新Swift版)
围绕 iOS 9 的主屏快捷操作,说明在 Info.plist 中配置图标、标题与类型,再由 AppDelegate 分发点击事件,并给出 Objective-C 与 Swift 两种写法。
-
Swift纯代码走进UICollectionView
从数据源和代理配置开始,用 Swift 创建 UICollectionView,逐步实现单元格、网络数据加载与可复用头视图,串起一个纯代码列表界面的完整结构。
-
Swift超炫的个人界面依旧如此简单
展示 Swift 版本个人中心组件的接入方式,说明如何导入 LBSwift_PersonalPage 并通过继承复用界面,配合示例代码理解页面封装与调用关系。
-
iOS开发之1分钟做出超炫的个人界面
介绍 LBPersonalPage_VC 个人中心界面的集成方法,通过导入文件、继承基础控制器并补充配置来复用页面效果,同时提供对应示例供查看具体实现。
-
Swift初探之纯代码写tabBar
用早期 Swift 代码构建仿折800的标签栏,演示创建多个子控制器、配置标题与图标并加入系统 TabBar 的过程,适合对照理解纯代码组织导航结构。
-
iOS开发禁止使用系统自带手势滑动返回功能
针对嵌入游戏左滑时意外露出导航栏和标签栏的问题,展示如何控制导航控制器自带的滑动返回手势,记录局部界面禁用系统交互的代码位置。
-
iOS开发动画之绕View旋转的View
为视图围绕图片中心运动的需求给出实现思路,利用三角函数计算圆周上的位置并更新视图坐标,展示不依赖复杂动画框架的环绕运动代码。
-
iOS开发如何实现长微博的功能
把长文字转为图片来实现长微博展示,代码围绕文本宽度、字号、所需高度与图像绘制展开,适合了解固定宽度下生成长图的早期 UIKit 做法。
-
iOS使用Google地图Api创建的地图显示标注及轨迹回放
记录为 iOS 与 Android 统一地图效果而接入 Google Maps 的过程,给出地图初始化、标注与轨迹线的主要代码,并说明申请地图 API Key 的配置入口。
-
iOS开发类似折800功能中的一个小Demo
以仿折800的滚动交互为例,记录拖动开始时的 contentOffset,并在滚动回调中比较偏移量来判断方向,附示例工程供对照查看界面的联动效果。
-
iOS开发自动计算tabview中label的高度
通过字体、限制宽度与文本测量计算标签所需高度,再在 UITableView 行高回调中增加留白,展示手动处理多行文字与列表单元格高度的代码思路。
Swift 与运行时
导读与完整目录-
iOS开发之位运算
从按位与、或、异或和取反讲起,以 RGBA 颜色打包及状态标志为例展示位运算用途,再说明如何用枚举与掩码保存和查询多个状态。
-
iOS开发之均衡代码职责浅谈
围绕 MVC 中控制器过于庞大的问题,用项目示例讨论视图、模型和控制器的职责分配,提取重复逻辑并调整功能归属,强调在更换架构名称之前先理清代码责任。
-
Swift3.0学习系列之Swift实战-单例模式
介绍 Swift 单例的用途与代价,通过类内静态常量和全局常量两种形式创建共享实例,说明私有构造器、跨模块访问,以及共享可变状态仍需考虑线程安全。
-
Swift3.0学习系列之Swift实战-享元模式
以共享本地数据管理对象为例介绍享元模式,使用字典复用已加载的数据并记录使用次数,在无人使用时保存和释放,讨论它与始终保留单例对象的差别。
-
iOS开发之协议代理
以 UITableView 和自定义控件为例区分协议与委托,比较 delegate 和 block 回调的使用场景,再讨论数据源与协议抽象如何帮助对象之间减少耦合。
-
菜鸟进化史之RunTime实战字典转模型
从逐项赋值、KVC 和第三方模型库的使用经历出发,编写 NSObject 分类遍历运行时信息,把字典映射为模型,并说明示例对两层嵌套数据的处理范围。
-
iOS开发之去model化开发
面对字段不同但展示相近的多种票券数据,使用字典承载数据并通过协议暴露统一展示属性,让 Cell 与控制器减少对具体模型类型的依赖,讨论数据转换职责的放置。
-
iOS开发Swift实战之模板模式
以商品数据和计算逻辑为例,分析代码对元组结构的依赖,再用类型与协议组织可复用的处理方式,讨论如何通过抽象减少参数形式和业务方法之间的耦合。
-
iOS开发之从源代码看OC的消息机制runtime
从 unrecognized selector 错误切入 Objective-C 消息机制,结合源码讨论方法查找、缓存与消息转发,再通过运行时相关示例理解方法调用如何在执行阶段完成。
-
runtime实战之一键改变字体
从注册自定义字体和查找字体名称开始,利用 Objective-C 运行时方法处理界面字体替换,并讨论代码创建控件与 storyboard 控件在统一设置时的差别。
-
iOS开发之学习block深入浅出
从 block 的声明和调用方式讲起,讨论捕获外部变量与回调封装,再通过模仿 Swift 高阶函数的例子展示 block 在 Objective-C 数据处理中的用法。
-
iOS开发之重构笔记-Extra Method
结合《重构》的提炼函数方法,把冗长代码按意图拆成独立函数,逐步处理参数、局部变量和返回值,并用实际示例讨论如何降低重复逻辑和提升可读性。
-
详解Swift中的七个陷阱以及避免方法
通过具体代码讨论 Swift 协议扩展、可选链赋值和函数式处理中的易错行为,比较值类型与引用类型的分派差异,并总结如何避免编译通过却不符合预期的结果。
-
iOS开发黑魔法KVO的奥秘
以监听列表滚动偏移为入口介绍 KVO,分析观察者注册后动态子类与 isa 指针的变化,并借助运行时函数尝试实现相似机制,串起使用方式和底层原理。
-
黑魔法runtime基础之属性与变量
区分 Objective-C 属性与成员变量,结合运行时结构、地址偏移和 synthesize 分析属性的生成方式,再通过示例说明动态检查与操作对象结构的用途。
并发与性能
导读与完整目录-
iOS开发优化篇之卡顿检测
通过监控主线程 RunLoop 状态和等待超时检测卡顿,并介绍获取线程栈帧、遍历调用栈与符号化的过程,说明如何在应用运行期间留下可排查的上下文。
-
iOS开发深入研究Runloop与线程保活
结合 AFNetworking 2.x 的网络线程分析 RunLoop 保活方式,说明照搬循环运行代码可能造成的对象持有与线程退出问题,再用示例验证更可控的生命周期处理。
-
Swift之优化UITableViewCell高度计算
围绕 UITableView 重复计算单元格高度的问题,结合 FDTemplateLayoutCell 的思路介绍模板测量与高度缓存,并用 Swift 封装接口来减少滚动过程中的重复工作。
-
iOS开发之UIKit性能调优实战讲解
以列表界面为实验对象,结合 Instruments 的 Core Animation 工具观察图层混合、图片尺寸、颜色格式和离屏渲染,解释常见滚动性能问题与针对性的调整思路。
-
Bison眼中的iOS开发多线程是这样的(三)
围绕 GCD 的任务与队列展开,比较主队列、全局队列、自建串行和并发队列,并用图片下载、重复执行和一次性初始化示例说明常见任务提交方式。
-
Bison眼中的iOS开发多线程是这样的(二)
围绕共享数据被多个线程访问的情形,介绍 synchronized 同步代码块和 NSLock 的加解锁方式,再用 NSCondition 的等待、唤醒与广播解释线程之间的协调。
-
Bison眼中的iOS开发多线程是这样的(一)
从进程与线程的区别引入 iOS 多线程,比较 NSThread、NSOperationQueue 与 GCD,再具体演示线程创建、执行、终止和优先级,结合日志观察调度现象。
数据与网络
导读与完整目录-
iOS开发之DNS劫持
从域名解析异常引出 DNS 劫持问题,介绍通过 NSURLProtocol 调整请求和解析流程,并讨论 IPv6、WebKit 与 NSURLSession 的适配边界,保留相关实现与参考资料。
-
iOS即时通讯进阶之CocoaAsyncSocket源码解析(Connect终)
继续追踪 CocoaAsyncSocket 的连接过程,从本机地址绑定走向连接建立与后续回调,结合底层 Socket 操作解释异步连接的执行顺序及相关配置的作用。
-
iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇)
沿 GCDAsyncSocket 初始化与连接入口阅读 CocoaAsyncSocket 源码,依次梳理参数检查、本机与服务端地址创建、Socket 配置等连接前准备工作,配合注释说明调用关系。
-
iOS开发之iOS10推送必看(高阶2)
介绍 Notification Service Extension 在通知展示前处理内容的流程,说明创建扩展目标、修改文字和加载附件的方式,以及处理超时后回退原始通知的行为。
-
iOS开发之iOS10推送必看(高阶1)
通过创建本地通知说明 UNNotificationRequest、触发器和通知中心的关系,利用 identifier 管理添加、更新和删除,并介绍附件所需的有效文件路径与配置。
-
iOS开发之iOS10推送必看(基础篇)
从现有工程开启推送能力与检查环境配置入手,介绍 iOS 10 通知注册、中心代理和回调处理,再结合第三方推送解释旧代码迁移时需要关注的接口变化。
-
iOS开发之封装一个自动归、解档的类
从 NSCoding 的归档与解档入手,利用运行时遍历对象成员变量并组织编码,逐步封装 WZXArchiver,讨论包含子对象时的处理方式及自动化存储的限制。
-
iOS开发之Swift初体验PhotoKit
以照片多选组件介绍 PhotoKit 的基本使用,说明最大选择数量、PHAsset 数组回传和闭包调用方式,并提供相册项目及学习资料,记录从 AssetsLibrary 迁移的尝试。
-
谈谈MVVM和链式网络请求架构
从控制器业务代码膨胀出发,用登录判断展示 Model、ViewModel 与 ViewController 的职责拆分,再介绍 ReactiveCocoa 和链式网络请求封装如何组织业务调用。
-
iOS开发之AES+Base64数据混合加密与解密
分别为 NSData 和 NSString 编写分类,展示 AES 加解密与 Base64 编码组合的调用流程,并强调客户端和后台需要约定一致的密钥,附完整演示项目。
-
一步一步带你封装一个Swift本地缓存库
先区分 Documents、Caches、Preferences 与临时目录,再封装按类型保存对象、图片和语音的本地文件缓存,结合离线浏览场景说明目录管理和缓存读写思路。
-
iOS开发仿微信(WeChat)系列(六)
记录仿微信聊天功能接入后的三个问题:同步键盘动画参数、处理应用进出后台时的观察者,以及保存登录状态。文章展示当时的处理代码并注明自动登录示例的简化范围。
-
史上最全远程推送详解之极光推送
按 App ID、推送能力与证书申请顺序准备远程通知,再接入极光推送 SDK,说明开发和生产配置、证书导出及客户端回调代码,记录早期推送接入流程。
-
iOS开发仿微信(WeChat)系列(五)
继续仿微信的个人资料与朋友圈界面,使用 AVUser 简化注册登录、AVFile 上传头像,并通过压缩图片减少传输量,同时记录下拉头图与刷新组件的实现问题。
-
iOS开发仿微信(WeChat)系列(四)
仿微信项目开始接入云端存储与即时通信依赖,封装登录和注册方法,并记录查询用户数据时的排错过程。正文包含早期密码字段试验,适合作为历史开发记录。
-
也许你根本不需要Alamofire,何不尝试下NSURLSession?
从最简单的数据请求开始介绍 NSURLSession,区分数据、下载和上传任务,并比较默认、临时与后台配置,说明缓存、Cookie 和网络任务组织之间的关系。
-
iOS开发之详解连连支付集成
整理连连支付 SDK 接入时的链接参数、资源样式和业务字段,说明用户编号、绑卡协议与服务端回调的含义,并记录签名、界面定制等容易混淆的配置点。
-
详解持久化Core Data框架的原理以及使用
从托管对象、上下文和持久化协调器的关系讲起,手动搭建 Core Data 环境与实体模型,再通过新增、查询、修改和删除示例说明数据保存的主要流程。
-
Github源码推荐:(01.04):iOS开发蓝牙,启动动画,自定义Tabbar
选编 BabyBluetooth 蓝牙框架、CLClipImageView 启动动画和 CYLTabBarController 标签栏,提供项目入口及部分用法,并区分蓝牙中心与外设两种工作模式。
-
iOS开发之OCR光学识别储蓄卡以及信用卡
围绕扫描卡号的需求介绍 card.io SDK 的导入、链接参数、代理设置和识别回调,并给出 Objective-C 与 Swift 示例;正文说明此次选用的是信用卡识别方案。
-
Swift2.0后Alamofire的使用方法
展示 Swift 2.0 环境下手动导入 Alamofire、配置项目依赖并发起网络请求的步骤,配合截图说明工程链接位置,适合回顾早期框架接入和调用方式。
-
Bison教你3分钟集成支付宝好友分享
按应用注册、SDK 导入、URL Scheme 配置与回调处理介绍支付宝好友分享,区分文本、图片和网页消息的数据对象,并记录安装检测及鉴权失败的排查点。
-
一点一滴慢慢的揭开XMPP的神秘面纱
记录 XMPP 聊天接入的初步流程,包括导入依赖、使用用户信息连接 Openfire、处理注册与登录验证,以及消息收发相关回调,提供客户端集成代码。
-
iOS开发获取通讯录并发短信给联系人
围绕邀请好友的需求,介绍读取手机联系人并调起短信发送的简单封装,列出 AddressBook、AddressBookUI 与 MessageUI 依赖,并提供 LBContacts 示例工程。
工程工具与发布
导读与完整目录-
iOS开发之自动化测试的那些干货
比较单元测试和 UI 自动化的用途,介绍 XCTest、Quick、Nimble、KIF 与 Appium,讨论等待、Stub/Mock、命令行运行和可测试代码结构,帮助组织可维护的测试。
-
iOS开发之Xcode8兼容适配iOS 10资料整理笔记
汇总 Xcode 8 与 iOS 10 迁移中的通知、ATS、隐私权限和界面变化,记录日志、字体、列表性能、插件及 xib 警告等问题,并附相应官方资料入口。
-
Xcode8开发iOS10推送通知过程
记录在 Xcode 8 为现有应用接入 iOS 10 通知扩展的过程,集中讨论推送能力、签名、Swift 版本和架构设置,以及 Service、Content 扩展的调试与提交问题。
-
iOS10新特性之SiriKit
介绍 WWDC 2016 后的 SiriKit 接入,从创建 Intents Extension 到实现意图处理和事件界面,说明语音请求如何被解析并交给应用扩展提供相应内容。
-
iOS开发之诱导用户为自己的App评论
介绍 LBToAppStore 评价提醒封装,使用应用版本、间隔天数与用户上次选择控制弹窗时机,再根据选择跳转到商店或推迟提醒,展示早期评价入口的实现思路。
-
iOS开发之Xcode测试苹果官方文档翻译(下)
接续 Apple 测试文档译文,介绍代码覆盖率、命令行测试、Xcode Server 持续集成和 UI 测试录制,并讨论可测试代码的组织及从 OCUnit 迁移到 XCTest。
-
iOS开发之Xcode测试苹果官方文档翻译(上)
翻译早期 Apple 测试文档,介绍 XCTest 的工程配置、测试类与方法、生命周期以及性能和界面测试,结合测试导航器说明如何运行用例和查看结果。
-
提交代码到CocoaPods看我就够了
记录将开源库发布到 CocoaPods 的步骤,包括准备 GitHub 工程、注册 trunk、编写 podspec、核对版本与标签、执行校验和提交,并解释常用配置字段。
-
SwiftGG交流分享Xcode开发使用技巧
整理一次 SwiftGG 交流中的 Xcode 使用技巧,介绍异常、符号和测试失败断点,演示调试时查看或修改变量、使用 Quick Look,以及创建可复用代码片段。
-
Xcode版本更新插件失灵批量解决法
针对旧版 Xcode 更新后插件无法加载,以及误选 Skip Bundles 的情况,介绍检查兼容 UUID、修改插件 Info.plist 和重置加载选择的历史处理步骤。
-
Apple Pay强势来袭,开发者应做的事情
记录 Apple Pay 的早期工程配置,包括开启能力、创建 Merchant ID 和设置支付请求属性,并列出国家与货币代码等疑问;演示效果来自原文注明的模拟器。
-
Biosn收集的Git常见的错误解决方式
汇总使用 Git 时遇到的索引锁和 push 默认行为警告,列出报错画面及当时采用的配置命令。适合按错误类型回顾排查过程,执行前需确认现场状态。
-
Bison教你1分钟集成百度移动SSP启动广告
记录百度移动 SSP 开屏广告的历史接入过程,从平台注册和 SDK 导入,到系统依赖、编译参数与启动代理回调,展示在应用启动阶段加载广告的主要步骤。
-
iOS开发之多国语言国际化经验浅谈
总结多语言项目中翻译文件整理、按钮文字长度、语言地区代码和本地化图片命名的实际问题,重点记录 iOS 9 语言标识变化对中文判断逻辑的影响。
-
iOS开发之检测设备锁屏
针对嵌入游戏在锁屏时出现异常的场景,记录监听 SpringBoard 锁屏通知的代码与回调处理。文章保留当时的排障思路,接口使用条件需要单独核实。
-
【iOS开发】打包静态库.a文件
记录在 Xcode 中分别构建设备和模拟器静态库,再用 lipo 查看架构并合并 .a 文件的流程,解释为何测试时需要匹配目标平台及如何检查生成结果。
-
iOS开发内购全套图文教程
按协议填写、内购商品创建、沙盒账号配置与客户端代码展开,展示 StoreKit 商品请求、支付队列、交易状态处理及收据验证的早期完整接入过程。
-
【iOS开发】iOS被拒解决方案--持续更新
汇集应用审核中遇到的崩溃、后台模式、第三方登录、内购和用户内容等问题,并附当时的处理记录。内容反映旧审核条款与具体案例,可用于回顾问题类型。
-
iOS开发CocoaPods安装及使用
从安装 Ruby 与 CocoaPods 开始,说明如何搜索依赖、编写 Podfile、执行安装并使用生成的工作区,还记录头文件补全的处理方法,适合理解早期 iOS 依赖管理流程。
-
iOS开发第三方登录没安装对应的APP时,图标禁止点击且颜色变灰
以 QQ 和微信登录按钮为例,检测设备是否安装对应应用,再决定隐藏按钮或禁用点击并置灰,记录当时第三方登录入口随安装状态调整的界面处理方式。
音视频开发
导读与完整目录-
FFmpeg-iOS获取摄像头麦克风
先使用 FFmpeg 的设备输入能力列出摄像头和麦克风,再给出 iOS 原生摄像头采集的实现示例,对照展示媒体设备枚举与系统采集会话的基本配置过程。
-
FFmpeg-iOS推流器的简单封装
在前两篇 FFmpeg 基础上搭建本地 nginx 推流测试环境,给出服务器配置与客户端推流封装,再使用 VLC 打开流地址检查结果,串起编码数据发送与播放验证。
-
FFmpeg-iOS的H.264解码
从导入 FFmpeg-iOS 与配置头文件搜索路径开始,梳理打开媒体、查找视频流、初始化解码器、读取数据包和释放资源的 H.264 解码流程,并提供封装示例。
-
Mac编译ffmpeg获取FFmpeg-iOS
记录在 Mac 上准备 gas-preprocessor 与 yasm,再运行 FFmpeg-iOS 构建脚本的流程,说明脚本位置、依赖安装和最终生成目录,为后续解码示例准备库文件。
-
iOS开发之集成ijkplayer视频直播
按照下载源码、初始化依赖、编译 FFmpeg、打包 IJKMediaFramework 与工程集成的顺序,记录 iOS 接入 ijkplayer 的过程,重点解释各目录和构建步骤的作用。
Web 与开发随笔
导读与完整目录-
微信小程序开发教程-从零开始(3)
为小程序文章列表接入网络请求,读取返回数据并通过 setData 更新页面,再调整 WXML 的字段绑定;同时记录图片地址和 H5 详情展示在当时遇到的限制。
-
微信小程序开发教程-从零开始(2)
在文章列表基础上新增详情页,使用 navigator 配置跳转与参数,再调整 WXSS 中的留白、图片位置和文字布局,逐步把列表样式整理为预期的页面效果。
-
微信小程序开发教程-从零开始(1)
以 iOS 开发者的视角搭建 IT Blog 小程序,说明 app.json、app.js、WXML 和 WXSS 的分工,配置 TabBar 并使用模板和列表渲染展示文章数据。
-
React Native在Mac上部署iOS开发环境
记录 Mac 上的 React Native 环境搭建,安装 Homebrew、Node.js、watchman 与 flow 后创建项目,再打开 iOS 工程并在模拟器中刷新代码。
-
iOS开发之javaScript交互(JS调用原生的方法)
比较早期 UIWebView 拦截链接的交互方式与 JavaScriptCore,围绕 JSContext 说明原生执行 JavaScript、注册方法和互相传递数据的基本过程。
-
菜鸟程序员2015年年终总结
回顾作者在 2015 年的求职、项目开发与自学经历,记录建立技术博客、学习 Swift、发布开源界面组件和结识同行的过程,呈现早期开发成长的个人背景。
-
Bison教你怎么让百度收录你的Github空间博客
记录将 GitHub Pages 博客同步到 GitCafe Pages 的历史做法,涵盖 SourceTree 克隆、分支提交、域名绑定与分地区解析,旨在改善当时的国内访问和收录情况。
-
技术博客不仅仅只是一个网站,还可以这样玩........
记录把个人技术博客包装成 iOS 应用的尝试,通过 UIWebView 展示首页和分类页并处理加载回调,同时保留搜索和交互卡顿等当时尚未解决的问题。
-
UIWebView的使用与总结
整理 UIWebView 加载网页与原生应用混合布局的常用设置,包括透明背景、缩放适配、电话识别和 JavaScript 交互,并讨论跨平台布局与通信成本。
没有找到匹配文章
试试一个较短的词,或去掉版本号。也可以清空搜索,继续按主题浏览。