iOS 监控 – DNS 劫持
DNS 劫持指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的 IP 地址或者什么都不做使请求失去响应。
JavaScript深入系列15篇正式完结!
写在前面 JavaScript 深入系列共计 15 篇已经正式完结,这是一个旨在帮助大家,其实也是帮助自己捋顺 JavaScript 底层知识的系列。重点讲解了如原型、作用域、执行上下文、变量对象、this、闭包、按值传递、call、apply、bind、new、继承等 JS …
2017 中国 Swift 开发者大会源文件
Resource files for atswift conference 2017, including pdf, source projects or playgrounds. 2017 中国 Swift 开发者大会源文件,包括 pdf 和源工程文件 http://atswift.io
面试时,你被问到过 TCP/IP 协议吗?
前言: 精通 TCP/IP,熟练使用 Socket 进行网路编程。 看到这句话,有没有感到很熟悉呀?相信很多人在投递简历的时候都看到过这条要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这些东西不屑一顾. 但是笔者认为想要做出更好的 APP,那么对这些基础知识必须要…
iOS 视频边下边播 — 缓存播放数据流
实现下载视频数据并实时给播放器填充数据
《Objective-C 高级编程》干货三部曲(一):引用计数篇
总结了Effective Objective-C之后,还想读一本进阶的iOS书,毫不犹豫选中了《Objective-C 高级编程》。 这本书有三个章节,我针对每一章节进行总结并加上适当的扩展分享给大家。可以从下面这张图来看一下这三篇的整体结构: 《Objective-C高级编程…
关于内存泄漏,还有哪些是你不知道的?
内存泄漏问题一直是项目开发中的一大问题,本文力求帮助从事过一段时间工作的 iOS 开发者快速寻找 App 中的内存泄漏问题。
iOS 之键值编码(KVC)与键值监听(KVO)
KVC 简介 我们知道可以通过 setter、getter 方法来设置和修改对象的属性,也知道如何通过简化的点语法来设置、修改对象的属性。实际上,Objective-C 还支持一种更灵活的操作方式,这种方式允许以字符串形式间接操作对象的属性,这种方式的全称是 Key Value Codi…
iOS 开发 – GCD 封装
很久以前,手机的性能取决于处理器的处理速度。在经过很长的一段时间发展之后,单个处理器的处理效率几乎达到了极限。这时候多核处理器就诞生了,使得手机有了同时执行多个任务的能力。在单核时代,使用多线程技术更多时候是为了避免耗时操作堵塞了主线程。而在多核时代,多线程技术才真正完成了提升执行效率的工作。
SDWebImage 源码阅读笔记
对 SDWebImage 框架源码的研读
Objective-C 的 hook 方案
Objective-C 的 hook 方案
史上最全的 iOS 各种设备信息获取总结
个人对于获取 iOS 设备信息的总结,附 Github demo
iOS App 签名的原理
iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原理和流程。
ReactNative 与 iOS 的混编
ReactNative 与 iOS 的混编详解
关于 iOS 证书,你必须了解的知识
从事 iOS 开发几年,越来越发现,对 iOS 应用开发到发布过程中必不可少的一环,证书签名相关部分,却只是一知半解。本文从 iOS 证书体系的基本构成模块 入手,一步步解释各模块的内容与注意项。
sourcetree 冲突解决 (sourcetree 使用进阶与字幕滚动)
sourcetree 冲突解决
回馈!轻量 iOS crash 保护方案
利用 runtime 进行 kvo、ui fresh、unrecognized selector 的 crash 处理
iOS 开发 – 多线程陷阱
随着手机硬件的升级,多线程技术在应用开发中的地位可以说足以媲美 UITableView 了。然而,多线程技术在提供我们生产力的同时,也不可避免的带来了陷阱,正如著名计算机学者所言:能力越大,bug 越大
布局编码的未来
美团出品的 iOS 客户端布局
扯淡:大白话聊聊编译那点事儿
作为程序员的我们,每天写各种语言的各种代码,点一下 IDE 环境里的 run,或者用一行命令一跑,一个程序就运行起来了。我们写好的那一行行代码,其实就是最普通的文本字符串,这些个文本字符串是怎么变成一个个漂亮的界面,一个个大数据量吞吐的服务器,一个个聪明的人工智能 AI 算法的?这里面其实经历了三个过程, 编译, 链接, 装载 (脚本语言会特殊一些,本文后面也会提及)
聊聊 objc 中的 runtime
Runtime
移动端监控体系之技术原理剖析
在这样一个注重用户体验的时代,APM 技术快速发展,国内更是百花齐放,最近对各个公司的 APM 产品有一个调研,并在此基础上进行了自己的实践。这里就从 iOS 的角度出发,谈谈自己对移动端 APM 的技术上的理解,并提供相对应的实例。
基于MVVM,用于快速搭建设置页,个人信息页的框架
更新记录: 2017.4.23:新增支持数据源完全依赖网络请求的情况。 2017.4.22:新增支持请求新数据后刷新表格。 2017.4.21: 新增CocoaPods支持:pod ‘SJStaticTableView’, ‘~> 1.2.0’。 写一个小小轮子~ 写UITab…
UIButton 的 imageEdgeInsets 和 titleEdgeInsets 的使用
如何将 UIButton 的图片和文字设置到自己想要的位置 – imageEdgeInsets 和 titleEdgeInsets 的使用
iOS开发符号表(dSYM)知识总结
iOS开发时经常需要接触符号表的概念,本文主要分享符号表相关知识,包括什么是符号表,符号表的作用,符号表的产生过程,如何查找符号表文件,如何查找符号表文件的uuid。
iOS 逆向工程 —OS 工具(Theos)
iOS 逆向工具 Theos 的安装和使用
PINCache 源码分析(一) 前置
简单剖析 PINCache 整体结构
闲谈 iOS 的动态化
国内外的区别
可能是最全的iOS端HttpDns集成方案 | 掘金技术征文
科普片 1、DNS劫持的危害 不知道大家有没有发现这样一个现象,在打开一些网页的时候会弹出一些与所浏览网页不相关的内容比如这样奇(se)怪(qing)的东西图一或者这样图二,其实造成这样的原因就是DNS劫持,在我们正常浏览的网页链接里面被恶意插入一些奇怪的东西。不止是这些,DN…
iOS 大型项目解耦方案有难度?BeeHive 设计优化来帮助
在 2017 年在线技术峰会——阿里开源项目最佳实践上,来自天猫的戴鹏带来了 BeeHive 关于 iOS 大型项目解耦方案的分享。他从多人开发的问题介绍了业界的三种模块方案,将传统 Init 与 BeeHive Module 进行了比较,对 BeeHive 的架构进行了分析,并对 Module Manager 和 Module 的实现进行了详细介绍。
iOS HOOK 注入与重签名
起因是在虾神的公众号上看到一篇文章 《Pokemon Go 锁区破解》,正好周围几个小伙伴正在玩这游戏,便仔细研究了下所谓的破解锁区。这次锁区其实是 GPS 锁区,游戏开发商为了缩小初始运营范围,在中国范围内都无法正常游戏,也就是服务端通过客户端发送的定位位置数据来判断是否让该…
如何优雅地使用 KVO
KVO 作为 iOS 中一种强大并且有效的机制,为 iOS 开发者们提供了很多的便利;我们可以使用 KVO 来检测对象属性的变化、快速做出响应,这能够为我们在开发强交互、响应式应用以及实现视图和模型的双向绑定时提供大量的帮助。 但是在大多数情况下,除非遇到不用 KVO 无法解决…
使用 LLDB 调试 APP
LLDB 全称 [Low Level Debugger], 默认内置于 Xcode 中的动态调试工具。标准的 LLDB 提供了一组广泛的命令,旨在与熟悉的 GDB 命令兼容。 除了使用标准配置外,还可以很容易地自定义 LLDB 以满足实际需要。
iOS 开源库系列 Aspects核心源码分析
简介 Aspects是一个面向切面编程的库。如果想深入了解iOS Runtime中的消息发送机制,Aspects的源码是值得分析的。 项目主页Aspects 整体分析 阅读Aspects的源码需要以下知识作为基础 Objective-C Runtime 理解OC的消息分发机制 …
C – 指针概述
你还记得 C 语言的指针吗?进阶的前提是坚固的基础。
iOS 设计模式总结
iOS 设计模式相关资料整理 随着写代码时间变长,业务逻辑越来越复杂,项目就会变的越来越臃肿,业务的拓展、Bug Fix 将会越来越难进展。接着进行的就是重构工作,对重构而已,那设计模式、架构、当前的业务情况、将来可能遇到的需求 将是下一步的思考。本文将从设计模式、架构、实践三个方面梳理 iOS 架构设计。
AsyncDisplayKit介绍(一)原理和思路
UITableView/UICollectionView的优化一直是iOS应用性能优化重要的一块。即使是iOS10+iPhone7这样的最新软硬件配置,在系统的信息app中滚动,仔细观察的话仍然能感到一定的掉帧现象。对于UI要求苛刻的苹果竟然在如此简单的tableView上无法…