在结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点。今天,我们将介绍20个在GitHub上非常受开发者欢迎的iOS开源项目,你准备好了吗?
1. AFNetworking
在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库。它建立在NSURLConnection、NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它。
- 支持HTTP请求和基于REST的网络服务(包括GET、POST、PUT、DELETE等);
- 支持ARC;
- 要求iOS 5.0及以上版本;
- 有一些插件扩展已有的功能,还有一个功能齐全的API;
- 从URL中获取JSON特别简单。
详情请参考:AFNetworking官网
2. Three20
Three20原本是iPhone版Facebook中所使用的工具库,包括照片查看器等一系列的iPhone UI类集,以及HTTP磁盘缓存等一些通用工具。后来从Facebook iPhone应用中剥离出来,成为了一个深受开发者喜爱的通用框架。
此前在“GitHub上最受欢迎的开源项目”Android系列文章(一)中,我们曾介绍过允许开发者将Facebook集成到Android应用中的Facebook SDK for Android。Facebook SDK for iOS和它一样,可以让开发者将Facebook相关功能集成到自己的iOS App中。
Facebook无疑是最成功的SNS社区,如果能够让App具有与Facebook集成的功能,那势必会带来非常好的效果。Facebook SDK for iOS项目更新频率很高,想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Facebook Developers查看。
4. RestKit
Restkit是一个主要用于iOS上网络通信的开源Objective-C框架,除了发送请求、接受响应这些基本功能外,还附带Core Data,以及将远程JSON映射为本地对象的功能。
主要特点:
- 可在iOS和Mac OS X的Objective-C中与RESTful Web服务进行简单交互;
- 包含简单的HTTP Request/Response API;
- 带有强大的对象映射系统,用于减少代码长度;
- RestKit可降低JSON/XML的处理的资源消耗,支持通过SBJSON和YAJL进行JSON解析。
详情请参考:Restkit
ASIHTTPRequest是一款极其强劲的HTTP访问开源项目,能够让简单的API完成非常复杂的功能,比如异步请求、队列请求、GZIP压缩、缓存、断点续传、进度跟踪、上传文件、HTTP认证。
ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互。使用Objective-C编写,能够同时用于Mac OS X和iPhone应用中。
详情请参考:ASIHTTPRequest
6. cocos2d-x
在《GitHub上最火的40个Android开源项目(一)》中,我们已经非常详细地介绍了cocos2d-x开源项目。cocos2d-x支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。
详情请参考:**cocos2d-x**
7.cocos2d-iphone(cocos2d)
cocos2d for iPhone是一个开源框架,用于为iPod Touch、iPhone、iPad及Mac OS X构建2D游戏、演示程序及其他图形交互式应用。基于cocos2d设计,使用相同的API,但不同于cocos2d使用Python,cocos2d for iPhone是使用Objective-C实现的。
cocos2d for iPhone主要特性:
- 快
- 免费
- 易于使用
- 社区支持
详情请参考:cocos2d-iphone
该项目是对cocos2d for iPhone的扩展。
9. GPUImage
GPUImage是一个基于GPU图像和视频处理的开源iOS框架。
主要功能如下:
- 提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜;
- GPUImage顾名思义,是基于GPU的图像加速,因此图像处理速度非常快,并且能够自定义图像滤镜;
- 支持ARC。
10. MonoGame
MonoGame是一个Microsoft XNA 4.x Framework的开源跨平台实现。此前在Android开源项目系列文章(一)中我们也进行了详细的介绍。
MonoGame支持平台:
- iOS(包括Ritina Display)
- Android
- Windows(OpenGL)
- Mac OS X
- Linux
- Windows Store Apps(Windows 8、Windows RT)
- Windows Phone 8
- PlayStation Mobile(目前仅支持2D)
- OUYA
11. Nimbus
Nimbus是一个开源的iOS框架,比起Three20,Nimbus的文档更为全面、丰富,能够实现很多非常炫的界面特效。因此,开发者可以借助Nimbus来降低项目设计的复杂度。
12. cheddar-ios
Cheddar是一个简单即时的任务管理器,Cheddar for iOS是Cheddar的iOS客户端,通用于iPhone和iPad。
开发者可以直接登陆App Store下载该应用。
13. ViewDeck
IIViewDeckController能够实现类似于Path 2.0 的视图左右滑动的效果,支持向左或向右顺滑的滑动操作。
点击链接,查看视频演示(常规演示、灵敏性演示),注意,需翻(傻逼)墙的哟。
14. ShareKit
ShareKit是iPhone开发的第三方接口,允许你一键分享文字、图片、网址、文件等内容到Facebook、Twitter、Delicious、Tumblr、Google Reader等第三方网站上。
详情请参考:getsharekit
15. GMGridView
GMGridView是一款开源的iOS(iPhone/iPad)表格视图,允许用户手势对表格单元进行排序,在单元格需要展示时才进行装载,这样极大地提高了表格的效率。其中的伸缩/旋转/平移手势能够让用户改变视图,还能够实现从CellView到全屏的切换。
详情请参考:gmoledina
16. QuickDialog
QuickDialog可以帮助开发者快速创建复杂的表单,实现包括登录界面在内的各种样式的TableView输入界面,此外,还可以创建带有多个文本域的表格及项目。
开发者可以直接登陆QuickDialog官方网站,获取更多信息或文档。
17. appirater
Appirater是一个可以直接使用到任何iPhone应用(iOS4.0及以上)中的开源类,用于提醒用户在打开App时,对应用进行评论或打分。
详情请参考:Appirater group
18. SVProgressHUD
SVProgressHUD能够实现多种HUD效果,多用于程序正在执行耗时较长的任务,需要用户等待。除了显示等待的HUD,还可以显示命令执行成功或者失败的HUD。
19. Reader
该项目能够让iOS开发者轻而易举地在iOS设备屏幕上显示PDF文件。代码通用,不需要任何XIB(因为所有UI元素都是代码生成的,具有极大的灵活性),运行于iOS 4.0及其以上版本设备中,同时还支持所有Retina Display设备。
支持:
- 诸如iBooks等的文档导航;
- 设备全方位旋转;
- 对PDF进行加密(密码保护);
- PDF链接(URI及跳转页面);
- PDF旋转页面。
CocoaAsyncSocket提供了十分强大而又易用的Mac OS X及iOS异步套接库,支持TCP和UDP,其中,AsyncSocket类是支持TCP的,AsyncUdpSocket是支持UDP的。
AsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库,提供异步操作。AsyncUdpSocket是UDP/IP socket网络库,包装自CFSocket。
21. SSToolkit
SSToolkit可以说是iOS开发者最常使用的工具类之一,该开源项目提供了一个完整的iOS类库集合,用于解决iOS开发者在开发过程中常碰到的一些问题,比如追踪一款设备是否具有视网膜显示屏或是否能剪裁图片,包含SSCollectionView、SSGradientView、SSSwitch等诸多非常方便的类。
如果想要对SSToolkit作进一步了解,可以在iPad/iPhone上使用SSToolkit的Demo应用SSCatalog。获取更多信息,可直接登陆S.S. TOOLKIT。
22. XMPPFramework
XMPPFramework是一个使用Objective-C编写的用于Mac/iOS开发的XMPP框架,它提供了一个RFC-3920(XMPP标准)核心实现,通过某些特定工具读写XML。XMPPFramework有着非常丰富的建立在模块化架构之上的XEP扩展,开发者可以将其直接插入到代码中,使用GCD构成,即使是在非常老旧的iPhone或12核Mac
Pro上,它都能高效运转。
为了方面开发,苹果iOS SDK提供了UISplitViewController用于iPad左右分栏界面显示,但对于开发者而言,UISplitViewController使用起来并不方便,在开发过程中,总会遇到许多问题。于是,天才的iOS开发者Matt Gemmell在GitHub上发起了一个名为MGSplitViewController的开源UISplitView实现,它比苹果官方UI组件所提供的分栏类功能更加丰富。
最初Matt编写MGSplitViewController只是为了方便自己使用,但最终Matt决定将其开源,供所有iOS开发者使用。如果想要了解更多关于MGSplitViewController的信息,可直接登陆Matt Gemmell博客查看,也可点击链接,查看视频演示(需fan(我勒个去)墙)。
CocoaLumberjack集快、简单、强大、灵活于一身,和log4j等其他非常受开发者欢迎的日志框架的概念类似,专为Objective-C设计,用于iOS和Mac,拥有多线程、GCD(如果可用)、无锁原子操作和Objective-C运行时的动态特性。
PSTCollectionView是用于iOS 4.3及其以上版本中的UICollectionView的100%开源API兼容替代品。如果想要使用UICollectionView,但仍然需要支持老版本的iOS,那么这个项目你一定会非常喜欢。如果想要始终使用PSTCollectionView,使用PSTCollectionView作为类名称即可。
当然,如果你想在iOS 4.3/5.x上使用PSTCollectionView,但在iOS
6上使用UICollectionView,可以在所有UICollectionView类上添加PS,以获得对老版iOS的自动支持,这样就可以随心所欲如你所愿地使用PSUICollectionView。
CocoaHTTPServer是一个用于Mac OS X或iOS应用的轻量级、可嵌入的HTTP服务器框架。有时候开发者需要在他们的App中内嵌一个HTTP服务器。无论是具有远程监控功能的服务器应用,还是使用HTTP进行后端通信的桌面应用,或者是提供无线访问文档功能的iOS应用,CocoaHTTPServer都能满足你的开发要求。
CocoaHTTPServer提供如下功能:
- 支持Bonjour广播内建;
- 支持IPv4、IPv6;
- 异步网络使用GCD和标准套接口;
- 密码保护支持;
- SSL/TLS加密支持;
- 快速、高效;
- 伸缩性强;
- 大量注释代码;
- 非常容易扩展;
- 还支持WebDAV。
27. PushSharp
在应用开发中,给App推送通知是很常见的方式。PushSharp正是这样一个能够实现向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone、Windows 8、BlackBerry(PAP)和Amazon(ADM)等多种操作系统推送消息通知的开源C#服务器端库。
主要特性:
- 支持多平台消息推送;
- API能够很流畅地为不同平台创建通知;
- 自适应信息频道(自动增加或减少消息链接);
- 使用异步代码,基于Event为导向调用类库;
- 100%代码托管,兼容Mono框架;
28. HockeyKit
此前在GitHub上“最受欢迎的Android开源项目”系列文章(一)中,我们曾对HockeyKit进行了详细的介绍。HockeyKit是一个用于iOS和Android下App更新的开发包,无论是iOS还是Android应用开发,它都深受开发者喜爱。
JTRevealSidebarDemo是一个能够实现类似于Facebook客户端和Path应用的视图切换效果的Objective-C库模板,其目的在于为开发者提供一个真正灵活的、可重用的解决方案。
JTRevealSidebarDemo可用于iOS 4.3和5.0应用开发,示例代码使用ARC构建,但该库本身则兼容ARC和非ARC。
PKRevealController是对ZUUIRevealController的进化ZUUIRevealController能够实现类似于Facebook客户端的视图横向切换效果。而PKRevealController则是一个iOS视图控制器的集合,能够让你实现多重控制器切换,非常灵活。
相关推荐
这个压缩包文件"收集GitHub上的Flutter开源项目源码_2021_03_20.zip"显然包含了2021年3月20日时,GitHub上的一些Flutter开源项目的源代码。这些源码对于开发者来说是极其宝贵的资源,可以用来学习、参考和实践...
ZXing(Zebra Crossing)是GitHub上一个知名的开源项目,主要致力于提供跨平台的条形码和二维码读取、生成库。这个项目被广泛应用于移动设备,尤其是Android平台,允许开发者轻松集成二维码扫描功能到自己的应用程序...
在Android开发领域,GitHub是一个宝贵的资源库,汇聚了大量的开源项目,极大地推动了开发者的创新和学习。以下是一些流行的Android开源项目,它们提供了各种功能和解决方案,帮助开发者提高效率,增强应用体验。 1....
总之,“swift-新手引导”项目为初学者提供了一个良好的学习平台,通过实践GitHub上的开源项目,你可以逐步熟悉Swift语言,理解其设计理念,并掌握开发iOS等Apple平台应用程序的技能。记得动手编码,不断实践,这是...
【iOS开源中国app完整源码】是一份针对iOS平台的开源项目,提供了开源中国社区的移动应用源代码。这份源码对于iOS开发者来说是一个宝贵的资源,可以深入学习和研究iOS应用开发,特别是对于想要了解社交类应用或者...
本资源集合包含了从GitHub上精选的15种不同的弹出视图源码,这对于开发者来说是一个宝贵的参考资料库,能够帮助他们快速实现各种弹出效果,提高应用的用户体验。 1. **动画效果**:这些弹出视图源码可能包含各种...
1. **GitHub**:作为全球最大的开源项目托管平台之一,GitHub上有大量优秀的Unity项目可供下载和参考。 2. **Unity Asset Store**:Unity官方资产商店不仅提供付费资源,也包含许多免费的开源项目。 3. **Unity官方...
这个开源项目“技淘2.0”显然是一款针对iOS平台的应用,它可能包含了作者在iOS开发中的实践与创新。 iOS开发主要基于Apple的Swift或Objective-C编程语言,Swift以其简洁易读的语法和强大的功能,已经成为现代iOS...
本资源集合包含了13套在Github上备受开发者关注的地图相关源代码,这些代码库可以帮助我们深入理解地图API的使用,学习如何在iOS应用中集成地图功能,以及实现各种地图特效和定制化需求。 1. **地图框架的理解与...
为此,CSDN特整理了GitHub上最受欢迎的Android及iOS开源项目,本文详细介绍了20个Android开源项目 GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。更何况,基于不要重复造轮子的原则,...
蓝湖移动端辅助工具是一款专为开发者设计的开源项目,旨在简化移动端开发过程中控件属性的复制和粘贴操作。此工具的最新版本为v1.0.2,它能够极大地提高开发效率,尤其是在处理iOS和Android平台上的布局时。通过一键...
"IOS开源"标签突出了这个项目的主要特点,即它是针对iOS系统的,并且遵循开源原则。在iOS平台上开发开源应用,开发者可以利用Apple的Swift或Objective-C编程语言,同时也可能使用Cocoa Touch框架和其他Apple提供的...
BottomBar是一款在GitHub上开源的Android库,专用于创建炫酷且实用的底部导航菜单。这个库为开发者提供了简单易用的方式,使他们能够在Android应用中实现类似iOS的TabBar功能,即在屏幕底部显示一组可点击的图标,...
本文将深入探讨这个项目的细节,包括其核心特性、如何集成到你的iOS应用中以及如何进行自定义。 首先,AGEmojiKeyboard是一个完全免费且开源的库,它允许开发者轻松地在iOS应用中添加一个功能丰富的Emoji键盘。这个...
这个项目旨在为用户提供一个便捷的方式来探索和了解GitHub上的热门项目和趋势,帮助开发者发现和参与最新的开源技术动态。 React Native是由Facebook开发的一个开源库,它允许开发人员使用JavaScript和React来构建...
"git"标签表明这个项目是托管在GitHub上的,这是一个全球知名的开源代码托管平台,开发者可以在这里分享和协作开发项目。"去除马赛克"标签则揭示了项目的主要目标,即通过编程手段尝试恢复马赛克遮盖的图像细节。 ...
【标题】:“ios-云知道(已上线的开源项目).zip”是一个关于iOS平台的开源项目,名为“云知道”。这个项目已经在GitHub上发布,链接为:https://github.com/SouthCity/Only-the-clouds-know。从描述来看,虽然项目...
TweetDeck是Twitter的一款应用,用于更有效地管理多个Twitter账号,因此可以推测DevHub也提供了类似的功能,让用户能高效地处理GitHub上的项目和协作。 描述"devhub:github管理工具"简单明了地表明,DevHub的核心...
这些只是40个热门Android开源项目的一部分,它们展示了Android生态系统的活力和多样性。开发者可以从中学习到最佳实践,借鉴优秀的设计理念,甚至直接将这些库集成到自己的项目中,提升开发效率。持续关注并研究这些...