17次阅读  |  4天以前  |  阅读全文 »
43次阅读  |  8天以前  |  阅读全文 »
53次阅读  |  14天以前  |  阅读全文 »

iOS 隐形水印之 LSB 实现

在音视频的领域里,其涵盖的知识点繁多,学习方向也很多。而本篇就是一篇比较入门的文章它简单地介绍如何在 iOS 上读取图片 RGB 数据,并通过修改最后一位 bit 来记录数字水印的信息下面就介绍《隐形水印之 iOS 实现》

78次阅读  |  23天以前  |  阅读全文 »

声明式 UIKit 在有赞美业的实践

随着 Flutter 的出现,UI 开发形式也越来越趋向相同,Flutter,SwiftUI,RN,Weex 等新兴UI框架无一意外都使用了声明式的 UI 开发模式,和支持了FlexBox的布局系统。

77次阅读  |  23天以前  |  阅读全文 »

iOS 架构谈:剖析 Uber 的 RIB 架构

加入 UBER 是我的 iOS 工程师职业的新篇章,所有这一切都始于称为 RIB 的新架构。该架构背后的主要思想是,应用程序应由业务逻辑而不是视图驱动。展示 RIB 的最佳方法是一棵树:每个 RIB 都是一个节点,并且它可以不包含子节点,也可以包括一个或多个子节点。

81次阅读  |  24天以前  |  阅读全文 »

如何调试支付宝(iOS)

最近在做的一件事情,从代码层面分析下各家小程序(微信、头条、支付宝、百度)的启动性能,探究各家小程序的实现细节和差异。

127次阅读  |  25天以前  |  阅读全文 »

iOS GPUImage源码解读(一)

最近在不断学习、使用的过程中,有了更深刻的理解,特来写一篇源码解读的文章详细介绍下核心代码的具体实现。至于括号里的“一”,主要是觉得GPUImage还有很多值得深入学习和分享的内容,后续的学习和使用过程中有新的心得体会还会继续给大家分享。

99次阅读  |  28天以前  |  阅读全文 »
125次阅读  |  28天以前  |  阅读全文 »

iOS开发之Masonry框架源码解析

Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是对Masonry框架的源码进行解析,让你明白Masonry是如何对NSLayoutConstraint进行封装的,以及Masonry框架中的各个部分所扮演的角色是什么样的。在Masonry框架中,仔细的品味干货还是很多的。Masonry框架是Objective-C版本的,如果你的项目是Swift语言的,那么就得使用SnapKit布局框架了。SnapKit其实就是Masonry的Swift版本,两者虽然实现语言不同,但是实现思路大体一致。

101次阅读  |  28天以前  |  阅读全文 »
92次阅读  |  28天以前  |  阅读全文 »
104次阅读  |  1月以前  |  阅读全文 »
121次阅读  |  1月以前  |  阅读全文 »

iOS 验证码输入一种实现思路

如图所示,现在很多App采用了类似下划线、方块等方式的验证码输入,直观美观!对于这种效果的实现方式,大概有以下几种方式:

112次阅读  |  1月以前  |  阅读全文 »
109次阅读  |  1月以前  |  阅读全文 »
118次阅读  |  1月以前  |  阅读全文 »
143次阅读  |  1月以前  |  阅读全文 »
111次阅读  |  1月以前  |  阅读全文 »
104次阅读  |  1月以前  |  阅读全文 »
57次阅读  |  1月以前  |  阅读全文 »
122次阅读  |  2月以前  |  阅读全文 »
182次阅读  |  2月以前  |  阅读全文 »
119次阅读  |  2月以前  |  阅读全文 »
217次阅读  |  2月以前  |  阅读全文 »
211次阅读  |  2月以前  |  阅读全文 »
426次阅读  |  2月以前  |  阅读全文 »
209次阅读  |  2月以前  |  阅读全文 »

iOS开发最佳实践

Getting on board with iOS can be intimidating. Neither Swift nor Objective-C are widely used elsewhere, the platform has its own names for almost everything, and it's a bumpy road for your code to actually make it onto a physical device. This living document is here to help you, whether you're taking your first steps in Cocoaland or you're curious about doing things "the right way". Everything below is just suggestions, so if you have a good reason to do something differently, by all means go for it!

457次阅读  |  2月以前  |  阅读全文 »
208次阅读  |  3月以前  |  阅读全文 »

将iPhone设置为“水墨屏”的方法!

如果你习惯在夜晚刷手机,看微信公众号文章或阅读小说,但感觉 iPhone 屏幕过于亮眼,即使调整到最低亮度也不行,还可以利用“色彩滤镜”功能让 iPhone 变成“Kindle 水墨屏”。

218次阅读  |  3月以前  |  阅读全文 »

一个不规范的 Category 写法导致的“血案”

项目前后两个版本,线上监控显示整体启动时间缩短了近 300ms,而且包体积也变小了 5M(提交到 App Store 的ipa包)。但是新版本没有大的需求插入,只是 bugfix 版本,启动阶段的代码也没有相关改动。为何会引起包体积和启动时间的变化呢?

119次阅读  |  3月以前  |  阅读全文 »

源码浅析 SDWebImage 5.5.2

