iOS的各种开源项目集合《五》
网络连接
AFNetworking- ASI不升级以后,最多人用的网络连接开源库,iOS网络编程之AFNetworking使用,iOS开发下载文件速度计算,AFNetworking 3.0迁移指南,AFNetworking2.0源码解析<一>。
Alamofire- Alamofire是AFNetworking的作者mattt新写的网络请求的swift库。
YTKNetwork- 是基于 AFNetworking 封装的 iOS网络库,提供了更高层次的网络访问抽象。相比AFNetworking,YTKNetwork提供了以下更高级的功能:按时间或版本号缓存网络请求内容、检查返回 JSON 内容的合法性、文件的断点续传、批量的网络请求发送、filter和插件机制等。
LxFTPRequest- 支持获取FTP服务器资源列表,下载/上传文件,创建/销毁ftp服务器文件/目录,以及下载断点续传,下载/上传进度,自动判断地址格式合法性跟踪等功能!国人开发,QQ:349124555。
HSDownloadManager- HSDownloadManager,下载音乐、视频、图片各种资源,支持多任务、断点下载。
MutableUploadDemo- 模拟需求:图文混编,要求用户选择图片后就上传,可选择多图,并行上传,用户确定提交后后台执行,必须全部图片上传完才能提交文字。
WTRequestCenter- 方便缓存的请求库,提供了方便的HTTP请求方法,传入请求url和参数,返回成功和失败的回调。 UIKit扩展提供了许多不错的方法,快速缓存图片,图片查看,缩放功能, 颜色创建,设备UUID,网页缓存,数据缓存等功能。 无需任何import和配置,目前实现了基础需求。
MMWormhole- Message passing between iOS apps and extensions 2个iOS设备之间通信。
socket.io-client-swift- WebSockect 客户端类库。开放的通讯协议,有利于构建强大地跨平台应用。
Transporter- swift, 短小、精悍、易用的多文件(并发或顺序)上传和下载传输库。还支持后台运行、传输进程跟踪、暂停/续传/取消/重试控制等功能。
STNetTaskQueue- STNetTaskQueue Objective-C 可扩展网络请求管理库。
CocoaAsyncSocket- 在iOS开发中使用socket,一般都是用第三方库AsyncSocket,不得不承认这个库确实很强大,使用教程。
GCDAsyncSocket- GCDAsyncSocket ,不错的Demo。
Just- 小而美的 HTTP 类。功能简单、直接、完整且健壮性高-- swift。
Future- 基于微框架设计思想的异步执行及结果响应类,代码即简单又干净-- swift。
MZDownloadManager- 下载管理。
DVR- 针对网络请求的测试框架,超实用的工具。且支持 iOS, OSX, watchOS 全平台。
HFDownLoad- iOS开发网络篇之文件下载、大文件下载、断点下载:NSData方式、NSURLConnection方式、NSURLSession下载方式下载方式具体的思路、区别见Blog。
Pitaya.swift- Pitaya 是纯 Swift 写的 iOS 网络库,支持 Basic Authorization、SSL 钢钉、HTTP raw body / JSON body、快速文件上传等特性,并通过内置 JSONNeverDie 实现了对 JSON 的完全支持,开箱即用。中文文档
图像获取
SDWebImage- SDWebImage 网络图片获取及缓存处理。
Kingfisher- 纯 Swift 实现的类 SDWebImage 库,实现了异步下载和缓存图片。
KFSwiftImageLoader- Swift,一个图像缓存加载库。
FastImageCache- FastImageCache 网络图片获取及缓存处理,iOS图片加载速度极限优化—FastImageCache解析。
EGOCache- 十分知名的第三方缓存类库,可以缓存NSString、UIImage、NSImage以及NSData。除此,如果还可以缓存任何一个实现了接口的对象。所有缓存的数据都可以自定义过期的时间,默认是1天。EGOCache 支持多线程(thread-safe),UITableView加载多张照片导致内存上涨的问题。
YYWebImage- 一个图片加载库 YYWebImage,支持 APNG、WebP、GIF 播放,支持渐进式图片加载,更高性能的缓存,更多图像处理方法,可以替代 SDWebImage 等开源库,相关文章。
网络聊天
XMPPFramework- XMPPFramework openfire聊天。
SXTheQQ- 用xmppFramework框架编写QQ程序,主要为了练习通讯的一些原理,界面比较渣 必须要先在本地配置好环境才可以运行。
环信- 给开发者更稳定IM云功能。8200万用户考验,好用!(暂无及时语音、视频通话)
融云- 即时通讯云服务提供商。(暂无及时语音、视频通话)
容联云通讯- 提供基于互联网通话,视频会议,呼叫中心/IVR,IM等通讯服务。
chatsecure- 基于XMPP的iphone、android加密式聊天软件,chatsecure官网。iOS代码1,iOS代码2,iOS中文版。
MessageDisplayKit- 仿微信聊天,参考JSQMessagesViewController。(国人写)
JSQMessagesViewController- 聊天 。
SunFlower- 环信聊天demo,比较多功能 。
BlueTalk蓝牙聊天- 以MultipeerConnectivity为基础, 实现了简单的蓝牙聊天。
网络测试
Reachability- 苹果提供过一个Reachability类,用于检测网络状态。但是该类由于年代久远,并不支持ARC。该项目旨在提供一个苹果的Reachability类的替代品,支持ARC和block的使用方式。iOS网络监测如何区分2、3、4G
Reachability.swift- 用于替换苹果的 Reachability 类,可以方便地检测当前是否联网以及具体的联网状态。
SimpleCarrie- 简单的运营商信息获取!。
NetReachability- swift2.0 简单的方法检查网络连接的连通性,提供通知中心集成接口。
NetworkEye- 一个网络调试库,可以监控App内HTTP请求并显示请求相关的详细信息,方便App开发的网络调试。
SimpleBS.swift- 网络测试小工具。
WebView
MGTemplateEngine- MGTemplateEngine比较象 PHP 中的 Smarty、FreeMarker 和 Django的模版引擎,是一个轻量级的引擎,简单好用。只要设置很多不同的HMTL模版,就能轻松的实现一个View多种内容格式的显示,对于不熟悉HTML或者减轻 工作量而言,把这些工作让设计分担一下还是很好的,也比较容易实现设计想要的效果。
NJKWebViewProgress- 一个 UIWebView 的进度条接口库,UIWebView 本身是不提供进度条的。
GTMNSString-HTML- 谷歌开源的用于过滤HTML标签。
Model
JSONKit- JSONKit库是非常简单易用而且效率又比较高的,重要的JSONKit适用于ios 5.0以下的版本,使用JSONKit库来解析json文件,只需要下载JSONKit.h 和JSONKit.m添加到工程中;然后加入libz.dylib即可。
JSONModel- 解析服务器返回的Json数据的库,JSONModel源码解析一。
Mantle- Mantle主要用来将JSON数据模型化为OC对象, 大系统中使用。为什么选择Mantle。
RFJModel- RFJModel是一个IOS类库,可以将JSON字典自动装填到OBJC对象。相比JSONModel有一些非常好的特性,使用上也比较简单。
XMLDictionary- ios与mac os平台下xml与NSDictionary相互转化开源类库。
MJExtension- 用于json转model进行使用,转换效率很高,使用也比较简单,只要前后台约定好,json直接就转成了model。
CFRuntime- “Swift 版的 MJExtension,运行时、反射与一键字典模型互转”。
DDModel- 快速搭建项目Model层,支持ORM映射关系,能从JSON/XML直接实例一个Model对象。支持SQLite本地数据持久化,封装了HTTP, 减少HTTP代码与UIViewController的代码耦合,支持Cache;类似RESTKit、Mantle的功能;使用该类库以后简化了网络层的开发工作,把更多的精力放在UI上面;目前只支持GET/POST方法的请求。使用到的第三方库有:1.SQLitePersistentObject; 2.JTObjectMapping; 3.AFNetworking; 4.XMLDictionary;
protobuf-swift- Protocol Buffers 的 Swift 语言实现库。P.S. Protocol Buffers 是 Google 开源项目,主要功能是实现直接序列化结构化的对象数据,方便跨平台快速传递,开发者也可以直接修改 protobuf 中的数据。相比 XML 和 JSON,protobuf 解析更快,存储更小。
JSONCodable- 基于 Swift 2.0 新特性(Protocol Extensions and Error Handling)的JSON 解析类。
SwiftyJSON- 使Swift的JSON解析变得简单。
JSONNeverDie.swift- JSON 到 Model 类的自动映射工具。
Fuzi.swift- Swift实现的轻量快速的 XML/HTML 解析器。
SWXMLHash.swift- 易用的 XML 解析类库。非常实用的“轮子”。
YYModel- 高性能的 iOS JSON 模型框架。
通讯录
快速查找联系人- 类似微信联系人搜索的界面,快速查找联系人,并支持点击查询结果 。
其他
DateTimeKit- 一个超赞的时间处理的库,Joda-Time ! 他能帮你轻松处理时区,处理时间加减,计算到期时间等等场景下的问题。
SwiftDate- 特别完整、强大的日期时间操作管理类库。它几乎涵盖了已知开源日期类库所有优秀特性。 他能帮你轻松处理时区,处理时间加减,计算到期时间等等场景下的问题。
iOS私有API- 私有API,绿色 == public,红色 == private,蓝色 == dylib。
iOS源代码- iOS源代码。
libfacedetection- C++ 人脸识别 包含正面和多视角人脸检测两个算法.优点:速度快(OpenCV haar+adaboost的2-3倍), 准确度高 (FDDB非公开类评测排名第二),能估计人脸角度。
Slidden- 一个老外开源的开发自定义键盘的库,利用这个开源库,可以方便的配置键位、颜色以及键位对应的图片。
TPKeyboardAvoiding- 用户键盘弹出自动计算高度,进行屏幕滚动操作。
CDPMonitorKeyboard- CDPMonitorKeyboard封装,可以解决输入视图(例如textField,textView等)被键盘覆盖问题,并可设置高于键盘多少。
自动监听键盘高度- 自动监听键盘高度,初始界面,输入框在屏幕最下方,当键盘出现时,输入框随即移动到键盘上方。
KeyboardToolBar- 从此不再担心键盘遮住输入框,文档。
SYKeyboardTextField- SYKeyboardTextField 是一个轻巧,简单,非侵入式的键盘附随输入框! 采用Swift编写。
BlocksKit- block框架,为 OC 常用类提供了强大的 Block 语法支持,使得编写 OC 代码变得舒适、快速、优雅。
KVOController- 在项目中有使用 KVO ,那么 KVOController 绝对是个好选择。它是 facebook 开源的一个 KVO 增强框架。
appirater- 用于提醒用户给你的 APP 打分的工具。
MotionKitr- 为核心运动框架(The Core Motion framework)提供友好的类库封装,以更方便使用三轴陀螺仪和加速感应器特性。
Review Monitor- 第一时间自动推送 Apple Store 的用户评论到你的邮件箱或者 Slack,第一时间跟进用户反馈,打造优秀 App 必备工具!类似的有:App annie 的类似功能。
WBWebViewConsole- 类似微博iPhone客户端的 “调试选项” 吗?把其中的 “内置浏览器网页调试” 开源在 Github 上了。
ios-good-practices- ios-good-practices iOS 开发最佳实践。
iOS开发最佳实践- iOS 开发最佳实践 -- 中文。
TodayExtensionSharingDefaults- TodayExtensionSharingDefaults是一个iOS 8 Today扩展示例,可以使用NSUserDefaults与其containing app分享数据。
QRCodeReader.swift- QRCodeReader.swift一款简单的 QR 二维码阅读组件及示例,提供前后相机切换功能。
QR-Code-Generator.swift- 生成二维码。
QRCatcher- 一个简洁美观的二维码扫描应用,iOS学习:AVFoundation 视频流处理--二维码扫描。
MQRCodeReaderViewController- 二维码扫描控件, UI 做了优化, 仿造微信, 直接拖进项目就可使用。
Parsimmon- swift,小而美的语言学类库封装工具包。提供分词、标记词性、词形归并、朴素贝页斯分类、决策树等自然语言分析小工具。P.S. 英语分词效果好于中文,感兴趣的同学可以针对中文做一些优化开发。参考译文 NSHipster -NSLinguisticTagger。
Password-keyboard- 随机变换数字位置的密码键盘。 模仿银行类应用在付款时输入的随机密码键盘。
MKMapView-Extension- 这是关于 MKMapView 写的一个基于swift的扩展,可以扩展 MKMapView 的相关功能,减少复用代码量。
SemverKit- 针对符合『语义化版本规范 2.0.0』版本号的解析、比较运算类库。不仅支持 Major, Minor, Patch,还支持 Alpha 和 Beta 预发布版本,以及相应地递增运算扩展。
SwiftValidator- 基于规则的输入验证类库。项目良好的面向对象设计思想,使规则的扩展及自定义非常方便。更专业的规则引擎(甚至是基于自然语言的规则配置)解决方案,比如:开源的 Drools,商用的 ILOG 等。
Tesseract-OCR-iOS- 有关OCR文字识别项目。
Screenotate- 支持 OCR 文字识别的载屏笔记 Mac 完整应用。
cocoacats- 【分类汇总】里面收集了 iOS 中常用的分类文件,一直在更新。。
Olla4iOS- 过去积累的一些方便复用的类和方法,还在整理中。
DKNightVersion- 用最快的方式给你的应用加上夜间和白天的切换效果。
TouchVisualizer- 实用的多点触摸可视化组件。扩展并作用于 UIWindows,结构上提供了简单地针对触摸显示定制,比如触摸点的颜色。
RegexKitLite- 用来处理正则表达式。
Regex.swift- 实用的正则表达式微框架类库。
PySwiftyRegex.swift- 像Python一样简洁高效地作正则处理。
PhoneNumberKit.swift- 解析、格式化及验证国际电话号码工具库(相当于 Google 的 libphonenumber 库的 Swift 版本)。
XcodeServerSDK- 非官方 Xcode Server SDK 封装库。 P.S. 该 SDK 分离自之前推荐的由该作者开发的自动测试框架Buildasaur。
BFKit-Swift- BFKit-Swift 这套工具库可以提高应用开发效率。
CKSIncrementalStore- 基于 CloudKit 服务器实现多终端数据同步。
SwiftSequence- 简洁、灵活、多变的操作 SequenceType 的类库(基于微框架(μframework)设计思想)。
IDNFeedParser- 一个简单易用的Rss解析库。
CoreUmeng- 简单:友盟分享封装。
openshare- 不用官方SDK,利用社交软件移动客户端(微信/QQ/微博/人人/支付宝)分享/登录/支付。
Swifternalization- 一套实用的本地化工具库。使用教程及 API 文档完整。值得收入项目的“轮子”。
apous- 一款有趣的 Swift 应用 - 让 Swift 成为脚本语言。
Mirror- 通过反射(Refection)实现镜像对象封装库。从而可以更轻松获取(或输出)对象属性名、类型及值变量。
Proposer- Proposer 用单个 API 处理 iOS 上的权限请求,以便使用前确认可访问“相册”、“相机”、“麦克风”、“通讯录”或“用户位置”。
PermissionScope- 用这个库可以在询问用户前,就告知用户所需的系统权限,为用户带来更好的体验。接受度更高—>更多活跃用户->更高的留存率->数据更好->下载率更高。
LocationManager- CoreLocation使用起来还是比较麻烦的,需要授权,判断系统版本等等,所以推荐使用第三方框架LocationManager,使用Block,十分简单!iOS-CoreLocation:无论你在哪里,我都要找到你!。
pangu.objective-c- 有多种语言实现版本~ Pangu.Objective-C:格式化中英文之间的空格(OC)。
objection- 一个轻量级的依赖注入框架Objection。
ControlOrientation- 如何用代码控制以不同屏幕方向打开新页面【iOS】,使用说明。
iRate- 问卷调查。
GameCenterManager- 在iOS上管理GameCenter vanilla并不算难,但是有了这个库会更简单也更快。好上加好不是更好么。
SlackTextViewController- 用作极佳、定制的文本输入控制时,自适应文本区域,手势识别、自动填充、多媒体合并,快速drop-in解决方案。
IAPHelper- 应用内付费给我们提供了很多样本代码,而这个库丢掉了那些代码,将金钱交易相关的大多通用任务做了简单的封装。
TAPromotee- 交叉推广应用是你可以免费实现的最佳市场推广策略之一。使用这个库做起来非常简单,不用都不可能——将TAPromotee加入你的podfile中,免费配置与享受更多下载吧。
DownloadFontOnline- 实现了在线下载一些字体的功能,不用在工程中导入字体库,下载的字体也不会保存在你的应用中,所以可以放心使用。修复了一下崩溃的bug。
STClock- 仿锤子时钟。
GitUp- GitUp是一个可视化的Git客户端,能够实时的进行编辑、合并、回滚等多种操作,更多功能,请下载体验。
获取联系人信息,通讯录- 获取联系人信息,通讯录。
Universal-Jump-ViewController- 根据规则跳转到指定的界面(runtime实用篇一)。
Device-swift- 可以非常方便的获取设备型号和屏幕尺寸,实现起来难度不大,大家可以学习一下源码。
RunKit.swift- 针对 GCD 框架的一个友好访问封装库(支持方法链式调用)。
Plum-O-Meter- swift 称重应用, (3D Touch之我见)[http://swift.gg/2015/10/23/3d-touch-impressions-and-thoughts/]。
打开自带地图、百度地图、腾讯地图- 打开自带地图、百度地图、腾讯地图。
batteryLevelTest- runtime精准获取电池电量,文档。
openshare- 不用官方SDK,利用社交软件移动客户端(微信/QQ/微博/人人/支付宝)分享/登录/支付。。
DateTools- 用于提高Objective-C中日期和时间相关操作的效率。灵感来源于 DateTime和Time Period Library。
DDSlackFeedback- 用这个接口实现的摇一摇上传文字或者截屏反馈到你的 Slack channel,特别适合测试 app 的时候用,集成也很简单。
BabyBluetooth- 是一个非常容易使用的蓝牙库, 适用于 iOS 和 Mac OS, 基于原生 CoreBluetooth 框架封装, 可以帮开发者们更简单地使用 CoreBluetooth API, 使用链式方法体, 使得代码更简洁、优雅。
BluetoothKit.swift- 基于 CoreBluetooth API 实现iOS/OS X 设备间蓝牙通讯封装类库。功能强大、传输稳定,示例完整,很酷。
CoreDataStack.swift- 存储栈。
SYNQueue.swift- 执行队列类库。
DDMathParser.swift- 相比 NSExpression 和 GCMathPaser,功能更强大的数学表达式解析器。
RateLimit.swift- 简单、实用定时执行任务工具类库。
iOS-Categories- 收集了许多有助于开发的iOS扩展,各种category分类。
YYCategories- 功能丰富的 Category 类型工具库。
YYAsyncLayers- iOS 异步绘制与显示的工具。
YYDispatchQueuePool- iOS 全局并发队列管理工具。
YYKeyboardManager- iOS 键盘监听管理工具。