首先推荐一个GitHub账户start项目查看器dashboard
一、音频、及时通讯
1、码农人生
1)、音频学习
An XMPP Framework in Objective-C for Mac and iOS。现在做个实时聊天,XMPP协议算是很成熟的方案了。XMPPFramework一个很不错的选择,可以直接和OpenFire服务器打交道。项目不大人手不多的话,可以看看这个。
二、动画
1、动画学习
IOS动画总结:本案例主要实现的IOS侧滑菜单、IOS基础动画、关键帧动画、组动画、过渡动画和三个综合案例(仿造Path菜单,仿造dingding菜单,和烟花点赞效果等功能)。
2)、JazzHands
Jazz Hands是UIKit一个简单的关键帧基础动画框架,可通过手势、scrollView,kvo或者ReactiveCocoa控制动画。非常适用于APP初次使用时的介绍和引导信息。
学习动力学动画的11个Demo
4)、awesome-ios-animation awesome-animation pop Animations JHChainableAnimations AwesomeMenu
常见动画总结
2、TableView动画
QuickRearrangeTableView TableView移动动画
3、slideIn动画
启动动画,一句代码即可集成,4种效果可选.
5、水波动画
KYWaterWaveView实现波浪正弦动画并带有小鱼跳跃溅起水花。
6、Label动画
UICountingLabel 数字动态化
7、卡片式交互
8、Bubble效果
9、点赞动画
10、图片变化动画
11、button动画
12、gif动画
13、加载动画
三、日历、时间、日期
1、日历
2、日期
1)、
四、进度加载框、提示框
快速为UIView添加通知标记,标记可带有弹动效果,可自定义标记的颜色和位置。
2、JHUD
6、TYWaterWaveView水波纹
7、MBCircularProgressBar UAProgressView环形进度
9、Win7LoadingBar YLProgressBar长条型进度条
五、键盘
一个简单的iOS数字输入键盘:MMNumberKeyboard,可选支持小数点。
emoji表情键盘/信息输入框
六、视频、音频
1、视频
1)、ZFPlayer
基于AVPlayer,支持横屏、竖屏(全屏播放还可锁定屏幕方向),上下滑动调节音量、屏幕亮度,左右滑动调节播放进度
类似Weico的播放器,支持竖屏模式下全屏播放 。
3)、ijkplayer
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
登陆页播放视频
2、音频
类似于网易云音乐的完整Demo,值得一看
很多音频类APP应用这个框架作开发
七、布局
无需配置,没有代码侵染,扔到工程里后直接用系统 UIStackView 的 API 即可,同时兼容 Storyboard 。
1.1、BSImagePicker
2、Masonry
Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性。
一行代码对xib或者storyboard上的所有UI控件智能识别约束关系,并自动添加好相应约束条件;masonary拥有的功能WHC_AutoLayoutKit都有,同时包含一行代码计算Cell高度使用比masonary更方便快捷;拥有UIStackView(WHC_StackView)功能使用更简单直接;新增api 2.0 兼容masonary用户使用习惯一行代码进行布局
一套功能强大的iOS布局库,他不是在自动布局的基础上进行的封装,而是一套原生的基于对frame设置的封装,通过重载layoutSubview函数来实现子视图的布局,因此可以无限制的运行在任何版本的iOS系统中。
5、介绍自动布局的博客
八、导航栏、导航切换、tabVC
当控制器做Push/Pop时无缝、平滑地显示、隐藏、扩展导航栏。
2、模态
ZFDragableModalTransition 自定义动画展示模态视图控制器,可从左边、右边或者底部推出模态视图。
CNPPopupController 底部弹出视图
入栈太深不好返回最初的VC,可以试试这个
4、手势切换
FDFullscreenPopGesture 全屏POP手势动画,包含带顶栏标题和不带顶栏标题两种。
最低只需传两个数组即可完成主流App框架搭建,【低耦合集成TabBarController】
6、转场动画(包括collectionview)
RMPZoomTransitionAnimator collectionview相关的转场动画
HYBControllerTransitions 自定义转场动画API封装类库,使用简便。使用者不需要了解太多转场动画知识,即可轻松接入项目使用。
TKSubmitTransition 提交按钮相关的转场动画
九、图片选择、图片模糊、相机使用、图像处理
集成图片选择、图片浏览、相机连拍的一套图片库
MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。它同时依赖DACircularProgress ,MBProgressHUD ,SDWebImage,所以为了功能单一化,尽量不要使用这个库了。
图片浏览器:方便易用的相册多选框架,支持预览/相册内拍照、预览快速多选相片,单选gif及video;相册混合选择;原图功能;支持多语言国际化(中文简/繁,英语,日语);在线下载iCloud端图片;自定义最大选择量及最大预览量;自定义照片升序降序排列;自定义照片显示圆角弧度
4、图片浏览器
oc: IDMPhotoBrowser
swift:SKPhotoBrowser ImageViewer
5、图片选择
oc:CTAssetsPickerController QBImagePicker CorePhotoBroswerVC BSImagePicker ImagePickerSheetController ALCameraViewController
swift:BSImagePicker ImagePicker
模糊背景类库, 可以方便的根据底层显示的状态生成模糊效果。
7、相机使用
DBCamera DBCamera is a simple custom camera with AVFoundation
8、图像处理
1)、GPUImage
如果你要做图像(照片或者视频)的相关处理 或者只是简单的想做个像Camera360一样的拍照滤镜 那么你一定要研究一下GPUImage。如它的名字所述 GPUImage是基于GPU的图像处理框架 我们都知道 GPU是提升性能的关键 这也就是GPUImage如此重要 如此受欢迎的原因。
九.一、网络加载图片
1、图片加载,并有动画
PINRemoteImage 支持swift和oc
3、Kingfisher swift,这个项目深受SDWebImage的欢迎
5、Nuke
十、网络
1、网络状态检测
Reachability 可达性
YTKNetwork 是猿题库 iOS 研发团队基于 AFNetworking 封装的 iOS 网络库,其实现了一套 High Level 的 API,提供了更高层次的网络访问抽象。
2.2、Pitaya
从 Alamofire 和 JustHTTP 偷了一些创意和代码。看看就行。
下拉刷新框架:一行代码搞定。其他还有DGElasticPullToRefresh(皮筋式的下拉刷新动画)
转换速度快、使用简单方便的字典转模型框架。其他框架还有mantle 、YYModel
5、加载框
FeSpinner 等待加载的精美过度界面
6、网络监测
NetworkEye NetworkEye是一个网络调试库,可以监控App内HTTP请求并显示请求相关的详细信息,方便App开发的网络调试。可以检测到包括网页,NSURLConnection,NSURLSession,AFNetworking,第三方库,第三方SDK等的HTTP请求,非常方便实用。并且可以统计App内流量
7、json转模型类型的插件,或桌面程序
1)、JSONExport
JSONExport is a desktop application for Mac OS X which enables you to export JSON objects as model classes with their associated constructors, utility methods, setters and getters in your favorite language.
XCode插件,通过Alcatraz安装
十一、蓝牙
十二、自定义组件
1、按钮
DownloadButton 是可自定义的 App Store 风格的下载按钮。可自定义设计组件,用 IB 进行编辑。
2、UISlider
ASValueTrackingSlider 是 UISlider 的子类,即时显示了滑块的指示数字,可进行各种效果定制。示例可参考示例
3、弹出框
1)、MMPopupView
MMPopupView 就是弹出框的基类 所有的弹出框只要继承自这个类 就具备了显示的能力 用户只要关注于弹出框本身的表现就行了。
4、Alert
2)、CXCardView
3)、LGAlertView
5、ActionSheet
6、webView
7、小红点
8、switch button
9、通知
10、标签视图
11、分类、类别
JKCategories 常用的各种分类
十三、图表
1、PNChart
较为简单易用的图表框架,作者是秒视CEO
2、常用图表介绍
3、k线
十四、菜单
1、顶部菜单切换
YZDisplayViewController 顶部标题切换界面效果,并且带有非常炫酷的效果,利用点时间给广大的攻城狮们提供了这样一个框架,集成了当前比较主流的几种效果,网易新闻(字体缩放+颜色渐变),今日头条(颜色填充),喜马拉雅,糗事百科(下标),腾讯视频(蒙版)等。
HAHAKea/HACursor 一个对横向ScrollView中的视图进行管理的UI控件。只要几行代码就可以集成类似于网易新闻对主题页面进行排序,删除操作的功能。
SLPagingView 类似Twitter选项栏
GuillotineMenu 自定义推的顶菜单栏,刀砍式转场动画
2、侧滑菜单
3、弹出菜单、下拉菜单
kxmenu类似微信点击加号弹出的选项视图
LMDropdownView下拉菜单
JSDropDownMenu DOPDropDownMenu-Enhanced类似美团首页下拉菜单
4、树形菜单
5、文本操作菜单
QBPopupMenu文本长按后的拷贝等操作
5、
6、
十五、进度加载框、提示框
实现了很多种样式的提示框。
3、加载框
FeSpinner等待加载的精美过度界面
4、Toaster
比ProgressHUD多了点动画
比ProgressHUD多了点动画
十六、切面编程、响应式(链式)编程
1、Aspects
Aspects是Cocoa中面向方面编程的简单开源库,你可以通过它为现有的类的方法或者实例添加代码,同时考虑插入点位置,比如before/instead/after。Aspects比常规的方法混用更为简单。
1.1、jrswizzle
方法swizzling很简便
RxSwift 和 ReactiveCocoa 中的 functor、applicative、monad 感到困惑不解?没关系,那些概念太复杂了,以至于并没有多少人真的在实际项目中使用它们。有没有简单易用的响应式编程方式呢?EasyReact 就是为此而生的,来试试吧。
5、PromiseKit swift与oc
十七、数据存储、数据持久化
将数据直接使用Key-Value式的存储到。
2、钥匙串(keychain)
SAMKeychain Simple Objective-C wrapper for the keychain that works on Mac and iOS
十八、MVC、MVVM
1、HZExtend
应用快速开发架构集合了MVC和MVVM的:1.减少控制器压力以及耦合;2.带有请求状态(请求中,请求后,无网络)的网络框架;3.无网仍有数据的缓存体系;4.与表映射能操作数据库的Model;5.支持URL跳转
十九、XCode插件、MAC使用
工具说明:可以把json或者xml字符串自动生成模型类.m和.h文件内容剩出创建模型类的麻烦而且零错误率大大提高了开发效率
2、Mac使用
如何配置一个高效的 Mac 工作环境
对于每一个iOS开发者而言,iOS-Runtime-Headers这个iOS运行时头文件项目绝对值得收藏。除了iOS运行时头文件之外,iOS-Runtime-Headers还附带搜索及版本对比功能。通过它,开发者可以调用苹果允许调用及禁止的一切函数。
4、xctool
自动打包。
超级强烈的推荐,只需要ctl + =你就能使模拟器展示代码效果
6、Cakebrew
Homebrew量身定做的图形界面应用,可以方便查看Homebrew下载过的软件包具体信息,并可对其进行安装,卸载等操作
二十、适配
二十一、学习资料
johnlui博客文章整理。
2、iOS-Core-Animation-Advanced-Techniques
动画学习知识点
iOS生态系统的精选列表,包括Objective-C和Swift项目
二十二、图文混排
2、MLLabel
5、YYText
8、
二十三、手势
1、手势密码
二十四、轮播
1、轮播图
3)、iCarousel 高度可定制,效果很炫酷
二十五、scrollView
1、MediumScrollFullScreen AMScrollingNavbar TLYShyNavBar
功能栏滚动隐藏
scrollview上滑时隐藏topview
3、欢迎界面、引导页
LGSublimationView Onboard KDIntroView BWWalkthrough
可以滑动的页面视图
5、带头视图
APParallaxHeader 带头视图,且下拉放大
ARSegmentPager 带头视图
UINavigationBar颜色变化的十分优秀的解决方案
二十六、tableView
滚动的时候cell有视差
2、cell侧滑菜单
SWTableViewCell 包括左滑、右滑
MGSwipeTableCell 包括左滑、右滑
二十七、collectionview
UICollectionView替代UITableView,甚至更像Parallax Header,Sticky Section Header,适用于iOS 7.
2、CKWaveCollectionViewTransition
Cool Wave实现两个UICollectionView跳转间的过渡
实现了cell在滚动时吸附在顶端并且之后的单元在其上方覆盖的效果
二十八、书籍
2、中文版 Apple 官方 Swift 教程《The Swift Programming Language》
3、iOS9适配教程 iOS11AdaptationTips
4、Facebook开源的Parse源码分析 说明了线程的高级用法
5、我的职业是前端工程师 repractise 全栈增长工程师指南 全栈增长工程师实战 一个全栈增长工程师的练手项目集 自己动手设计物联网 架构应用开发指南
7、李智维的PPT分享(涉及单元测试和的WebSocket)
8、LearnRxSwift(淀青的RxSwift教学)
二十九、常用UI效果
1、Material-Controls-For-iOS 类安卓效果
2、awesome-ios-ui 常用UI效果
3、fantastic-ios-animation 常用UI效果
4、FlatUIKit 常用UI效果
一些相关的iOS的Demo汇总,比如:一些关于navigationBar的非常规的但是较为实用的操作,包括利用毛玻璃、动态透明、动态隐藏,以及头视图的动态缩放,并同时涉及了statusBar的动态设置(换色)。
三十、测试
1、Quick
The Swift (and Objective-C) testing framework.
2、Kiwi
Simple BDD for iOS
3、KIF
一个开源的用户界面UI测试框架。使用KIF,并使用iOS中的辅助功能API,您将能够编写模拟用户输入,例如点击,触摸和文本输入,自动化的UI测试
4、specta
A light-weight TDD / BDD framework for Objective-C & Cocoa
三十一、二维码、条码
zxing是Google出品的二维码扫描组件 原本是Java编写的 现在也有了各种语言的移植版 而ZXingObjC就是其中之一zxing支持各种主流的一维码二维码扫描 简单易用 小厂如果要实现二维码扫描这个功能 基本都会选择zxing。不过iOS7已内置了二维码摄像头扫描 而iOS8也已内置了二维码静态图扫描 以后可能再也不需要用到ZXing了
三十二、日志、调试
A fast & simple, yet powerful & flexible logging framework for Mac and iOS。CocoaLumberjack是个Log工具,号称是可以提供企业级Log,使用者也挺多。
2、NSLogger
从名字可以看出 NSLogger也是一个log系统 其特点是附带了一个功能强大的Desktop Viewer 可以让你方便的查看APP产生的日志(支持分级筛选等等 甚至可以直接log一张图片)
3、调适
1)、PonyDebugger Remote network and data debugging for your native iOS app using Chrome Developer Tools。PonyDebugger看上去是一个不错的调试工具,可以在电脑浏览器上远程调试iOS程序、查看试图层次、网络等等。
2)、FLEX
An in-app debugging and exploration tool for iOS。(LLDB式的调试工具,界面可视化)
三十三、socket
CocoaAsyncSocket无疑是目前封装得最完善的Socket库了:支持异步TCP/UDP,支持GCD,Objective-C接口封装。
###、未分类
1、talk-os
简聊开源版。简聊所有业务代码的开源版本,可作任意修改。简聊 - 产品项目包含了简聊由开始到现在的所有开发历程,设想,和设计资源.
2、SXNews
模仿网易新闻做的精仿网易新闻 。
一个类似微信App的IM应用,拥有发送文字、图片、语音、视频、地理位置消息,管理本地通信录、分享朋友圈、漂流交友、摇一摇和更多有趣的功能。
4、TableView优化
VVeboTableViewDemo VVebo剥离的TableView优化方案的demo
主题切换demo
可移动的标签demo