唐巧的iOS技术博客选摘

1. 那些被遗漏的objective-c保留字:http://blog.devtang.com/blog/2013/04/29/the-missing-objc-keywords/
 
2. 使用crashlytics来保存应用崩溃信息:http://blog.devtang.com/blog/2013/07/24/use-crashlytics/
 
3. iOS开发工具篇,AppStore统计工具:http://blog.devtang.com/blog/2013/06/16/ios-dev-tool-app-store-tool/
 
 
5. objective-c对象模型以及应用:http://blog.devtang.com/blog/2013/10/15/objective-c-object-model/
 
6. (一)使用多Target来构建大量相似app:http://blog.devtang.com/blog/2013/10/17/the-tech-detail-of-ape-client-1/
 
7. 使用Flurry来统计和分析用户行为:http://blog.devtang.com/blog/2013/11/14/use-flurry-to-analyse-data/
 
8. WechatPayDemo是一个非官方的微信支付Demo:https://github.com/gbammc/WechatPayDemo
 
 
 
 
12. SDWebImage的缓存机制:
 
 
14. 
 
初始化阶段 —— load 和 initializehttp://www.cnblogs.com/biosli/p/NSObject_inherit.html
 
 
 
 
 
 
 
 
 
 
 
25. 
  1. Viewfinder:移动支付公司 Square 将去年收购的照片应用 Viewfinder 开源了,包含服务端、iOS 和 Android 应用代码。这里有该项目的介绍。
 
26, 
  1. Eggscellent开源:Eggscellent是Mac上的开源的番茄钟应用。
27. 
  1. PNChart:作者周楷雯Kevin发布了PNChart 0.5版本,提供了一个更漂亮的Pie Chart界面。
28。 
  1. 文本编辑器Atom开源:GitHub将其开发的文本编辑器Atom开源。
(可用于《阅读》的参考)
 
29. 
  1. FlappySwift:FlappySwift用swift重写的一个开源Flappy Bird游戏。
 
 
  1. JokeClient-Swift:JokeClient-Swift是@YANGReal用swift写了一个开源的糗事百科的客户端,主要涉及网络请求,图片加载、缓存、自定义UITableViewCell、delegate以及closure,内容接口基于糗事百科API。
 
 
  1. swift-2048:一个用Swift实现的2048游戏。
 
 
  1. UIImageView-BetterFace-Swift:UIImageView-BetterFace-Swift是一个根据目标图象中头像的位置进行智能图片裁剪的开源库,该地址是其更新的Swift版本。
 
  1. HackerNews:用Swift实现的HackerNews客户端。
 
  1. LTMorphingLabel:用swift写的文字飘入飘出的效果。
 
 
 
  1. Crashlytics-FPCustomHandler:这是一个为 Crashlytics 写的 category, 可以方便添加自己的崩溃处理函数。
 
 
 
  1. ParseChat:ParseChat是基于Parse实现的一个实时的聊天室开源应用。
 
 
  1. Realm:Realm是一个真正为移动设备打造的数据库,同时支持Objective-C和Swfit。Realm宣称其相比Sqlite,在移动设备上有着更好的性能表现。
 
 
 
  1. vpn-deploy-playbook:一个自动部署各种FQ服务的工具,包括IPSec,L2TP,PPTP,Cisco AnyConnect,SigmaVPN,APN,*,OpenVPN,DNS,SPDY,用户管理等功能。
 
 
iReSign:一个可以把ipa用企业证书重新签名的开源项目
 
 
  1. 《iOS8-day-by-day》:这是一个学习iOS8的系列文章合集,一共有16篇文章。

  2. 《objc非主流代码技巧》:看开源代码时,总会看到一些大神级别的代码,给人眼前一亮的感觉,多数都是被淡忘的C语言语法,作者在文章中总结了objc写码中遇到的各类非主流代码技巧和一些妙用。
 
 
https://github.com/ShinobiControls/iOS8-day-by-day,初步学习iOS。。。。。
 
 
 
 
 
 
https://github.com/shu223/iOS8-Sampler,iOS 8 sample。。。
 
