iOS不错的第三方开源库归类分享(转自TommyYaphetS)
Github上可说是全球最大的IT “交友约会”网站,各种各样牛逼的open source code,明星!明星!明星!LZ逛github上也有些时候了,经常会出现一个困惑,就是明星了新的,很多以前明星的一想不起名字,就很难找到,要一页一页的翻......想想,如果你明星超过了50多页,每一次不得找死......我之前的英文用Chrome的收藏夹数功能来区分,一段时间努力后,就成了下面这个样子:
还是比较方便的,起码完成了分类,只是没能加上自己收藏时对链接的注释(这样查找更快了),昨天朋友推荐了Astral,通过加标签的方式来实现分类,也很直观明了。 ..为什么LZ还要做这个整理呢?一是,能够分享出来;二是:可以自己无限的加入自己解释,更快的天下Code,唯快不破查找_!
总览/大集合
vsouza / awesome-ios(一个真棒iOS生态系统的精选列表,包括Objective-C和Swift项目)
matteocrippa / awesome-swift(真棒快捷资源的协作列表,欢迎参与!)
ipader / SwiftGuide(这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排)
ioscookies(国外收集的优秀的swift第三方库)
YYKit(涉及了图片下载,富文本,缓存等多个高性能开源库)
JSPatch(js实现热更新,放这里是觉得它比较唯一,_)
LeeGo(LeeGo是一个Swift框架,旨在带来更声明式的,可配置的和易复用的UI开发方式,让UI开发变得像玩乐高积木一样简单直观,某种程度上取代ComponentKit)
网络请求网络
AFNetworking(不解释了...都懂)
Alamofire(swift版本AFNetworking)
YTKNetwork(巧神团队封装了AFNetworking,本人现在的项目也在用)
火龙果(支持基本授权,SSL钢钉,HTTP生体/ JSON体,快速文件上传等特性,并通过内置JSONNeverDie实现了对JSON的完全支持)
NetworkEye(可以监控App内的HTTP请求并显示请求相关的详细信息,方便App开发的网络调试)
数据存储
fmdb(不喜欢用coredata的人基本都会选它吧...)
YTKKeyValueStore(依旧是巧神团队力作)
SQLite.swift(一个类型安全的,Swift语言的SQLite3层)。
GRDB.swift(让操作SQLite再简单一点,方便,实用)
realm-cocoa(Realm主打移动数据库)
CoreStore (以Swift的优雅和安全释放核心数据的真正力量...没用过,看情形,swift有关coredata的开源库比sqlite的要多蛮多)
SwiftyUserDefaults(见名知意)
Pantry(可以持久化基础类型(String,Int,Float,Bool)变量值的类库。无论是退出应用还是重启设备,持久化设置过的变量可以被保存下来)
图片异步下载缓存
SDWebImage(这个也不解释...源码很值得研究)
Kingfisher(喵神作品,这个项目深受SDWebImage的欢迎)
YYWebImage(支持APNG,WebP,GIF动图的异步加载与播放,编码与解码,支持渐进式图像加载)
PHImageKit(出自Product Hunter开发小组的带下载,缓存的GIF播放组件库)
Nuke(图像加载,处理,缓存和预热)
JSON / HTML / XML < - >模型
JSONModel(可以好好研究下源码,LZ貌似还没在项目中用过)
MJExtension(小码哥...)
SwiftyJSON(在Swift中处理JSON数据的更好方法)
JSONNeverDie(从JSON到Model的自动反射工具,用户友好的JSON编码器/解码器,旨在永不死亡)
JASON(据说很高效)
JSONCodable(Swift中无忧的JSON编码和解码)
ObjectMapper(用Swift编写的简单JSON对象映射)
Argo(类似楼上,二选其一)
YYModel(高性能,刚出不久,大家可以尝试一下,里面还有各个json-model库的性能测评)
Ji(戟)是Swift的XML / HTML解析器)
Kanna(同上)
函数响应式编程框架
Interstellar_Swift(极简的FRP)
Bond_Swift(基于KVO)
Observable_Swift(Swift的KVO - 价值观察和事件)
斯威夫特函数式编程
Dollar.swift(提供了有用的函数式编程辅助方法,无需扩展任何内置对象.Dollar类似于Lo-Dash或者Javascript中的Underscore。)
UI总览
wonder -ios-animation(基于UI组件类别分类,且带精彩动画效果的iOS组件库集合)
FlatUIKit(超喜欢这样的风格,强烈推荐)
iCarousel(一款适用于iOS和Mac OS的简单,高度可定制,数据驱动的3D轮播)
UINavigationController的
导航堆栈(入栈太深不好返回最初的VC,可以试试这个)
的UIImagePickerController /图片浏览
ZLPhotoLib(LZ项目中在的,使用很方便)
IDMPhotoBrowser(功能比较完善的“图片浏览器”)
ALCameraViewController_Swfit(含可定制照片选择器,图片简单裁切功能)
SKPhotoBrowser_Swift(Simple PhotoBrowser / Viewer受Facebook的启发,Twitter照片浏览器,基于IDMPhotoBrowser,MWPhotoBrowser附带删除按钮)
ImageViewer_Swift(图片全屏预览组件及类库)
BSImagePicker_Swift(图片多选控件)
ImagePicker_Swift (图片多选控件)
UIScrollView中
XXPagingScrollView(以自定义分页宽度分页的scrollView)
HACursor(是一个对横向ScrollView中的视图进行管理的UI控件。只要几行代码就可以集成类似于网易新闻对主题页面进行排序,删除操作的功能)
GJAutoCycleScrollView(一个自动循环滚动的滚动视图。只需要两张图片循环利用,史上性能最佳。支持网络图片)
SDCycleScrollView(无限循环图片轮播器)
MediumScrollFullScreen(滚动的时候隐藏导航栏和底部栏)
SCNavigationControlCenter(类似于iOS9之后双击home出现的界面)
APParallaxHeader(下拉头图片放大效果)
的UILabel
LTMorphingLabel(非常绚丽)
UICountingLabel(数字动态变化,有动画效果)
CharacterText(相比楼上,更简单实用)
FolioReaderKit(ePub阅读器和解析框架类库)
FNBlingBlingLabel(Swift实现的UILabel文字随机渐隐渐现,Swift版RQShineLabel。)
的UIButton
CatZanButton(“赞/赞”的动画按钮)
DOFavoriteButton_swift(用Swift编写的可爱动画按钮)
LiquidFloatingActionButton(会伸长的+)
KYGooeyMenu(动画小王子KY出品,粘性弹出按钮,也可以作为UITabBarVC的中间按钮)
XTNetReloader(提示“没有wifi”的视图和一个“重新加载”的按钮)
ZFRippleButton(点击按钮不同部位,出现不同的动画反应)
SpreadButton_Swift(一个当你点击它后会像花或者镰刀一样展开的按钮,你可以切换一种位置模式,把它当iphone里的AssistiveTouch。)
NumberMorphView_Swift(可爱的数字补间(变身)动画类库)
SMSegmentView(高可定制化,既支持横向,也支持纵向布局的图文段控件组件)
的UITextField
TextFieldEffects(由Codrops启发的自定义UITextFields效果,使用Swift构建)
KeyboardMan(iOS8后键盘通知就不太正常了...)
YYKeyboardManager(YY键盘管理系列)
TPKeyboardAvoiding(依旧是弹出键盘问题)
FloatLabelFields(基于“浮动标签模式”的内嵌浮动标签输入效果Swift版实现类库)
SkyFloatingLabelTextField_Swift(浮动标签输入库)
PhoneNumberKit_Swift(针对于电话号码的特殊textfield)
的UIImage /的UIImageView
FLAnimatedImage(适用于iOS的高性能动画GIF引擎)
ImageScout(最小网络代价获得图片大小(宽和高)及类型,它对于很多场合,比如:布局和排版都有积极作用)
gifu(高性能GIF显示类库Swift版本)
JWAnimatedImage(集中了目前主流的GIF显示库的优点)
SwiftyGif(高性能Gif播放引擎。那么多Gif播放类型哪家强,这位同学的方案是与@蚊子咬的包为什么那么圆同学的JWAnimatedImage比较看,而JWAnimatedImage的方案是与JWAFLAnimatedImage比较看)
的UITableView / UITableViewCell的
VVeboTableViewDemo(极致优化tableview ...)
SWTableViewCell(一个易于使用的UITableViewCell子类,实现了可展开的内容视图,该视图公开实用程序按钮(类似于iOS 7 Mail应用程序))
MGSwipeTableCell(一个易于使用的UITableViewCell子类,允许显示具有各种转换的可滑动按钮。)
Reusable(利用协议扩展结合泛型提供了一个优雅的方案来dequeueReusableCell。)
UICollectionView
CSStickyHeaderFlowLayout(UICollectionView替代UITableView,甚至更像Parallax Header,Sticky Section Header,适用于iOS 7.)
LxGridView-swift(仿iOS系统桌面图标排列和UICollectionView交互!)
CKWaveCollectionViewTransition(Cool Wave像两个或多个UICollectionView之间的过渡)
StickyCollectionView(实现了cell在滚动时吸附在顶端并且之后的单元在其上方覆盖的效果)
UITabBarViewController
animated-tab-bar(如名,animation_tab_bar)
ESTabBarController_Swift(高度自定义TabBarController,支持自定义TabBarItem样式或添加动画)
UINavigationBar的
RainbowNavigation(UINavigationBar颜色变化的十分优秀的解决方案)
KMNavigationBarTransition(过渡效果顺滑自然,你不用写一行代码,只用关心被推的视图控制器的导航栏的背景样式)
左| Top_Menu
PageMenu(一个从其他视图控制器构建的分页菜单控制器,放置在滚动视图内(如Spotify,Windows Phone,Instagram),类似于网易,今日头条那种顶部菜单,下面滚动VC的控件)
WMPageController(不知道这个库封装的如何,同事在项目中用了..感觉一般)
YZDisplayViewController(仿今日头条的页面切换,最近性能优化了一下)
GuillotineMenu(自定义推的顶菜单栏,刀砍式转场动画)
BTNavigationDropdownMenu_Swift(在导航栏Title切换的菜单控件)
Persei(用Swift编写的用于UITableView / UICollectionView / UIScrollView的动画顶级菜单)
XLPagerTabStrip_Swift(适用于iOS的Android PagerTStrip)顶部菜单切换)
SwipeViewController(RKSwipeBetweenViewControllers - 在页面/ ViewControllers之间导航)
FlowingMenu_Swift(弹簧式推出左侧菜单栏)
DynamicMaskSegmentSwitch(可定制的SegmentUI)
ARSegmentPager(iOS选项卡控制器)
推/现
FDFullscreenPopGesture(纵享丝滑的手势操作...阳神出品)
RMPZoomTransitionAnimator(UIViewController的自定义缩放转换动画)
TKSubmitTransition(加载动画和过渡动画的动画UIButton)
TransitionTreasury_Swift(各式转场动画,可以在这里查看他的gif效果图)
日历UI
Koyomi_Swfit(可定制很强大)
一个UIWebView / WebViewController
TOWebViewController(快速展示web页面的vc)
引导页/新手操作指示
Onboard(非常棒的引导页制作库)
RazzleDazzle_swift(用于iOS的简单的基于关键帧的动画框架,用Swift编写,非常适合滚动app intros。同上)
BWWalkthrough(为您的iOS应用程序构建自定义演练的类)
Instructions(新功能指引页面)
Gecco_Swift(新功能指引页面)
UIColor-颜色库
DynamicColor_Swift (RGB颜色转换)
Wonderful(一个非常好用的色彩库)
BCColor_Swift(能够获取图片的颜色)
UI其他不知到咋分类了
DKNightVersion(白天/夜间模式切换)
Koloda(卡片式UIView)
WZLBadge(一行代码搞定各种小红点)
paper-switch(类库实现了当开关组件开/关切换时,平滑过渡到父视图的变换效果功能(核心类继承了UISwitch))
Whisper(使用简单,功能实用的消息及应用通知组件)
CRToast(从状态栏弹出消息提醒)
LBTagView(添加标签视图)
SKTagView(标签视图,很不错,推荐一下)
TKDotSegment(不错的SegmentUI控件)
PMAlertController(可定制弹簧组件替代版本不可定制的UIAlertController)
自动版式
自动版式优秀的开源库(可以参考LZ之前写的这篇文章)
FDStackView(这个项目通过巧妙的方式用自己的一套实现在非的iOS 9中替换了UIStackView的链接和实现,让我们可以在低至iOS 6中的系统上使用UIStackView,并且保持和最新的的iOS 9上同样的用法和语法)
AutolayoutExampleWithMasonry(有一系列的文章来讲明使用)
Stevia(简单,直观的纯代码自动布局类库,可以玩玩)
SDAutoLayout(例子比较丰富..仿微信朋友圈等)
弹出/弹出式视图
DOPDropDownMenu-Enhanced(类似美团的下拉选择菜单)
kxmenu(举例:点击微信app上的那个“+”弹出的视图)
NirKxMenu_swift(同上)
MMPopupView(基于弹出窗口的视图(例如警报表),可以轻松定制。)
DXAlertView(自定义动画效果的alertview,实现还是比较简单的)
SCLAlertView-Swift(美丽的动画警报视图,用Swift编写)
SweetAlert-iOS(用Swift编写的iOS实时动画警报视图)
PSTAlertController(兼容iOS7的XXAlertController,接口跟UIAlertController一层一样,高版本通用 - 另外这个作者可以关注一下,_)
JDStatusBarNotification(呈现在状态栏的通知视图)
BHBPopView / PopMenu / SinaWeiboLikeMenu(仿新浪微博点击“+”弹出的效果)
下拉刷新和上拉加载
MJRefresh(不得不说,小码哥的另一个好用的code)
CBStoreHouseRefreshControl(第一感觉就是,会玩)
PullToRefreshCoreText(半塘下拉刷新效果,刷新效果类似今日头条,不难实现)
PullToBounce_swift(用于UIScrollView的动画“拉取刷新”库)
PullToMakeSoup_swift(水煮沸动画...)
DGElasticPullToRefresh(皮筋式的下拉刷新动画)
refresher_Swift(一个常用的下拉即刷新列表工具类,提供开放接口定制刷新动态变换效果)
Infinity_Swift(完全支持自定义交互动画,一句话代码集成)
PeriscopyPullToRefresh(UINavigationBar刷新变化)
pull-to-refresh_Swift(通过一个UIScrollView的扩展,可以轻松为UIScrollView的所有子类添加下拉刷新功能)
FNMatchPull(Swift实现的火柴图案&火柴文字下拉刷新动效)
动画
awesome-ios-animation(一个非常棒的iOS动画列表,包括Objective-C和Swift库)
facebook / pop(facebook出品,必属精品)
KittenYang / Animations(动画小王子KittenYang,最近他还出了一本书,LZ也买了,很不错,研读中)
JHChainableAnimations(类masonry的链式语法,棒棒哒)
DKChainableAnimationKit_swift(同上,swift版本)
猎豹(Swift2 iOS上的简易动画库)
DCAnimationKit(适用于iOS的动画集合,简单,只需添加水动画)。
WaterWave(水波纹效果)
PulsingHalo(水涟漪动画)
IBAnimatable(支持在Interface Builder上配置个性化换场动画和手势)
图表/进度条/载入/ K线
aswesome-iOS-chart(精心设计的iOS图表库,包括Objective-C和Swift ...排在第一个的就是PNChart)
Scrollable-GraphView(灵动感十足的自适应,可定制滚动曲线(折)线图表库)
ios-charts(Android 图表开源库MPAndroidChart的Swift版)
MBCircularProgressBar(2/3圆进度条)
TYWaterWaveView(水波圆形进度控件)
Graphs_Swift(非常易用的轻量级图表绘制库)
MRProgress(收集iOS下拉式组件以显示进度)
UAProgressView(UAProgressView是一个简单而轻量,但功能强大的动画循环进度视图)
Win7LoadingBar(ios上的windows7风格的进度条)
YLProgressBar(UIProgressView替换为纯粹的Core Graphics中的高度可定制的动画进度条)
WSProgressHUD(举例:loading ...加载中...等进度蒙层)
MBProgressHUD(同上,比较火,很多app都用到了,当然有时间还是自定义好)
APESuperHUD(Swift的一个hud加载)
SCCatWaitingHUD(可爱的动画loading ...)
RWBarChartView(能够滑动的支柱形图表)
FeSpinner(各种装载动画)
FillableLoaders(灌水加载动画....)
WaveLoadingView(圆形波浪进度指示器类及演示(可配置参数丰富))
EZLoadingActivity(适合了Swift3.0的加载视图)
NVActivityIndicatorView(收集好的加载动画)
Y_KLine(iOS专业K线第一版:K线主副图,趋势图,成交量,滚动,放大缩小,MACD,KDJ等)
YYStock(整合了分时图,日周月K线图,五档图,长按,捏合缩放,全屏非全屏切换自适应)
CoreText
TTTAttributedLabel(图文混排...超链接... iOS7之后有了Textkit)
TYAttributedLabel (LZ项目用它,还解决了“截断”问题,类似于appstore介绍的“..更多”)
MLEmojiLabel(微信类似的自动识别网址号码邮箱和表情的标签)
ActiveLabel.swift(支持在Swift中编写的Hashtags(#),Mentions(@)和URL(http://)的UILabel 插件替换)
HYLabel_Swift(用于识别标签中的@用户 - 话题## - 链接)
TextAttributes_Swfit(链式语法,设置UILabel显示格式更容易)
SwiftyAttributes(处理AttributedString的链式语法,非常方便)
归属(同上)
音频视频
KRVideoPlayer(类似Weico的播放器,支持竖屏模式下全屏播放)
ESTMusicPlayer(类似于网易云音乐的完整Demo,值得一看)
KRVideoPlayer(类似Weico的播放器,支持竖屏模式下全屏播放)
TheAmazingAudioEngine(很多音频类APP应用这个框架作开发)
movielala(TVOS以及视频类的可以关注一下这几个作者)
VideoSplashKit_Swift(登录页面播放视频的制作)
ZFPlayer(基于AVPlayer,支持横屏,竖屏(全屏播放还可锁定屏幕方向),上下滑动调节音量,屏幕亮度,左右滑动调节播放进度)
GCD /通知
RunKit(针对GCD框架的一个友好访问封装库,支持方法链式调用)
异步(Swift中的语法糖用于Grand Central Dispatch中的异步调度,封装了系统的GCD,提供的接口简洁方便)
SwiftNotificationCenter(基于协议的通知中心)
字符串/ CGFloat的/ INT /双
格式(针对数字,货币,地址及颜色的格式化工具库)
Surge(基于苹果Accelerate高性能计算框架库,计算效率提升惊人)
SwiftString(这段 String扩展功能很丰富,无论格式化杂乱字符串,还是子串查找,亦或是格式转换都很强大)
日期
SwiftDate(特别完整,强大的日期操作管理类库。它几乎涵盖了已知开源日期类库的所有优秀特性)
SwiftMoment(时间和日历函数封装库)
分类
iOS-Categories(iOS中的各种Objective-C Category,扩展iOS框架的基础,UIKit,CoreData,QuartzCore,CoreLocation,MapKit等有用Objective-C类别的集合)
EZSwiftExtensions(同上swift版本)
ExSwift(同上,很久没更新了,在Swift2.0中各种报错)
UITableView-FDTemplateLayoutCell(阳神出品,cell动态高度必备,就算你不支持iOS7,iOS8 +虽然可以自动计算高度,但重复计算cell高度也会让你需要用到的)
ESSeparatorInset(一行代码移除UITableView分割线左边的默认的间距)
SwiftDate(Swift中的简易NSDate管理)
SigmaSwiftStatistics(各种数学计算)
jrswizzle(方法swizzling很简便)
工具
iOS-Runtime-Headers(查找那些方法属于publie / private / dylib)
PleaseBaoMe(在应用程序运行过程中在Web浏览器中查看SQLite文件的有用工具。)
xctool(自动打包)
xcode-snippets(代码块,比如你需要经常写tableview的代理方法,可以把他们做成你常用的代码块)
Proposer_Swift(它能以单个API处理的iOS上的权限请求,以便使用前确认可访问“相册”,“相机”,“麦克风”,“通讯录”或“用户位置”。)
Permission_Swift(统一的API请求iOS本地设备及资源权限类库)
FlagKit(这个库包含了设计漂亮,风格统一的一套旗帜,并且按照国家代码进行了编排,使得我们可以很容易地使用用户设备语言来选择和显示对应的旗帜,十分方便)
CryptoSwift(纯swift写的“MD5”,“BASE64”等加密库)
BeautyAddressBook(通讯录...)
Facebook Tweaks(不需要重复编译微调UI和动画)
R.swift(获取强大的类型,自动完成的资源,如Swift项目中的图像,字体和细分,谁用谁知道)
SwiftGen(用于生成Swift代码的Swift工具集合(用于资产的枚举,故事板,Localizable.strings,...))
Shark_swift(将.xcassets文件夹转换为类型安全枚举的Swift脚本)
SwiftyBeaver(日志输出,颜色变换/快速)
LxDBAnything(日志输出,非常的直观和好用)
SwiftVerbalExpressions(有助于构建困难的正则表达式 - 从令人敬畏的JavaScript VerbalExpressions移植过来)
Every.swift(封装的定时器库,使用很便捷)
Localize-Swift(国际化设定,很好用的库)
FBRetainCycleDetector(iOS库帮助检测运行时的保留周期。)
单元测试
Quick(用于Swift中的单元测试)
Kiwi(objective-c语言的测试框架,最流行的BDD测试框架)
KIF(一个开源的用户界面UI测试框架。使用KIF,并使用iOS中的辅助功能API,您将能够编写模拟用户输入,例如点击,触摸和文本输入,自动化的UI测试。
specta(objective-c语言的测试框架,用的人多)
网络状况监测
钥匙扣
Xcode插件
Alcatraz(Xcode的软件包管理器,有它装插件实在是太方便了)
RTImageAssets(一个Xcode插件可自动为@ 3x图像生成@ 2x,@ 1x图像或从@ 2x自动生成@ 3x图像)
FuzzyAutocompletePlugin(没它都不会写代码了...不过XCode7.3自带了...)
ClangFormat-Xcode(Xcode插件以在Xcode中使用clang格式,并与Clang一致地格式化您的代码)
ZLGotoSandboxPlugin(从xcode中快速跳转到沙盒)
SBShortcutMenuSimulator(模拟器中的3D Touch快捷方式)
ESJsonFormat-Xcode(将JSON格式化输出为模型的属性,配合MJExtension很不错)
JSONExport(JSON格式转objc,swfit等格式模型)
Peckham(快捷引入头文件)
injectionforxcode(超级强烈的推荐,只需要ctl + =你就能刷新改动代码效果)
FLEX(LLDB式的调试工具,界面可视化)
JSPatchX(如其名)
mac插件
Cakebrew(Homebrew量身定做的图形界面应用,可以方便查看Homebrew下载过的软件包具体信息,并可对其进行安装,卸载等操作)
书籍
iOS Core Animation:Advanced Techniques中文译本
ParseSourceCodeStudy(Facebook开源的Parse源码分析系列)
李智维的PPT分享(涉及单元测试和的WebSocket)
LearnRxSwift(淀青的RxSwift教学)
他人推荐
thirdToos(妹子..)
Github上上关于iOS版的各种开源项目集合 - 总有一款适合你
完整的开源项目
Yep_Swift(凯文周新作,纯斯威夫特)
Coding-iOS(Coding-iOS客户端)
phphub-ios(phphub-ios客户端)
TSWeChat_Swfit(swift仿写微信客户端)
ZFZhiHuDaily_Swift(知乎日报仿写)
30DaysofSwift(30天30个小样)
MessageDisplayKit(仿微信的应用程序)
react-native-gitfeed(另一个Github客户端用react-native编写)。
jchat-swift(简单几步,换一个logo和名字即可拥有自己的IM)