唐巧的iOS技术博客选摘

时间:2022-05-16
本文章向大家介绍唐巧的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/

4. 谈objective-c block实现:http://blog.devtang.com/blog/2013/07/28/a-look-inside-blocks/

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

9. https://github.com/facebook/Tweaks

10. 蓝牙:http://studentdeng.github.io/blog/2014/03/22/corebluetooth/

11. rac,mvvm,example:https://github.com/jspahrsummers/enemy-of-the-state/blob/master/Enemy%20of%20the%20State.pdf(https://github.com/jspahrsummers/enemy-of-the-state)

12. SDWebImage的缓存机制:

13. NSHashTable:http://billwang1990.github.io/blog/2014/03/31/nshashtable-and-nsmaptable/

14. 

初始化阶段 —— load 和 initializehttp://www.cnblogs.com/biosli/p/NSObject_inherit.html

15. https://github.com/mxcl/PromiseKit

16. http://gracelancy.com/blog/2014/04/21/toll-free-bridging/

17. https://github.com/intentkit/IntentKit

18. https://github.com/granoff/Lockbox

19. https://github.com/jerols/PopTut

20. http://foggry.com/blog/2014/04/25/githubyou-xiu-xiang-mu-ios/(开源项目大全)

21. GCD深入理解:https://github.com/nixzhu/dev-blog/blob/master/2014-05-14-grand-central-dispatch-in-depth-part-2.md

22. https://github.com/hfossli/AGGeometryKit-POP

23. https://github.com/bsalinas808/Loop

24. http://blog.xcodev.com/archives/tagged-pointer-and-64-bit/

25. 

Viewfinder:移动支付公司 Square 将去年收购的照片应用 Viewfinder 开源了,包含服务端、iOS 和 Android 应用代码。这里有该项目的介绍。

26, 

Eggscellent开源:Eggscellent是Mac上的开源的番茄钟应用。

27. 

PNChart:作者周楷雯Kevin发布了PNChart 0.5版本,提供了一个更漂亮的Pie Chart界面。

28。 

文本编辑器Atom开源:GitHub将其开发的文本编辑器Atom开源。

(可用于《阅读》的参考)

29. 

FlappySwift:FlappySwift用swift重写的一个开源Flappy Bird游戏。

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,在移动设备上有着更好的性能表现。

https://github.com/vsouza/awesome-ios

http://weibo.com/2584320772/BfHoM6MM4#_rnd1434548517662

V**-deploy-playbook:一个自动部署各种FQ服务的工具,包括IPSec,L2TP,PPTP,Cisco AnyConnect,SigmaV**,APN,OpenV**,DNS,SPDY,用户管理等功能。

iReSign:一个可以把ipa用企业证书重新签名的开源项目

《iOS8-day-by-day》:这是一个学习iOS8的系列文章合集,一共有16篇文章。

《objc非主流代码技巧》:看开源代码时,总会看到一些大神级别的代码,给人眼前一亮的感觉,多数都是被淡忘的C语言语法,作者在文章中总结了objc写码中遇到的各类非主流代码技巧和一些妙用。

https://github.com/ShinobiControls/iOS8-day-by-day,初步学习iOS。。。。。

http://mattgemmell.com/api-design/

https://github.com/tonymillion/Reachability,ARC版本的

https://github.com/shu223/iOS8-Sampler,iOS 8 sample。。。

https://github.com/miklselsoe/MSSPopMasonry:Use Masonry with the Facebook Pop animation framework.

鸭子对象?http://blog.sunnyxx.com/2014/08/26/objc-duck-advanced/

https://github.com/Brimizer/Slidden:An open source, customizable, iOS 8 keyboard.、http://blog.sunnyxx.com/2014/08/24/objc-duck/

《( ) –> ( )》:() -> ()不是什么表情符号,而是一种高度抽象的编程范式,它表示了一个函数式的编程思想,即值的变化过程。本文从swift语言入手分析,元组,函数,闭包等的设计对它进行解释,并阐释swift语言设计的大局观,最后分享一个Reactive Cocoa作者的Talk中的编程思想。

《如何用Swift做一个不错的按钮变换动画》:文章介绍了如何用Swift语言,采用Core Graphics来完成两个按钮之间的切换动画效果(效果图如下所示)。作者也将相关的代码开源在了这里。

《为什么唱吧iOS 6.0选择了Mantle》:唱吧6.0一个很重大的修改就是基于Mantle重建(新建)了Model层。文章分享了使用Mantle的决策及执行过程。

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的实现原理。

《刨根问底Objective-C Runtime(4)- 成员变量与属性》:本篇笔记主要是讲述Objective-C Runtime的成员变量和属性。

CBStoreHouseRefreshControl:一个效果很酷炫的下拉刷新控件。

ZLSwipeableView:ZLSwipeableView是一个方便做出卡片效果的UI库,支持各种卡片的滑动效果。

YTKNetwork:YTKNetwork 是基于 AFNetworking 封装的 iOS 网络库,提供了更高层次的网络访问抽象。相比 AFNetworking,YTKNetwork 提供了以下更高级的功能:按时间或版本号缓存网络请求内容、检查返回 JSON 内容的合法性、文件的断点续传、批量的网络请求发送、filter和插件机制等。

Objective-Chain:Objective-Chain是一个面向对象的响应式框架,作者表示该框架吸收了 ReactiveCocoa 的思想,并且想做得更面向对象一些。 《UIAlert​Controller》:你知道 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》:作者介绍了有关卡片动画的研究和实现。

http://objccn.io/issue-18-2/

http://objccn.io/issue-18-3/

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 。

《QQ 中未读气泡拖拽消失的实现分析》:QQ 中针对强迫症有个很棒的交互,对于那些暂时不想理会的未读信息气泡,可以直接手指拖拽去掉。本文介绍了其实现方法。

《提升 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 的开源工具。

http://tech.glowing.com/cn/implement-kvo/

《如何用纯代码构建一个 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 语言开发。

BCMagicTransition:BCMagicTransition 是一个动效框架,用于自定义 UINavigationController 的切换动画,效果类似 Keynote 软件中 Magic Move 切换。它可以用于任意两个 UIViewController 之间,只需指定两个 VC 中的相同元素即可

《Increasing Performance by Reducing Dynamic Dispatch》:来自苹果官方博客的文章,介绍了通过减少动态分发,来提高 Swift 程序的执行效率的办法。具体做法上,文章分享了使用 final 关键字,使用 private 关键字,以及使用 Whole Module Optimization 编译参数来进行深度优化。