唐巧的iOS技术博客选摘
-
JokeClient-Swift:JokeClient-Swift是@YANGReal用swift写了一个开源的糗事百科的客户端,主要涉及网络请求,图片加载、缓存、自定义UITableViewCell、delegate以及closure,内容接口基于糗事百科API。
-
swift-2048:一个用Swift实现的2048游戏。
-
UIImageView-BetterFace-Swift:UIImageView-BetterFace-Swift是一个根据目标图象中头像的位置进行智能图片裁剪的开源库,该地址是其更新的Swift版本。
-
HackerNews:用Swift实现的HackerNews客户端。
-
LTMorphingLabel:用swift写的文字飘入飘出的效果。
-
Crashlytics-FPCustomHandler:这是一个为 Crashlytics 写的 category, 可以方便添加自己的崩溃处理函数。
-
ParseChat:ParseChat是基于Parse实现的一个实时的聊天室开源应用。
- Realm:Realm是一个真正为移动设备打造的数据库,同时支持Objective-C和Swfit。Realm宣称其相比Sqlite,在移动设备上有着更好的性能表现。
-
vpn-deploy-playbook:一个自动部署各种FQ服务的工具,包括IPSec,L2TP,PPTP,Cisco AnyConnect,SigmaVPN,APN,shadowsocks,OpenVPN,DNS,SPDY,用户管理等功能。
-
《iOS8-day-by-day》:这是一个学习iOS8的系列文章合集,一共有16篇文章。
-
《( ) –> ( )》:
() -> ()
不是什么表情符号,而是一种高度抽象的编程范式,它表示了一个函数式的编程思想,即值的变化过程。本文从swift语言入手分析,元组,函数,闭包等的设计对它进行解释,并阐释swift语言设计的大局观,最后分享一个Reactive Cocoa作者的Talk中的编程思想。
-
AsyncDisplayKit:AsyncDisplayKit是facebook开源的一个框架,它能让复杂的用户交互效果流畅地显示,facebook使用它开发完成了paper。Facebook也在 这篇文章 中,详细介绍了AsyncDisplayKit。
-
KZBootstrap:一个方便iOS工程初始化的项目,它包含一些推荐的工程设置和工具。
-
NewsFourApp:一个模仿网易4.0新UI框架的开源项目。
-
《Objective-C Runtime》:因为OC是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个OC运行框架的一块基石。本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。主要内容包括:与Runtime交互、Runtime术语、消息机制、动态方法解析、消息转发、壮的实例变量(Non Fragile ivars)、Objective-C Associated Objects。
-
-
《刨根问底Objective-C Runtime(1)- Self & Super》:本文通过分析clang重写的Objective-C源码,从而解释Objective-C中的self和super在编译器层面分别是如何处理的。
-
《刨根问底Objective-C Runtime(2)- Object & Class & Meta Class》:本文主要讲述objc runtime中关于Object & Class & Meta Class的细节。
-
《刨根问底Objective-C Runtime(3)- 消息 和 Category》:文章通过一道习题,利用分析Objective-C实现源代码,讲解了Objective-C的消息和Category的实现原理。
-
CBStoreHouseRefreshControl:一个效果很酷炫的下拉刷新控件。
-
ZLSwipeableView:ZLSwipeableView是一个方便做出卡片效果的UI库,支持各种卡片的滑动效果。
-
YTKNetwork:YTKNetwork 是基于 AFNetworking 封装的 iOS 网络库,提供了更高层次的网络访问抽象。相比 AFNetworking,YTKNetwork 提供了以下更高级的功能:按时间或版本号缓存网络请求内容、检查返回 JSON 内容的合法性、文件的断点续传、批量的网络请求发送、filter和插件机制等。
-
-
-
Objective-Chain:Objective-Chain是一个面向对象的响应式框架,作者表示该框架吸收了 ReactiveCocoa 的思想,并且想做得更面向对象一些。
《UIAlertController》:你知道 UIAlertView、UIActionSheet (以及它们各自的 delegate protocols) 在 iOS 8 中已经被废弃了吗?本文章的主题就是 UIAlertController,向大家展示如何替换旧的 alert,以及这些操作方法的高级扩展。 -
-
-
《读 Facebook App 头文件的一些收获》:最近在看一些 App 架构相关的文章,也看了 Facebook 分享的两个不同时期的架构(2013 和 2014),于是就想一窥 Facebook App 的头文件,看看会不会有更多的收获,确实有,还不少。作者分享了从头文件中获取到的一些信息。
-
《SizeClass 和AutoLayout教程3》:文章翻译自《iOS8 by tutorials》的第一章,以开发一个天气应用为例子,介绍了SizeClass 和AutoLayout相关知识。译者:@叶孤城___。
-
《SizeClasss和AutoLayout教程4》:文章翻译自《iOS8 by tutorials》的第一章,介绍了如何在不同的 SizeClass 给同一个label设定不同的字体大小和样式。译者:@叶孤城___。
-
《如何做出炫酷的卡片动画1》:作者介绍了有关卡片动画的研究和实现。
-
RTImageAssets:RTImageAssets 是一个 Xcode 插件,用来生成 @3x 的图片资源对应的 @2x 和 @1x 版本,只要拖拽高清图到 @3x 的位置上,然后按
Ctrl+Shift+A
即可自动生成两张低清的补全空位。当然,如果你对图片质量要求不高的话,你也可以从 @2x 的图生成 @3x 版本。 -
-
-
PQFCustomLoaders:PQFCustomLoaders 提供了高质量的、定制化的加载进度条
-
《Method Swizzling 和 AOP 实践》:利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题。这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧。这些技巧中最具争议的或许就是 Method Swizzling 。文本介绍了利用 Method Swizzling,结合 AOP 来做一些打 Log 的工作。利用 objective-C Runtime 特性和 Aspect Oriented Programming ,我们可以把琐碎事务的逻辑从主逻辑中分离出来,作为单独的模块。它是对面向对象编程模式的一个补充。
-
BreakOutToRefresh:BreakOutToRefresh 是一个有趣的项目,它利用 SpriteKit 在下拉刷新过程中做了一个打砖块游戏。
-
RAMAnimatedTabBarController:RAMAnimatedTabBarController 是一个让 TabBar 上的元素能够显示动画效果的开源库。
-
VVBlurPresentation:VVBlurPresentation是一个很简单易用的在原来view conntroller基础上做模糊,然后present新的view controller的小项目。作者是onevcat。
-
《Swift开源项目精选》:该作者将 2014 年 Swift 开源项目做了一个筛选和汇总。
- peertalk:peertalk 是一个支持 iOS 与 Mac 通过 USB 相互通讯的开源库。 Duet Display 基于此实现了将 Mac 界面呈现到 iOS 设备上。
-
KSHObjcUML:KSHObjcUML 是一个 Objective-C 类引用关系图的 Xcode 插件。作者是:@kimsungwhee。
-
《如何自己动手实现 KVO》:KVO 是 Objective-C 对观察者模式(Observer Pattern)的实现。也是 Cocoa Binding 的基础。当被观察对象的某个属性发生更改时,观察者对象会获得通知。本文探究了 KVO (Key-Value Observing) 实现机制,并去实践一番:利用 Runtime 自己动手去实现 KVO 。
-
《提升 UITableView 性能-复杂页面的优化》:随着 App 的用户界面的内容越来越丰富,再强的手机可能都无法同时渲染复杂的 UI 界面和保证流畅的体验。本文分享了一些提升 UITableView 性能的技巧。
-
《UIResponder》:在 UIKit 中,IApplication、UIView、UIViewController 这几个类都是直接继承自 UIResponder 类。另外 SpriteKit 中的 SKNode 也是继承自 UIResponder 类。因此 UIKit 中的视图、控件、视图控制器,以及我们自定义的视图及视图控制器都有响应事件的能力。本文详细介绍了一个 UIResponder 类提供的基本功能。
-
《实现一个 TODO 宏》:文章介绍了如何实现一个能产生编译器警告的 TODO 宏,用于在代码里做备忘。
- 《First Impressions using React Native》:作者介绍了他使用 Facebook 即将开源的 React Native 的感受。
-
iOS-Universal-Framework:iOS-Universal-Framework 是一个方便你将第三方 SDK 编译成 Framework 的开源工具。
-
《如何用纯代码构建一个 Widget(today extension)》:随着 iOS8 的发布,各种 iPhone 的新玩法出现了,其中最引人关注的就是 today extension(也叫做 widget)。网上有很多相关的文章教你如何编写一个简单的 widget,但是却没有一篇适合我们这种纯代码的拥趸。本文介绍了如何用纯代码的方式来构建一个 widget。
-
《iOS 图片加载速度极限优化—FastImageCache 解析》:FastImageCache 是 Path 团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动起来更顺畅,本文分析了它的实现方式。
-
BLKFlexibleHeightBar:BLKFlexibleHeightBar 是一个使导航栏高度可以动态变化的 UI 库。
-
《轻松学习 Objective-C 消息转发》:作者在文章中通过一个小例子来讲解什么是消息转发,以及如何消息转发,希望看完这篇文章时大家会彻底的明白 OC 的消息转发机制。
-
《React 入门实例教程》:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。本文是阮一峰原创的入门教程。
-
《React Native 通信机制详解》:React Native 是 facebook 刚开源的框架,可以用 javascript 直接开发原生 APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得学习,本文介绍了它最基础的 JavaScript-ObjectC 通信机制。
-
《为 GCD 队列绑定 NSObject 类型上下文数据-利用 __bridge_retained(transfer) 转移内存管理权》:本文介绍了如何合理运用
__bridge_retained(transfer)
关键字转换对象的内存管理权,让我们自己控制对象的生命周期。 -
《Don’t React》:本文作者从多方面分享了他对于 React 框架的负面看法。通过此文,大家可以更加客观地了解 React 这个框架。
-
Lister:Lister 是苹果提供的官方 Demo。包含了 iOS、Mac 和 Apple Watch 版本,并且为这个 demo 分别用 Objective-C 和 Swift 实现了一遍,最后还包括了 30 页的文档。
-
HackerNews-React-Native:HackerNews-React-Native 是用 React Native 完成的 HackerNews 客户端。
-
RMPZoomTransitionAnimator:RMPZoomTransitionAnimator 是一个放大缩小的动效开源库,可以实现图片的放大缩小效果。
-
MMTweenAnimation:MMTweenAnimation 是一个基于 POP 的扩展,提供了 10 种自定义的动效。
-
Kingfisher:Kingfisher 是一个用于图片缓存的开源库,类似 SDWebImage,但是完全基于 Swift 语言开发。
-
《Increasing Performance by Reducing Dynamic Dispatch》:来自苹果官方博客的文章,介绍了通过减少动态分发,来提高 Swift 程序的执行效率的办法。具体做法上,文章分享了使用
final
关键字,使用private
关键字,以及使用Whole Module Optimization
编译参数来进行深度优化。