https://github.com/miklselsoe/MSSPopMasonry:Use Masonry with the Facebook Pop animation framework.
 
 
 
 
  1. 《( ) –> ( )》() -> ()不是什么表情符号,而是一种高度抽象的编程范式,它表示了一个函数式的编程思想,即值的变化过程。本文从swift语言入手分析,元组,函数,闭包等的设计对它进行解释,并阐释swift语言设计的大局观,最后分享一个Reactive Cocoa作者的Talk中的编程思想。
  1. 《如何用Swift做一个不错的按钮变换动画》:文章介绍了如何用Swift语言,采用Core Graphics来完成两个按钮之间的切换动画效果(效果图如下所示)。作者也将相关的代码开源在了这里
 
  1. 《为什么唱吧iOS 6.0选择了Mantle》:唱吧6.0一个很重大的修改就是基于Mantle重建(新建)了Model层。文章分享了使用Mantle的决策及执行过程。
 
  1. AsyncDisplayKit:AsyncDisplayKit是facebook开源的一个框架,它能让复杂的用户交互效果流畅地显示,facebook使用它开发完成了paper。Facebook也在 这篇文章 中,详细介绍了AsyncDisplayKit。
 
  1. KZBootstrap:一个方便iOS工程初始化的项目,它包含一些推荐的工程设置和工具。

  2. NewsFourApp:一个模仿网易4.0新UI框架的开源项目。

  1. 《Objective-C Runtime》:因为OC是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个OC运行框架的一块基石。本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。主要内容包括:与Runtime交互、Runtime术语、消息机制、动态方法解析、消息转发、壮的实例变量(Non Fragile ivars)、Objective-C Associated Objects。
  2.  
  3. 《刨根问底Objective-C Runtime(1)- Self & Super》:本文通过分析clang重写的Objective-C源码,从而解释Objective-C中的self和super在编译器层面分别是如何处理的。

  4. 《刨根问底Objective-C Runtime(2)- Object & Class & Meta Class》:本文主要讲述objc runtime中关于Object & Class & Meta Class的细节。
  1. 《刨根问底Objective-C Runtime(3)- 消息 和 Category》:文章通过一道习题,利用分析Objective-C实现源代码,讲解了Objective-C的消息和Category的实现原理。

  2. 《刨根问底Objective-C Runtime(4)- 成员变量与属性》:本篇笔记主要是讲述Objective-C Runtime的成员变量和属性。
  1. CBStoreHouseRefreshControl:一个效果很酷炫的下拉刷新控件。

  2. ZLSwipeableView:ZLSwipeableView是一个方便做出卡片效果的UI库,支持各种卡片的滑动效果。
  3. YTKNetwork:YTKNetwork 是基于 AFNetworking 封装的 iOS 网络库,提供了更高层次的网络访问抽象。相比 AFNetworking,YTKNetwork 提供了以下更高级的功能:按时间或版本号缓存网络请求内容、检查返回 JSON 内容的合法性、文件的断点续传、批量的网络请求发送、filter和插件机制等。
  4.  
    1. Objective-Chain:Objective-Chain是一个面向对象的响应式框架,作者表示该框架吸收了 ReactiveCocoa 的思想,并且想做得更面向对象一些。

    《UIAlert​Controller》:你知道 UIAlertView、UIActionSheet (以及它们各自的 delegate protocols) 在 iOS 8 中已经被废弃了吗?本文章的主题就是 UIAlertController,向大家展示如何替换旧的 alert,以及这些操作方法的高级扩展。
  5.  
  6. 《读 Facebook App 头文件的一些收获》:最近在看一些 App 架构相关的文章,也看了 Facebook 分享的两个不同时期的架构(2013 和 2014),于是就想一窥 Facebook App 的头文件,看看会不会有更多的收获,确实有,还不少。作者分享了从头文件中获取到的一些信息。
  1. 《SizeClass 和AutoLayout教程3》:文章翻译自《iOS8 by tutorials》的第一章,以开发一个天气应用为例子,介绍了SizeClass 和AutoLayout相关知识。译者:@叶孤城___

  2. 《SizeClasss和AutoLayout教程4》:文章翻译自《iOS8 by tutorials》的第一章,介绍了如何在不同的 SizeClass 给同一个label设定不同的字体大小和样式。译者:@叶孤城___

  3. 《如何做出炫酷的卡片动画1》:作者介绍了有关卡片动画的研究和实现。

 
 
 
  1. RTImageAssets:RTImageAssets 是一个 Xcode 插件,用来生成 @3x 的图片资源对应的 @2x 和 @1x 版本,只要拖拽高清图到 @3x 的位置上,然后按 Ctrl+Shift+A 即可自动生成两张低清的补全空位。当然,如果你对图片质量要求不高的话,你也可以从 @2x 的图生成 @3x 版本。
  2.  
  3.  
  4. PQFCustomLoaders:PQFCustomLoaders 提供了高质量的、定制化的加载进度条
 
  1. 《Method Swizzling 和 AOP 实践》:利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题。这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧。这些技巧中最具争议的或许就是 Method Swizzling 。文本介绍了利用 Method Swizzling,结合 AOP 来做一些打 Log 的工作。利用 objective-C Runtime 特性和 Aspect Oriented Programming ,我们可以把琐碎事务的逻辑从主逻辑中分离出来,作为单独的模块。它是对面向对象编程模式的一个补充。
 
  1. BreakOutToRefresh:BreakOutToRefresh 是一个有趣的项目,它利用 SpriteKit 在下拉刷新过程中做了一个打砖块游戏。
  1. RAMAnimatedTabBarController:RAMAnimatedTabBarController 是一个让 TabBar 上的元素能够显示动画效果的开源库。
  1. VVBlurPresentation:VVBlurPresentation是一个很简单易用的在原来view conntroller基础上做模糊,然后present新的view controller的小项目。作者是onevcat

  2. 《Swift开源项目精选》:该作者将 2014 年 Swift 开源项目做了一个筛选和汇总。
  1. peertalk:peertalk 是一个支持 iOS 与 Mac 通过 USB 相互通讯的开源库。 Duet Display 基于此实现了将 Mac 界面呈现到 iOS 设备上。
 
  1. KSHObjcUML:KSHObjcUML 是一个 Objective-C 类引用关系图的 Xcode 插件。作者是:@kimsungwhee
 
  1. 《如何自己动手实现 KVO》:KVO 是 Objective-C 对观察者模式(Observer Pattern)的实现。也是 Cocoa Binding 的基础。当被观察对象的某个属性发生更改时,观察者对象会获得通知。本文探究了 KVO (Key-Value Observing) 实现机制,并去实践一番:利用 Runtime 自己动手去实现 KVO 。
 
  1. 《QQ 中未读气泡拖拽消失的实现分析》:QQ 中针对强迫症有个很棒的交互,对于那些暂时不想理会的未读信息气泡,可以直接手指拖拽去掉。本文介绍了其实现方法。
 
 
  1. 《提升 UITableView 性能-复杂页面的优化》:随着 App 的用户界面的内容越来越丰富,再强的手机可能都无法同时渲染复杂的 UI 界面和保证流畅的体验。本文分享了一些提升 UITableView 性能的技巧。
 
 
  1. 《UIResponder》:在 UIKit 中,IApplication、UIView、UIViewController 这几个类都是直接继承自 UIResponder 类。另外 SpriteKit 中的 SKNode 也是继承自 UIResponder 类。因此 UIKit 中的视图、控件、视图控制器,以及我们自定义的视图及视图控制器都有响应事件的能力。本文详细介绍了一个 UIResponder 类提供的基本功能。

  2. 《实现一个 TODO 宏》:文章介绍了如何实现一个能产生编译器警告的 TODO 宏,用于在代码里做备忘。

 
 
  1. 《First Impressions using React Native》:作者介绍了他使用 Facebook 即将开源的 React Native 的感受。
 
 
  1. iOS-Universal-Framework:iOS-Universal-Framework 是一个方便你将第三方 SDK 编译成 Framework 的开源工具。
 
  1. 《如何用纯代码构建一个 Widget(today extension)》:随着 iOS8 的发布,各种 iPhone 的新玩法出现了,其中最引人关注的就是 today extension(也叫做 widget)。网上有很多相关的文章教你如何编写一个简单的 widget,但是却没有一篇适合我们这种纯代码的拥趸。本文介绍了如何用纯代码的方式来构建一个 widget。

  2. 《iOS 图片加载速度极限优化—FastImageCache 解析》:FastImageCache 是 Path 团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动起来更顺畅,本文分析了它的实现方式。
 
  1. BLKFlexibleHeightBar:BLKFlexibleHeightBar 是一个使导航栏高度可以动态变化的 UI 库。
 
  1. 《轻松学习 Objective-C 消息转发》:作者在文章中通过一个小例子来讲解什么是消息转发,以及如何消息转发,希望看完这篇文章时大家会彻底的明白 OC 的消息转发机制。

  2. 《React 入门实例教程》:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。本文是阮一峰原创的入门教程。

  3. 《React Native 通信机制详解》:React Native 是 facebook 刚开源的框架,可以用 javascript 直接开发原生 APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得学习,本文介绍了它最基础的 JavaScript-ObjectC 通信机制。
 
  1. 《为 GCD 队列绑定 NSObject 类型上下文数据-利用 __bridge_retained(transfer) 转移内存管理权》:本文介绍了如何合理运用 __bridge_retained(transfer) 关键字转换对象的内存管理权,让我们自己控制对象的生命周期。

  2. 《Don’t React》:本文作者从多方面分享了他对于 React 框架的负面看法。通过此文,大家可以更加客观地了解 React 这个框架。
 
  1. Lister:Lister 是苹果提供的官方 Demo。包含了 iOS、Mac 和 Apple Watch 版本,并且为这个 demo 分别用 Objective-C 和 Swift 实现了一遍,最后还包括了 30 页的文档。

  2. HackerNews-React-Native:HackerNews-React-Native 是用 React Native 完成的 HackerNews 客户端。

  3. RMPZoomTransitionAnimator:RMPZoomTransitionAnimator 是一个放大缩小的动效开源库,可以实现图片的放大缩小效果。

  4. MMTweenAnimation:MMTweenAnimation 是一个基于 POP 的扩展,提供了 10 种自定义的动效。
  1. Kingfisher:Kingfisher 是一个用于图片缓存的开源库,类似 SDWebImage,但是完全基于 Swift 语言开发。
BCMagicTransition:BCMagicTransition 是一个动效框架,用于自定义 UINavigationController 的切换动画,效果类似 Keynote 软件中 Magic Move 切换。它可以用于任意两个 UIViewController 之间,只需指定两个 VC 中的相同元素即可
 
 
  1. 《Increasing Performance by Reducing Dynamic Dispatch》:来自苹果官方博客的文章,介绍了通过减少动态分发,来提高 Swift 程序的执行效率的办法。具体做法上,文章分享了使用 final 关键字,使用 private 关键字,以及使用 Whole Module Optimization 编译参数来进行深度优化。
上一篇:通过反射获得 spring 的 RequestMapping value值


下一篇:设计模式之美:Chain of Responsibility(职责链)