本文基于 SDWebImage 5.5.2。重读的原因也是由于发现它的 API 在不断迭代,许多结构已经不同与早期版本,同时也是为了做一个记录。阅读顺序也会依据 API 执行顺序进行,不会太拘泥于细节,更多是了解整个框架是如何运行的。

182次阅读  |  3月以前  |  阅读全文 »
390次阅读  |  3月以前  |  阅读全文 »
354次阅读  |  4月以前  |  阅读全文 »
435次阅读  |  4月以前  |  阅读全文 »
384次阅读  |  4月以前  |  阅读全文 »
346次阅读  |  4月以前  |  阅读全文 »
297次阅读  |  4月以前  |  阅读全文 »

你的 App 在 iOS 13 上被卡死了吗?

自从58同城iOS客户端9.0.0版本上线以来,陆续接到反馈说App有时启动会超时,无法响应,然后被系统杀死,只有重启手机才能恢复。得知存在App无法启动的问题后,我们马上展开了调查。通过对触发此问题的设备进行测试,发现此问题所影响的不仅仅是58同城App的启动,另有如京东、大众点评、腾讯视频等其他App也无法正常打开。

952次阅读  |  6月以前  |  阅读全文 »

iOS开发60分钟入门

本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发iOS App,学习目标包括:能使用Xcode IDE、模拟器;能修改、调试已有iOS App;能在已有应用内创建新模块;能创建新应用;能发布应用到App Store

588次阅读  |  8月以前  |  阅读全文 »

快速配置 Sign In with Apple

在 WWDC19 大会上,苹果公司推出了一项有意思的内容,即 “Sign In with Apple”。这项由苹果提供的认证服务,可以让开发者允许用户使用 Apple Id 来登录他们的应用程序。

2380次阅读  |  11月以前  |  阅读全文 »

iOS 流量监控分析

在每一个 HTTP 请求开始时,URL 加载系统创建一个合适的 NSURLProtocol 对象处理对应的 URL 请求,而我们需要做的就是写一个继承自 NSURLProtocol 的类,并通过 - registerClass: 方法注册我们的协议类,然后 URL 加载系统就会在请求发出时使用我们创建的协议对象对该请求进行处理。

892次阅读  |  11月以前  |  阅读全文 »
975次阅读  |  11月以前  |  阅读全文 »

WWDC 2019 :优秀的开发习惯

成功的APP开发需要掌握方方面面的东西。了解可纳入开发流程的实践以提高你的生产力,提升你APP的性能和稳定性。学习如何提高通过Xcode编写的代码质量。获得一些有价值的开发技术的切实理解。

832次阅读  |  1年以前  |  阅读全文 »

使用 GPUImage 实现一个简单相机

本文介绍了如何使用 GPUImage 来实现一个简单的相机。具体功能包括拍照、录制视频、多段视频合成、实时美颜、自定义滤镜实现等。

1522次阅读  |  1年以前  |  阅读全文 »

大型 SDK 组件化拆分的一些思考

笔者的任务在初期是比较简单和明确的,要求对于某些模块能够可选集成,使用cocoaPod的时候,是否集成某个模块,不能改动一句代码,有点像友盟的社会组件集成方式,但是比那个应该要复杂一些,后面会细说原因。

850次阅读  |  1年以前  |  阅读全文 »

Objective-C Runtime

Runtime 是 Objective-C 区别于 C 语言这样的静态语言的一个非常重要的特性。对于 C 语言,函数的调用会在编译期就已经决定好,在编译完成后直接顺序执行。但是 OC 是一门动态语言,函数调用变成了消息发送,在编译期不能知道要调用哪个函数。所以 Runtime 无非就是去解决如何在运行时期找到调用方法这样的问题。

793次阅读  |  1年以前  |  阅读全文 »

Runloop 循环

Runloop 是和线程紧密相关的一个基础组件,是很多线程有关功能的幕后功臣。尽管在平常使用中几乎不太会直接用到,理解 Runloop 有利于我们更加深入地理解 iOS 的多线程模型。

819次阅读  |  1年以前  |  阅读全文 »

Object-C的消息机制

在C++或Java里,类与类的行为方法之间的关系非常紧密,一个方法必定属于一个类,且于编译时就已经绑定在一起,所以你不可能调用一个类里没有的方法。而在Objective-C中就比较简单了,类和消息之间是松耦合的,方法调用只是向某个类发送一个消息,该类可以在运行时再确定怎么处理接受到的消息。

846次阅读  |  1年以前  |  阅读全文 »

Objective-C概要介绍

在 Objective-C 以及其他很多动态语言当中,自省是一种用于判断对象是哪个类型的对象,以及这个对象能处理哪个消息的方法,特别是当你得到的对象是id类型时,自省更显得尤其有用。

783次阅读  |  1年以前  |  阅读全文 »

最多阅读

快速配置 Sign In with Apple 11月以前  |  2380次阅读
给数组NSMutableArray排序 1年以前  |  2101次阅读
开篇 关于iOS越狱开发 1年以前  |  1951次阅读
UITableViewCell高亮效果实现 1年以前  |  1937次阅读
在越狱的iPhone设置上使用lldb调试 1年以前  |  1931次阅读
APP适配iOS11 1年以前  |  1847次阅读