[置顶] 博客iOS部分目录-方便快速查找

前言 在这里,你或许能找到你想要的关于IOS问题的答案。 所有的链接都是我自己写的文章,这个目录每个月更新一次(我每个月正常情况下更新15篇)2D绘图 iOS 2D绘图详解(Quartz 2D)之概述 iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形) iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip,subpa...
阅读(3457) 评论(1)

实现60fps的网易云音乐首页

前言网易云音乐是一款很优秀的音乐软件,我也是它的忠实用户。最近在研究如何更好的开发TableView,接着我写了一个Model驱动的小框架 - MDTable。为了去验证框架的可用性,我选择了网易云音乐的首页来作为Demo,语言是Swift 3。本文的内容包括: 实现网易云音乐首页的思路 如何建立一个轻量级的UITableViewController(不到100行) 性能瓶颈原因以分析及如何优化到接...
阅读(23) 评论(0)

理解网络分层与数据加密

网络分层网络的基础分层是OSI的七层架构: OSI的全称是Open System Interconnection(开放系统互联模型),是由国际标准化组织ISO设计,解决不同体系结构网络互相连接的问题。 实际应用中,五层架构是最常见的,也是最容易理解的:网络分层后,每一层都工作着不同的协议和实际的物理设备,下一层为上一层提供服务,上层的实现无需考虑下层的细节,相同层级之间进行相互通信。物理层...
阅读(74) 评论(0)

优雅的开发TableView

前言UITableView(UITableViewController)是iOS开发使用频率最高的一个组件。不管是使用UITableView还是还是UITableViewController,在开发的时候,我们都需要实现两个协议: UITableViewControllerDataSource UITableViewControllerDelegate 这两个协议的代码不是写在Controller里...
阅读(384) 评论(2)

MVVM与Controller瘦身实践

前言MVC是一个做iOS开发都知道的设计模式,也是Apple官方推荐的设计模式。实际上,Cocoa Touch就是按照MVC来设计的。这里,我们先不讲MVC是什么,我们先来谈谈软件设计的一些原则或者说理念。在开发App的时候,我们的基本目标有以下几点: 可靠性 - App的功能能够正常使用 健壮性 - 在用户非正常使用的时候,app也能够正常反应,不要崩溃 效率性 - 启动时间,耗电,流量,界面反应...
阅读(3153) 评论(2)

Alamofire的设计之道

前言:Alamofire是一个由Swift编写的优雅的网络开发框架。大部分用Swift编写的iOS App的网络模块都是基于Alamofire的。作为Swift社区最活跃的几个项目之一,有许多开发者在不断的对其进行完善,所以学习这种优秀的开源代码对深入理解Swift的特性很有帮助。...
阅读(3161) 评论(3)

消息转发机制与Aspects源码解析

前言最近在搞重构相关的事情,遇到了不少这样的场景: 进入一个界面,在viewWillAppear:的时候做相应判断,如果满足条件则执行对应代码。 这类业务有一个特点,业务内容是对应整个App的,与对应的ViewController毛关系都没有,但是却不得不耦合到(即使是调用代码可以精简到一行)ViewController中。我们都知道,这种类似的业务用AOP(面向切片编程)来做十分适合,所谓面向...
阅读(1568) 评论(0)

Objective C block背后的黑魔法

前言block在Objective C开发中应用非常广泛,我们知道block会捕获外部对象,也知道使用block要防止循环引用。那么block这套机制在Objective C中是如何实现的呢?本文通过从C/C++到汇编层面分析block的实现原理。Clangclang是XCode的编译器前端,编译器前端负责语法分析,语义分析,生成中间代码(intermediate representation )。...
阅读(3428) 评论(2)

深入理解Objective C的ARC机制

从Runtime源码和汇编的角度深入挖掘ARC的本质...
阅读(1609) 评论(1)

iOS 10越狱和Reveal 8分析三方App UI框架教程

前言这是一篇写给开发者的博客,如果碰巧非开发者搜到了这篇博客,那么博客的内容可能不适合你。其实网上Reveal的教程很多,但是很多都是停留在Reveal 1或者Reveal 2时代的博客,不太适合最新版本的Reveal 7,所以还是决定写这样一篇文章。本文最终的效果:淘宝首页: 可以看到,淘宝首页其实就是一个巨大的CollectionView 京东首页: 可以看到,京东首页其实就是一个巨大的Tabl...
阅读(2689) 评论(2)

详解Swift中的错误处理

前言任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃。良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性。本文的Swift版本:Swift 3Objective C返回nil如果出错了,就返回空是Objective C中的一种常见的处理方式。因为在Objective C中,向nil发送消息是安全的。比如:- (instancetype)init { self = [...
阅读(2117) 评论(0)

iOS自动化测试的那些干货

前言 如果有测试大佬发现内容不对,欢迎指正,我会及时修改。 大多数的iOS App(没有持续集成)迭代流程是这样的也就是说,测试是发布之前的最后一道关卡。如果bug不能在测试中发现,那么bug 就会抵达用户,所以测试的完整性和可靠性十分重要。目前,大多数App还停留在人工测试阶段,人工测试投入的成本最低,能够保证核心功能的使用,而且测试人员不需要会写代码。但是,在很多测试场景下,人工测试的效率...
阅读(5188) 评论(1)

优雅的开发Swift和Objective C混编的Framework

前言为什么要写这样一篇文章,因为昨天和一个朋友讨论到Swift和Objective C如何混合开发Framework,中途发现了很多有意思的坑。用Swift封住哪个OC的库是一件比较常见的事情,毕竟对于大多数公司来说,老的代码都是用OC写的,而且经过多次迭代,这些OC的代码已经被验证了是稳定的,用Swift重写代价太大。这就引入了一个需求: 用Swift和OC来混编一个Framework。 如果你之...
阅读(4800) 评论(7)

iOS开发中常用的那些工具

工欲善其事,必先利其器。 列表 XCode 无须多说 Instruments 性能分析工具:卡顿,内存,网络,数据存储等等 xcodebuild and xcrun 命令行工具用来脚本打包和测试 synx 把XCode工程中的Group自动映射到实际的文件夹 oclint 静态分析Objetive C代码,发现隐藏问题 xctool 基于xcodebuild的扩展,更方便的使用命令行测试 Char...
阅读(998) 评论(0)

React Native开发之快速入门React

前言这篇文章,是接着之前的一篇入门文章写的(虽然已经过去大半年了),本文的受众仍然是React小白,熟悉React的同学可以不看了。上一篇文章链接: 为React Native开发写的JS和React入门知识 上一篇文章主要介绍了JS的语言基础和React的component生命周期。本文会接着上一篇文章,继续讲解React的基础。本文的React Native版本是0.0.40,开发IDE是Ato...
阅读(1289) 评论(1)

GCD精讲(Swift 3)

前言我们首先来看一张图:我觉得这张动图很好的诠释了《把一个线程用到死的》核心价值观。很多程序都有一个主线程。对于iOS/MacOS开发来说,这个线程就是UI线程,在这个线程上会做一些用户交互/渲染相关的事情。把过多的任务放在主线程,会导致主线程卡顿,进而用户看到的就是App响应慢,列表滚动的时候掉帧。把任务分散到多个线程执行有很多种技术,在iOS/MacOS App开发中,最简单直观的就是GCD(又...
阅读(3412) 评论(2)
282条 共19页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:944287次
    • 积分:12447
    • 等级:
    • 排名:第1089名
    • 原创:282篇
    • 转载:0篇
    • 译文:0篇
    • 评论:194条
    博客专栏