构建自己的服务器有什么好处呢?

构建自己的服务器有什么好处呢?笔者总结了几点:
1.如果公司不通外网,同样能解决即时通讯的问题。
2.服务器设置到公司内部,不受外界影响(即可以避免这次的断网所带来影响)。
3.服务器设置可以便于备份数据,也就是一切交流的数据都可以保留到服务器里方便随时提出来使用(同样也对员工起到监督的作用,因为所有的聊天记录管理员都是可以调出来的)。

即时通讯 www.freeeim.com

Android多模块构建合并aar解决方案

前段时间,我在实现gradle多模块构建遇到一个问题,以前我们基本上是以jar包形式让开发者集成到工程中使用,但自从Android Studio中有了多module的概念,而我们的SDK也是分了多个模块进行构建的,但我们这里有个问题就是模块之间是相互关联的,不能针对每个模块单独打包,而每个module都会生成对应的aar,但并不会把依赖的module代码打进去,别问我为什么知道,你将aar后缀改为zip,然后反编译classes.jar就可以看到。所以我们这边就有了合并aar这样的一个需求,下面就告诉大家怎么来实现。

android-fat-aar

当时我遇到这个问题,就去github搜了一下,已经有人将合并aar的脚本开源出来了,开源地址如下:

https://github.com/adwiv/android-fat-aar

什么是aar?

什么是aar?它跟jar包有什么区别?它该怎么样使用?相信大家一定会有这些疑问。首先aar是针对Android Library而言的,你可以理解为IDE针对Android Library的打包,一个aar包含什么东西?
它的文件后缀名是.aar,它本身是一个zip文件,强制包含以下文件:

/AndroidManifest.xml
/classes.jar
/res/
/R.txt

另外,AAR文件可以包括以下可选条目中的一个或多个:

/assets/
/libs/name.jar
/jni/abi_name/name.so (where abi_name is one of the Android supported ABIs)
/proguard.txt
/lint.jar

具体看到这里看如何创建一个Android Library:
https://developer.android.com/studio/projects/android-library.html#aar-contents

jar包跟aar包有什么区别?
jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
aar:包含所有资源,class以及res资源文件全部包含。

如果你只是简单实用一些类库,你可以直接使用*.jar文件,而如果你想既想使用类库,又想实用资源,那么你就可以创建一个Android Library,使用它生成的*.aar文件。

jar文件的使用方式我们应该比较熟悉了,将它复制到工程的libs目录下,然后在gradle中添加以下脚本:

dependencies {
compile fileTree(include: [‘*.jar’], dir:’libs’)
}

aar文件使用同样需要复制到libs目录下,并按照以下方式集成:

repositories {
flatDir {
dirs’libs’
}
}

dependencies {
compile(name:’your aar’, ext:’aar’)

多模块构建合并aar

这个是本文的重点,我们可以再每个module下的build/outputs/aar下找到编译生成的*.aar文件。

步骤1:
将gradle文件’fat-aar.gradle’到你的项目目录,然后apply:

apply from: ‘fat-aar.gradle’

步骤2:定义嵌入的依赖关系
你需要修改你以前依赖项,并将compile更改为embedded,作为你想要合并的aar。使用例子如下:

%title插图%num

通过以上的方式你可以将多个module生成的aar合成一个,大家可以新建一个demo工程来测试下

%title插图%num

拥有一台云服务器可以干什么?

天我们在互联网上的所有应用,都是部署在服务器上,就连如今应用领域火热的容器技术及Serverless应用,底层都离不开服务器,无非是选择物理服务器还是云服务器的差别而已。

那么我们拥有一台云服务器可以做什么呢?

如果技术过关,我们可以做如今互联网上所有应用的贫民版,至于有多贫,那得看技术水平及服务器能支持的贫困等级,但很多复刻对我们来说除了娱乐之外,毫无意义,今天就简单分享几个有意义的玩法:

1、搭建个人博客

也许有人说,这都什么年代了,还搭建个人博客,微博、微信以及各种自媒体,还不够你分享吗,有啥意义呢?

我告诉你意义大的去了,无论你是网络写手还是技术爱好者,拥有个人博客,你可以自由的发挥自己的才能,同时通过公域流量的方式将自己的内容分享出去,作为自身业务知识积累,并作为自媒体的引流平台,很多搞开发或运维的站长,多年来一直维护自己的网站,当有任何一个新媒体崛起时,都可以借助在自己博客的内容积累快速积累起先发优势。
%title插图%num

2、搭建CPS推广网站

什么是CPS推广呢?我们一句话概括:参考实际的销售量进行收费,*常见的就是淘宝客,你帮助淘宝卖家推广,淘宝卖家给你分享佣金,这个特别适合大学生及宝妈,可以将自己的空闲时间转化为金钱。

当然,CPS推广网站也需要自己去搭建,如果不懂搭建的同学,可以参考刚才个人博客的搭建方法,找对wordpress主题,装修一个漂亮的淘宝客网站,没一定问题。

有人可能会问,货源怎么来?

使用自己的淘宝账号登录淘宝联盟,你会看到大量的可推广商品,这些就是你推广网站的货源。

3、游戏私服

对于游戏爱好者来说,如果服务器配置还不错,例如2核4G以上的服务器,可以轻松的搭建一个游戏私服,满足10个、8个人玩是没问题的,特别适合于大学宿舍一块玩游戏,同时如果对游戏搭建有兴趣,也可以借此好好的学习一下游戏搭建及简单运营。

4、个人网盘

我们平时使用的网盘常用的如百度网盘,但大家都知道,自从Pandownload被封以后,百度网盘的下载速度更慢了,对于经常有大文件需要下载的用户来说,除了购买会员,别无选择。

当你有台服务器时,你就多了一个选择,那就是可以自己搭建网盘。

%title插图%num

5、搭建私有云笔记

云服务器能做的还有很多,今天就先分享到这里,如果你暂时还么有服务器,那么腾讯云*近的活动服务器值得推荐,腾讯云*近推出的年中特惠活动,1核2G1M低至99元/年,4核8G5M带宽低至1099元/年,活动链接可参考:

精选秒杀 – 腾讯云1核2G1M低至99元/年​cloud.tencent.com

阿里云ACP认证考试心得一次通关—云计算篇

入门常见问题:
问题1:是否需要考ACA?
答:个人建议是还是要考一下,因为考试前需要熟悉下ACP的出题思路,ACA是采取线上考试的方式,600元的考试费还赠送课程其实很划算,也算是一个模拟训练。此外,通过ACA考试后有证书,对自己继续考ACP也是个鼓励。

问题2:ACA和ACP的区别?
答:个人参与下来ACA更偏向于理论一些,而ACP除了理论外应用场景的考题明显比ACA要多,原理方面的考题,难度上ACA和ACP是差不多的。

考试复习注意事项
云计算ACP考试的内容,ECS、RDS、SLB、OSS、CDN、VPC、弹性伸缩、基础知识。

基础知识:
云计算ACP的基础知识部分大部分考题集中在网络方面,并不难,常见的端口要了解,比如TCP/IP、HTTP、HTTPS、FTP、UDP等的常用端口,考题数量并不少并且查阅一下就可以拿分的。

ECS(云服务器):
ECS是云计算ACP考试中的重中之重,网上看到有文章说每个部分的分数比例是多少,其实关心这个没有任何意义,因为云计算是一个整体,考题也一样,属于你中有我我中有你的关系。ECS当然确实考题比例是*多的,但是不是难点,在复习时需要仔细阅读文档,理解之外需要记住一些数值。这里简单的列举一些考试会考到的内容,安全组是什么?安全规则又是什么?安全组和安全规则之间的关系?*大多少个安全组?每个安全组*多配置多少条安全规则?这几个问题搞明白了基本安全组和安全规则的分数能够拿下。ECS作为云服务器配置当然也是考试的重点,这一部分内容需要查阅考试当时的文档资料,比如目前的ECS实例*大多少核?云盘有几种?ECS实例根据应用场景分为几类?因为网上有个600题的文件被广为流传,但是500题的时间比较久了,所以ECS和云盘的情况已经发生了很大的变化,不能照搬600题的答案。特别特别注意地域(REGION)和可用区(ZONE)的区分,仔细阅读文档,哪些情况可以跨不同可用区,哪些可以跨地域,这类考题贯穿整个ACP考试的各个模块并且比较容易搞错。

RDS(云数据库):
个人感觉RDS的考题是*少的,在RDS上注意一下应用场景就可以拿到大部分分数,重点在于区分和OSS在应用上的不同。

SLB(负载均衡):
负载均衡是另一个集中考点,*重要的和ECS一样,区分地域(REGION)和可用区(ZONE)的区别。混挂和混访的概念要搞明白,两种常用的负载均衡的区别如四层负载均衡(LVS)和七层负载均衡(TENGINE)以及他们转发的协议的不同。健康检查的注意事项,对于ECS的健康检查是怎么完成的等等。

OSS(云存储):
共享存储因为概念比较简单,所以反而容易被忽略。在应用场景得考题中着重考查和RDS的区分,这些考题比较容易的,相对来说难点在于上行流量和下行流量的计费上,也就是ECS和OSS的传输过程对于流量的计费方式的不同,不同的本质其实还是因为地域和可用区的原因。OSS内部BUCKET和PROJECT的数量和隶属关系也是常考的重点。

CDN(内容分发网络):
内容分发网络是一个难点,应用场景考题同样很容易。但是原理很难,主要注意阿里云全世界有多少个地域可以作为内容分发节点,这个很重要。

VPC(专有网络):
VPC主要区分,公有云、私有云和混合云的不同。公有云和私有云区分非常简单,所以常见的考题集中在混合云上,比如什么时候需要采用专线,什么时候用*,本地IDC和云之间怎么通信等。

弹性伸缩:
除了ECS外,弹性伸缩的考题*多,但是其实很容易拿分。弹性伸缩概念很容易掌握,主要注意的点和ECS一样需要仔细阅读文档,了解弹性伸缩的配置要点,比如自动配置情况下的问题,手动配置情况下的问题。举例就是配置不同的ECS能否配置弹性伸缩?只要掌握两个核心,手动和自动,了解明白它们之间的区别,那这部分内容得分是比较容易的。
————————————————
版权声明:本文为CSDN博主「星速云」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wx_15323880413/article/details/109077144

Siri触发器原理及改进

语音触发器
Hey Siri
“Hey Siri”功能允许用户启动Siri。一个很小的语音识别器一直在运行并监听这两个单词。当它检测到“Hey Siri”时,Siri将余下的语音作为命令或查询进行解析。“Hey Siri”探测器使用深度神经网络(DNN)将每个时刻的声音的声学模式转换为语音声音的概率分布。然后,它计算你所说的短语是“Hey Siri”的可能性分数。如果得分足够高,Siri会被唤醒。

%title插图%num

图1. iPhone上的Hey Siri流程
如图1所示,整个系统有几个部分。Siri的大部分实现都是“在云端”,包括主要的自动语音识别,自然语言解释和各种信息服务。还有一些服务器可以提供检测器使用的声学模型的更新。我们主要关注探测器:一个专门的语音识别器,它只关注“Hey Siri”。

监听“Hey Siri”
iPhone中的麦克风以每秒16000的速度将您的声音转换为瞬时波形样本流。频谱分析阶段将波形采样流转换成一系列帧,每帧描述约0.01秒的声谱。将这些帧中的大约20个(音频为0.2秒)送到深度神经网络(DNN),其将这些声学模式中的每一个转换成一组语音类别的概率分布:用于“Hey Siri”的短语,再加上沉默和其他的讲话,总共约20个音类。如图2。

%title插图%num
我们选择DNN的每个隐藏层中的单元数量,以适应​​“Hey Siri”检测器运行时可用的计算资源。我们使用的网络通常具有五个隐藏层,所有这些层都是相同的大小:32,128或192个单元,具体取决于内存和功率的限制。在iPhone上,我们使用两个网络,一个用于初始检测,另一个用作辅助检查器。初始检测器使用的次数少于辅助检查器。
假设我们使用的是*小的DNN,则可以通过查看表示不同阶段声学信号的图3来更好地了解探测器的工作原理。*底部是麦克风波形的光谱图。在这种情况下,有人在说“Hey Siri What…”更明亮的部分是这个短语中*响亮的部分。Hey Siri模式是在垂直的蓝线之间。

%title插图%num
从底部向上的第二个水平条显示了用梅尔滤波器组分析相同波形的结果,其基于感知测量给出频率的权重。由于声道的精细结构,这种转换使光谱图中可见的细节变得平滑:或者是随机的,如在/s/中,或者是周期性的,在这里被看作垂直条纹。
标记为H1至H5的交替的绿色和蓝色水平条显示了五个隐藏层中的每一个单元的数值(激活)。已经为这个数字安排了每层的32个隐藏单元,以便将具有相似输出的单元放在一起。
下一条(有黄色斜线)显示声学模型的输出。在每一帧中,短语中的每个位置都有一个输出,另外还有一些输出用于静音和其他语音。

双通道检测
“Hey Siri”探测器不仅要准确,而且需要快速,对电池寿命没有显着影响。我们还需要*大限度地减少内存使用和处理器需求,特别是处理器需求峰值。
为了避免整天运行主处理器来监听触发短语,iPhone的Always On Processor(AOP)(一个小型​​,低功耗的辅助处理器,即嵌入式运动协处理器)可以访问麦克风信号(6S及更新机型)。我们使用AOP有限处理能力的一小部分来运行具有小型声学模型(DNN)的探测器。当分数超过阈值时,运动协处理器唤醒主处理器,主处理器使用更大的DNN来分析信号。在支持AOP的*个版本中,*个探测器使用了一个有5层32隐藏单元的DNN,第二个探测器有5层192个隐藏单元。

%title插图%num
人脸触发器
概述
Hey Siri是一种基于语音识别的触发器,通过识别固定的关键字“Hey Siri”来触发Siri。基于人类固有的对话方式,提供另一种Siri触发器(Face Siri)。Face Siri通过判定使用者注视iPhone,进而触发Siri。

人类对话
假设场景,张三与李四对话,有以下两种方式:
1、 如图5所示,张三呼叫李四名字,并与李四建立一次对话。
步骤1:张三说:“李四”。
步骤2:李四听到后回答:“在”。
步骤3:张三问:“吃了吗”?
步骤4:李四回答:“吃过了”。
Hey Siri触发器类似于此种模式。iPhone监听到Hey Siri, 启动Siri并完成后续服务。

%title插图%num
2、 如图6所示,张三和李四看向对方,并建立一次对话。
步骤1:互相看向对方。
步骤2:张三问:“吃了吗”?
步骤3:李四回答:“吃过了”。
基于此种人类已有的对话模式,提供一种新的触发Siri的模式,并不需要喊出那个固定的关键字“Hey Siri”。

%title插图%num

Face Siri
如图7所示,使用者通过注视iPhone来启动Siri。
步骤1:使用者注视iPhone。使用者面部正对iPhone,并保持张开眼睛看向iPhone。
步骤2:判断是否注视iPhone。通过DNN判断摄像头获取图片的人脸占比是否超过阈值,眼睛是否张开。
步骤3:判断超时之前是否接收到语音。若有效时间内监测到有效语音输入,则触发Siri并等待语音输入完成。
步骤4:解析语音。Siri将语音输入解析为命令或者查询并提供服务。

%title插图%num

小型机和服务器有何区别?

小型机是指运行原理类似于PC(个人电脑)和服务器,但性能及用途又与它们截然不同的一种高性能计算机,它是70年代由DCE(数字设备公司)公司首先开发的一种高性能计算产品。

小型机具有区别PC及其服务器的特有体系结构,还有各制造厂自己的专利技术,有的还采用小型机专用处理器,比如美国Sun、日本Fujitsu(富士通)等公司的小型机是基于SPARC处理器架构,而美国HP公司的则是基于PA-RISC架构;Compaq公司是Alpha架构。另外I/O总线也不相同,Fujitsu是PCI,Sun是SBUS,等等。这就意味着各公司小型机机器上的插卡,如网卡、显示卡、SCSI卡等可能也是专用的。此外,小型机使用的操作系统一般是基于Unix的,像Sun、Fujitsu是用Sun Solaris,HP是用HP-Unix,IBM是AIX。所以小型机是封闭专用的计算机系统。使用小型机的用户一般是看中Unix操作系统的安全性、可靠性和专用服务器的高速运算能力。

现在生产小型机的厂商主要有HP、IBM、SUN、浪潮、曙光等.它们的主要特色在于年宕机时间只有几小时,所以又统称为z系列(zero 零)。AS/400主要应用在银行和制造业,还有用于Domino,主要的技术在于TIMI(技术独立机器界面),单级存储,有了TIMI技术可以做到硬件与软件相互独立。RS/6000比较常见,用于科学计算和事务处理等。
----------------------------------------------

*大的区别就是可用性,服务器重要部件坏了就中止服务了,小型机要冗余或者集群,即使一些部件坏了,马上就会有冗余部件接管,不会宕机。

云服务器有什么作用?

云服务器有什么作用?
1.Web服务

对于有网站空间需求的 中小企业和个人建站来说,租用云服务器是个不错的选择。云服务器即买即用,拥有多种带宽选择,还可使用独立的IP,省钱而又享有独立主机的各种资源,满足中小企业网站发展需求。

2.Email邮件服务器

云服务器拥有高性能的数据处理能力,不仅能够储存数据,而且还能够快速的处理数据,所以云服务器用来作为Email邮件服务器使用也是一个不错的选择 。

3.小程序后端

在小程序的生产环境中,如果需要调用服务器的 REST API 或 Web Socket,服务器必须提供安全的链接地址。也就是说,服务器需要使用SSL加密数据。因此,我们需要在服务器中配置 SSL 加密。

4.APP后端

搞软件开发的人都知道,对于一些网络应用软件必须要租用服务器存放才能被更多用户使用。如一些应用于浏览软件、传输软件、远程登录软件等。如果是像以往那样租用物理机服务器,成本费用非常高昂。但是现在有云服务器的选择可以节约了不少成本。

云服务器其实和虚拟主机的作用差不多,但采用集群式的方式,让使用更加的安全。相比来说,使用起来也方便很多,而且灵活很多,但本质还是一样的。运算能力超强,用户通过电脑等方式接入数据中心,按自己的需求进行运算。提供了便捷的、高效的网络访问。搭配其他云计算资源即可轻松搭建IT架构,满足不同量级需求。

云服务器的特点:
1.稳定性和安全性高。云服务器采用分布式存储,支持云镜像,同时存储4份数据,确保数据安全性。

2.灵活性好。云服务器升级灵活,配置可以随意调节。

3.可靠性高。支持热迁移,支持快速故障迁移。

4. 自助服务性。支持在线重置服务器密码,支持多服务器内网连接,支持用户自主安装系统。

5. 支持负载均衡解决方案。

使用云服务器作用与好处:
1、多地域性覆盖

丰富的地域选择为业务保驾护航:华北、华东、华南三大地域全面覆盖国内业务需求,境外香港、北美、新加坡等地域满足业务出海需求。

2、稳定可靠

基于成熟的kvm虚拟化技术;提供99.95%服务可用性;提供配置更高、性能更强的二代 系列 , 以 及 标 准 型 、 高IO型、内存型、计算型等不同机型满足不同需求

3、高质量网络

BGP网络支持国内所有主流运营商接入,覆盖全国的*速公网体验;公网入口故障时跨域秒级调度

4、成本低廉

提供两种计费方式,满足不同应用场景-包年包月:平均单价较低,适合较长时间需要计算资源的用户;按量计费:适合秒杀大促等突发资源需求,阶梯收费、使时间越长单价越低

服务器有何用途

从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(如果一个PC对外提供ftp服务,也可以叫服务器)。

从狭义上讲,服务器是专指某些高性能计算机,能通过网络,对外提供服务。相对于普通PC来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。

服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、 PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在 “组织”和“领导”这些设备。

它是网络上一种为客户端计算机提供各种服务的高性能的计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。

服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者 ————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。

目前,按照体系架构来区分,服务器主要分为两类:

非x86服务器:包括大型机、小型机和UNIX服务器,它们是使用RISC(精简指令集)或EPIC处理器,并且主要采用UNIX和其它专用操作系统的服务器,精简指令集处理器主要有IBM公司的POWER和PowerPC处理器,SUN与富士通公司合作研发的SPARC处理器、EPIC处理器主要是HP 与Intel合作研发的安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统中。

x86服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构,使用Intel或其它兼容x86指令集的处理器芯片和Windows操作系统的服务器,如IBM的System x系列服务器、HP的Proliant 系列服务器等。 价格便宜、兼容性好、稳定性差、不安全,主要用在中小企业和非关键业务中。

从当前的网络发展状况看,以“小、巧、稳”为特点的x86架构的PC服务器得到了更为广泛的应用。

从理论定义来看,服务器是网络环境中的高性能计算机,它侦听网络上其它计算机(客户机)提交的服务请求,并提供相应的服务。为此,服务器必须具有承担服务并且保障服务质量的能力。

但是这样来解释仍然显得较为深奥模糊,其实服务器与个人电脑的功能相类似,均是帮助人类处理信息的工具,只是二者的定位不同,个人电脑(简称为 Personal Computer,PC)是为满足个人的多功能需要而设计的,而服务器是为满足众多用户同时在其上处理数据而设计的。而多人如何同时使用同一台服务器呢? 这只能通过网络互联,来帮助达到这一共同使用的目的。

我们再来看服务器的功能,服务器可以用来搭建网页服务(我们平常上网所看到的网页页面的数据就是存储在服务器上供人访问的)、邮件服务(我们发的所有电子邮件都需要经过服务器的处理、发送与接收)、文件共享&打印共享服务、数据库服务等。而这所有的应用都有一个共同的特点,他们面向的都不是一个人,而是众多的人,同时处理的是众多的数据。所以服务器与网络是密不可分的。可以说离开了网络,就没有服务器;服务器是为提供服务而生,只有在网络环境下它才有存在的价值。而个人电脑完全可以在单机的情况下完成主人的数据处理任务。

python办公笔记分享

python办公笔记分享

python 处理办公软件
一、文件处理
1、输出目录下所有文件及文件夹
获取当前python程序运行目录

import os
print(os.getpwd())

路径连接

import os
print(os.path.join(‘pythonTest’, ‘test1’))

列出某个文件夹下所有文件和文件夹

import os
print(os.listdir(‘D:/mycode/’))

循环判断指定文件夹中哪些是文件夹

import os

files = os.listdir()
for file in files:
print(file, os.path.isdir(file))

os.scandir() 查找文件**(更推荐)**

import os

for file in os.scandir(‘D:/mycode/’):
print(file.name, file.path, file.is_dir())

练习: 列出当前目录包含hello字符串的文件的个数(不区分大小写)

import os

num = 0
for file in os.scandir(‘./’):
if not file.is_dir():
if ‘hello’ in file.name.lower():
num += 1
print(“包含hello的文件个数:”, num)

2、遍历、搜索文件及查询文件信息
遍历文件夹

import os

for root, dirs, files in os.walk(‘./’):
print(f’发现文件夹:{root})’)
print(f’文件夹列表:{dirs}’)
print(f’文件列表:{files}’)
print(‘————————–‘)

是否某字符串开头、结尾

print(‘abc.txt’.startswith(‘ab’))
print(‘abc.txt’.endswith(‘.txt’))

搜索指定的文件

模式 意义
* 匹配所有
? 匹配任何单个字符
[seq] 匹配seq中的任何字符
[!seq] 匹配任何不在seq中的字符
import glob
print(glob.glob(‘*.txt’))

递归搜索指定文件

import glob
print(glob.glob(‘**/*.txt’, recursive=True))

匹配文件名

import fnmatch

print(fnmatch.fnmatch(‘lesson1.py’, ‘le*1.py’))
print(fnmatch.fnmatch(‘lesson1.py’, ‘le*[0-9].py’))

查询文件信息

import os

import time
for file in os.scandir():
print(file.name, file.stat().st_size/1024/1024, time.ctime(file.stat().st_mtime))

datetime模块输出时间

import datetime

that_time = datetime.datetime.fromtimestamp(1567764428)
print(that_time)
print(that_time.year, that_time.month, that_time.day, that_time.hour, that_time.minute, that_time.second)

练习: 递归搜索当前文件夹中今年修改的后缀名为 .zip 的所有文件

import os
import glob
import datetime

now_year = datetime.datetime.now().year
print(‘当前目录以下文件为今年的.zip压缩文件:’)
for file in glob.glob(‘**/*.zip’, recursive=True):
file_year = datetime.datetime.fromtimestamp(os.stat(file).st_mtime).year
if file_year == now_year:
print(file, f’文件大小为:{os.stat(file).st_size/1024}KB’)

3、创建临时文件及文件夹
读取文件

f = open(‘test.txt’, ‘r’, encoding=’utf-8′)
text = f.readlines()
print(text)
f.close()

with … as … 写法:

with open(‘test.txt’, ‘r’, encoding=’utf-8′) as f:
text = f.readlines()
print(text)

写入文件

with open(‘test2.txt’, ‘w’, encoding=’utf-8′) as f:
f.write(‘hello world’)

创建临时文件

from tempfile import TemporaryFile

f = TemporaryFile(‘w+’)
f.write(‘hello world’)
f.seek(0)
data = f.readlines()
print(data)
f.close()

创建临时文件夹

from tempfile import TemporaryDirectory

with TemporaryDirectory() as tmp_folder:
print(f’临时文件夹:{tmp_folder}’)

4、批量创建、复制、移动、删除、重命名文件及文件夹
创建文件夹

import os

if not os.path.exists(‘dirname’):
os.mkdir(‘dirname’)

创建多层文件夹

import os
os.makedirs(‘aa/bb/cc’)

复制文件

import shutil

shutil.copy(‘test.txt’, ‘./aa/test.txt’)
shutil.copy(‘test.txt’, ‘./aa/new_test.txt’)

复制文件夹 (新文件夹不能已经存在)

import shutil
shutil.copytree(‘aa/’, ‘dd/’)

移动文件或者文件夹

import shutil

shutil.move(‘test.txt’, ‘bb/’)
shutil.move(‘test.txt’, ‘bb/new_test.txt’)
shutil.move(‘aa/’, ‘bb/’)

重命名文件或文件夹

import os

os.rename(‘test.txt’, ‘new_test.txt’)
os.rename(‘aa/’, ‘new_aa/’)

删除文件

import os
os.remove(‘test.txt’)

删除文件夹

import shutil
shutil.rmtree(‘aa/’)

练习: 找出当前文件夹中所有.zip文件,并加上该文件*后修改日期重命名,然后将所有重命名后的文件移动到backup文件夹中。

import os
import datetime
import shutil

if not os.path.exists(‘backup’):
os.mkdir(‘backup’)
for file in os.scandir():
if file.name.endswith(‘.zip’):
m_format_time = datetime.datetime.fromtimestamp(os.stat(file.name).st_mtime).strftime(‘%Y-%m-%d’)
shutil.move(file.name, ‘backup/’ + m_format_time + ‘-‘ + file.name)

5、创建和解压压缩包
读取压缩包

import zipfile

with zipfile.ZipFile(‘test.zip’, ‘r’) as zipobj:
for file_name in zipobj.namelist():
print(file_name)

读取压缩包内文件的信息

import zipfile

with zipfile.ZipFile(‘test.zip’, ‘r’) as zipobj:
for file_name in zipobj.namelist():
info = zipobj.getinfo(file_name)
print(file_name, info.file_size, info.compress_size)

解压压缩包中的单个文件

import zipfile

with zipfile.ZipFile(‘test.zip’, ‘r’) as zipobj:
zipobj.extract(‘test.txt’)

解压所有文件

import zipfile

with zipfile.ZipFile(‘test.zip’, ‘r’) as zipobj:
zipobj.extractall()

将有密码的压缩包解压

import zipfile

with zipfile.ZipFile(‘test.zip’, ‘r’) as zipobj:
zipobj.extractall(path=’解压/’, pwd=b’123456′)

创建压缩包

import zipfile

file_list = [‘test1.txt’, ‘test2.txt’, ‘test3.txt’]
with zipfile.ZipFile(‘compress.zip’, ‘w’) as zipobj:
for file in file_list:
zipobj.write(file)

向已有压缩包中添加文件

import zipfile

with zipfile.ZipFile(‘compress.zip’, ‘a’) as zipobj:
zipobj.write(‘test4.txt’)

练习: 将当前文件夹所有修改时间在今天之前的文件重命名加上*后修改日期,将所有重命名后的文件都添加到带有今天日期的压缩包里,并将压缩包移动到backup文件夹中,删除原始文件。

import os
import datetime
import zipfile

new_name_list = []
now_time_num = int(datetime.datetime.now().strftime(‘%Y%m%d’))
for file in os.scandir():
if not (file.is_dir() or file.name.endswith(‘.py’)):
file_mtime = os.stat(file.name).st_mtime
file_mtime_num = int(datetime.datetime.fromtimestamp(file_mtime).strftime(‘%Y%m%d’))
if file_mtime_num < now_time_num:
file_mtime_format = datetime.datetime.fromtimestamp(file_mtime).strftime(‘%Y-%m-%d’)
file_new_name = file_mtime_format + ‘-‘ + file.name
print(file.name, file_mtime_format)
os.rename(file.name, file_new_name)
new_name_list.append(file_new_name)

if not os.path.exists(‘backup’):
os.mkdir(‘backup’)
if len(new_name_list) > 0:
now_time = datetime.datetime.now()
now_date_format = now_time.strftime(‘%y-%m-%d’)
compress_name = now_date_format + ‘-compress.zip’
with zipfile.ZipFile(‘./backup/’ + compress_name, ‘w’) as zipobj:
for file_name in new_name_list:
zipobj.write(file_name)
os.remove(file_name)

二、处理 Excel 表格
1、python 打开及读取 Excel 表格内容
打开Excel表格并获取表格名称

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)

获取sheet的尺寸范围

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook[‘Sheet1′]
print(sheet.dimensions)

获取某个单元格数值

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet[‘C1′]
print(cell.value)

获取某个单元格的行、列、坐标

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet[‘C1′]
print(cell.row, cell.column, cell.coordinate)

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet.cell(row=1, column=4)
print(cell.row, cell.column, cell.coordinate)

获取一系列的单元格

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
for row in sheet.iter_rows(min_row=2, max_row=4, min_col=2, max_col=4):
for cell in row:
print(cell)

迭代整个表格的所有行

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
for row in sheet.rows:
print(row)

2、python 向 Excel 表格中写入内容
向某个单元格中写入内容并保存

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet[‘B2’] = ‘hello world’
workbook.save(filename=’test.xlsx’)

插入python列表数据

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
data = [
[‘张三’, 1],
[‘李四’, 2],
[‘王五’, 3]
]
for row in data:
sheet.append(row)
workbook.save(filename=’test.xlsx’)

插入一列

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.insert_cols(idx=2)
workbook.save(filename=’test.xlsx’)

插入多行

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.insert_rows(idx=2, amount=3)
workbook.save(filename=’test.xlsx’)

删除行

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.delete_rows(idx=2, amount=2)
workbook.save(filename=’test.xlsx’)

移动单元格

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.move_range(‘A1:B2′, cols=2, rows=2)
workbook.save(filename=’test.xlsx’)

创建和删除表格

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
print(workbook.sheetnames)
workbook.create_sheet(‘MySheet’)
sheet = workbook[‘Sheet1′]
workbook.remove(sheet)
workbook.save(filename=’test.xlsx’)

复制表格

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook[‘MySheet’]
workbook.copy_worksheet(sheet)
workbook.save(filename=’test.xlsx’)

修改表格名称

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
workbook[‘MySheet’].title = ‘MyNewSheet’
workbook.save(filename=’test.xlsx’)

创建新的Excel文件

from openpyxl import Workbook

workbook = Workbook()
sheet = workbook.active
sheet.title = ‘表格一’
for i in range(1, 10):
for j in range(1, 10):
sheet.cell(row=i, column=j).value = i * j
workbook.save(filename=’output.xlsx’)

冻结窗格

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.freeze_panes = ‘B2′
workbook.save(filename=’test.xlsx’)

筛选

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.auto_filter.ref = sheet.dimensions
workbook.save(filename=’test.xlsx’)

修改字体样式

from openpyxl.styles import Font
from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet[‘A2′]
cell.font = Font(name=’微软雅黑’, size=12, italic=True, bold=True, color=’ff0000′)

获取表格中字体的样式

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet[‘B2′]
font = cell.font
print(font.name, font.size, font.italic, font.bold)

设置对其样式

wrap_text 是否自动换行

from openpyxl import load_workbook
from openpyxl.styles import Alignment

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet[‘B2’]
cell.value = ‘锄禾日当午,汗滴禾下土。’
alignment = Alignment(horizontal=’center’, vertical=’center’, text_rotation=45)
cell.alignment = alignment
workbook.save(filename=’test.xlsx’)

单元格边框设置

from openpyxl import load_workbook
from openpyxl.styles import Border,Side

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell = sheet[‘C3′]
side1 = Side(style=’thin’, color=’FF0000′)
side2 = Side(style=’dashed’, color=’0000FF’)
border = Border(left=side1, right=side1, top=side2, bottom=side2)
cell.border = border
workbook.save(filename=’test.xlsx’)

设置填充样式

from openpyxl import load_workbook
from openpyxl.styles import PatternFill, GradientFill

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
cell_d4 = sheet[‘D4′]
pattern_fill = PatternFill(fill_type=’solid’, fgColor=’FF0000′)
cell_d4.fill = pattern_fill
cell_e5 = sheet[‘E5’]
gradient_fill = GradientFill(stop=(‘FF0000′, ’00FF00’, ‘0000FF’))
cell_e5.fill = gradient_fill
workbook.save(filename=’test.xlsx’)

设置行高和列宽

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.row_dimensions[1].height = 50
sheet.column_dimentsions[‘A’].width = 50
workbook.save(filename=’test.xlsx’)

合并单元格

from openpyxl import load_workbook

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
sheet.merge_cells(‘A1:B2′)
sheet.merge_cells(start_row=5, end_row=7, start_column=5, end_column=7)
workbook.save(filename=’test.xlsx’)

取消合并单元格 unmerge_cells

插入图片

from openpyxl import load_workbook
from openpyxl.drawing.image import Image

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
logo = Image(‘logo.png’)
logo.width = 100
logo.height = 50
sheet.add_image(logo, ‘C1′)
workbook.save(filename=’test.xlsx’)

插入柱状图

from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
chart = BarChart()
data = Reference(worksheet=sheet, min_row=1, max_row=6, min_col=2, max_col=6)
categories = Reference(sheet, min_col=1, min_row=2, max_row=6)
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)
sheet.add_chart(chart, ‘A7’)
workbook.save(‘test.xlsx’)

插入条形图

from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference

workbook = load_workbook(filename=’test.xlsx’)
sheet = workbook.active
chart = LineChart()
data = Reference(worksheet=sheet, min_row=1, max_row=6, min_col=2, max_col=6)
categories = Reference(sheet, min_col=1, min_row=2, max_row=6)
chart.add_data(data, from_rows=True, titles_from_data=True)
chart.set_categories(categories)
sheet.add_chart(chart, ‘A7’)
workbook.save(‘test.xlsx’)

三、处理 PDF 文件
1、提取PDF文字内容
使用 pdfplumber 提取文字

import pdfplumber

with pdfplumber.open(‘test.pdf’) as pdf:
first_page = pdf.pages[0]
print(first_page.extract_text())

使用 pdfplumber 提取单个简单表格

import pdfplumber

with pdfplumber.open(‘test.pdf’) as pdf:
first_page = pdf.pages[0]
table = first_page.extract_table()
print(table)

使用 pdfplumber 提取多个简单表格

import pdfplumber

with pdfplumber.open(‘test.pdf’) as pdf:
table_page = pdf.pages[0]
for table in table_page.extract_tables():
print(table)

提取表格时设定参数

import pdfplumber

with pdfplumber.open(‘test.pdf’) as pdf:
table_page = pdf.pages[0]
table = table_page.extract_table(
table_settings={
“vertical_strategy”: “text”,
“horizontal_strategy”: “text”
}
)
print(table)

使用 pypdf2 分割 pdf

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_reader = PdfFileReader(‘test.pdf’)
for page in range(pdf_reader.getNumPages()):
pdf_writer = PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(page))
with open(f’./分割后的PDF文件/divide_page{page}.pdf’, ‘wb’) as out:
pdf_writer.write(out)

使用 pypdf2 合并 pdf

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_writer = PdfFileWriter()
for page in range(2):
pdf_reader = PdfFileReader(f’./分割后的PDF文件/divide_page{page}.pdf’)
for page_num in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page_num))

with open(‘merge.pdf’, ‘wb’) as out:
pdf_writer.write(out)

使用 pypdf2 旋转 pdf 页面

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_reader = PdfFileReader(‘test.pdf’)
pdf_writer = PdfFileWriter()
for num in range(pdf_reader.getNumPages()):
if num % 2 == 0:
page = pdf_reader.getPage(num).rotateClockwise(90)
pdf_writer.addPage(page)
else:
page = pdf_reader.getPage(num).rotateCounterClockwise(90)
pdf_writer.addPage(page)

with open(‘rotateTest.pdf’, ‘wb’) as out:
pdf_writer.write(out)

使用 pypdf2 给 pdf 加水印

from PyPDF2 import PdfFileReader, PdfFileWriter
from copy import copy

watermark_pdf = PdfFileReader(‘watermark.pdf’)
watermark_page = watermark_pdf.getPage(0)

pdf_reader = PdfFileReader(‘test.pdf’)
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
original_page = pdf_reader.getPage(page)
new_page = copy(watermark_page)
new_page.mergePage(original_page)
pdf_writer.addPage(new_page)

with(open(‘watermarkFile.pdf’, ‘wb’)) as out:
pdf_writer.write(out)

使用 pypdf2 加密 pdf 文件

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_reader = PdfFileReader(“test.pdf”)
pdf_writer = PdfFileWriter()
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))

pdf_writer.encrypt(“123456”)
with open(‘test_encrypt.pdf’, ‘wb’) as out:
pdf_writer.write(out)

使用 pypdf2 解密 pdf 文件

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_reader = PdfFileReader(‘test_encrypt.pdf’)
pdf_reader.decrypt(“123456”)
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))

with open(‘test_decrypt.pdf’, ‘wb’) as out:
pdf_writer.write(out)

四、处理Word文件
1、Python读取Word文档内容
读取内容

from docx import Document

doc = Document(‘test.docx’)
for paragraph in doc.paragraphs:
print(paragraph.text)

读取文字块

from docx import Document

doc = Document(‘test.docx’)
for paragraph in doc.paragraphs:
for run in paragraph.runs:
print(run.text)

2、Python写入Word文档内容
添加标题、段落

from docx import Document

doc = Document()
doc.add_heading(‘一级标题’, level=1)
paragraph1 = doc.add_paragraph(‘这是*段段落。’)
paragraph2 = doc.add_paragraph()
paragraph2.add_run(‘加粗’).bold = True
paragraph2.add_run(‘普通’)
paragraph2.add_run(‘斜体’).italic = True
doc.save(‘test.docx’)

添加分页

from docx import Document

doc = Document()
doc.add_heading(“*页”, level=2)
doc.add_paragraph(“*页内容”)
doc.add_page_break()
doc.add_heading(“第二页”, level=3)
doc.add_paragraph(“第二页内容”)
doc.save(“test2.docx”)

添加图片

from docx import Document
from docx.shared import Cm

doc = Document()
doc.add_picture(“test.jpg”)
doc.add_picture(“test.jpg”, width=Cm(5))
doc.add_picture(“test.jpg”, width=Cm(5), height=Cm(8))
doc.save(“test3.docx”)

添加表格

from docx import Document

records = [
[‘学号’, ‘姓名’, ‘成绩’],
[101, ‘张三’, 99],
[102, ‘李四’, 96],
[103, ‘王五’, 98]
]

doc = Document()
table = doc.add_table(rows=4, cols=3)
for row in range(4):
cells = table.rows[row].cells
for col in range(3):
cells[col].text = str(records[row][col])

doc.save(‘test4.docx’)

3、Word文档内容编辑
文字样式的修改

from docx import Document
from docx.shared import Pt, RGBColor
from docx.oxml.ns import qn

doc = Document(“test.docx”)
for paragraph in doc.paragraphs:
for run in paragraph.runs:
run.font.bold = True
run.font.italic = True
run.font.underline = True
run.font.strike = True
run.font.shadow = True
run.font.size = Pt(20)
run.font.color.rgb = RGBColor(255, 0, 0)
run.font.name = ‘微软雅黑’
r = run._element.rPr.rFonts
r.set(qn(‘w:eastAsia’), ‘微软雅黑’)

doc.save(“test_modified.docx”)

段落对齐

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document(‘test.docx’);
for paragraph in doc.paragraphs:
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER

doc.save(‘test_modified.docx’)

段落行间距

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document(‘test.docx’)
for paragraph in doc.paragraphs:
paragraph.paragraph_format.line_spacing = 2.0

doc.save(‘test_modified.docx’)

段前段后间距

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt

doc = Document(‘test.docx’)
for paragraph in doc.paragraphs:
paragraph.paragraph_format.space_before = Pt(12)
paragraph.paragraph_format.space_after = Pt(12)

doc.save(‘test_modified.docx’)

五、处理PPT文件
1、Python读取PPT
读取PPT文字

from pptx import Presentation

prs = Presentation(‘test.pptx’)
for slide in prs.slides:
for shape in slide.shapes:
if shape.has_text_frame:
text_frame = shape.text_frame
print(text_frame.text)

读取PPT段落

from pptx import Presentation

prs = Presentation(‘test.pptx’)
for slide in prs.slides:
for shape in slide.shapes:
text_frame = shape.text_frame
for paragraph in text_frame.paragraphs:
print(paragraph.text)

iOS常用的第三方

下拉刷新
  • EGOTableViewPullRefresh – *早的下拉刷新控件。
  • SVPullToRefresh – 下拉刷新控件。
  • MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)
  • XHRefreshControl – XHRefreshControl 是一款高扩展性、低耦合度的下拉刷新、上提加载更多的组件。(国人写)
  • CBStoreHouseRefreshControl – 一个效果很酷炫的下拉刷新控件。
  • BreakOutToRefresh – 一个下拉刷新打砖块的开源 Swift 库,能让用户在等待下拉刷新的时候边玩撞球游戏边等待。
  • KYJellyPullToRefresh – 实现弹性物理效果的下拉刷新,神奇的贝塞尔曲线,配合UIDynamic写的一个拟物的下拉刷新动画。
  • MHYahooParallaxView – 类似于Yahoo Weather和News Digest首屏的视差滚动。
  • SDRefreshView – 简单易用的上拉和下拉刷新(多版本细节适配)。
  • ZLSwiftRefresh – swift下拉刷新/上拉加载更多,支持自定义动画,集成简单,兼容UITableView/CollectionView/ScrollView/WebView。
  • BreakOutToRefresh – swift,上拉和下拉刷新。
  • GearRefreshControl – swift,上拉和下拉刷新。
  • refresher – swift,上拉和下拉刷新。
  • 可展开/收缩的下拉菜单–SvpplyTable – 一个可展开可收缩的下拉菜单,类似Svpply app。
  • ODRefreshControl – 原iOS6上的橡皮糖刷新样式,很有意思。现在也很多大的 App 在用,比如虾米音乐和 QQ 客户端。
  • PullToMakeSoup – PullToMakeSoup, 自定义下拉刷新的动画效果:煮饭, Yalantis新作!
  • TwitterCover – Twitter iOS客户端的下拉封面模糊效果。
  • Replace-iOS – Replace-iOS 让人眼前一亮的下拉刷新(iOS)。
  • Animations – 封装了一下,使用的时候只要两行代码。一些动画的飞机稿,都是一些单独分离出来的用于测试的子动画,现在统一归类一下。
  • PullToBounce – 下拉刷新的动画 for UIScrollView。
模糊效果
  • FXBlurView – 是一个UIView子类,支持iOS5.0以上版本,支持静态、动态模糊效果,继承与UIView的模糊特效。
  • VVBlurPresentation -很简单易用的在原来viewconntroller基础上做模糊,然后present新的viewcontroller的。
  • UICustomActionSheet – 通过模糊背景来着重强调与菜单相关的元素–对话框 里面已经收藏。
  • SABlurImageView – 支持渐变动画效果的图像模糊化类库。P.S. 与前几天推存类库 SAHistoryNavigationViewController 是同一位作者。
AutoLayout
  • Masonry – Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性( 使用介绍1 使用介绍2),iOS自适应前段库-Masonry的使用),Masonry、Classy、ClassyLiveLayout介绍。使用DEMO 视图居中显示、子视图含边距、视图等距离摆放、计算ScrollView的contentsize。
  • Classy – Classy是一个能与UIKit无缝结合stylesheet(样式)系统。它借鉴CSS的思想,但引入新的语法和命名规则,Classy官网,Masonry、Classy、ClassyLiveLayout介绍。
  • ClassyLiveLayout – ClassyLiveLayout通过结合Classy stylesheets与Masonry一起使用,能够在运行的模拟器中微调Auto Layout约束实时显示效果的工具,Masonry、Classy、ClassyLiveLayout介绍。
  • Snap – Snap是Masonry Auto Layout DSL的Swift版本,是一款轻量级的布局框架,使用了更良好的语法封装了AutoLayout。Snap支持iOS和OS X。
  • SnapKit – 就是“snap”, –swift 喜欢自动布局吗?当然喜欢!至少在storyboard中创建时会喜欢。 在代码中纯手工创建约束灰常痛苦,但幸运的是我们有了SnapKit,在board中用上它,你可以简单直观地编写约束了。。
  • PureLayout – PureLayout 是 iOS & OS X Auto Layout 的终* API——非常简单,又非常强大。PureLayout 通过一个全面的Auto Layout API 扩展了 UIView/NSView, NSArray 和 NSLayoutConstraint,仿照苹果自身的框架。
  • UIView-AutoLayout – Deprecated in favor of PureLayout, which includes OS X support:https://github.com/smileyborg/PureLayout。
  • Cartography – Cartography 是用来声明 Swift 中的 Auto Layout,无需输入任何 stringly 就可设置自己 Auto Layout 的约束声明。
  • Auto-Layout-Showcase – swift,AutoLayout 进阶 Demo,宽高比约束、比例约束、不等约束、视差约束、低优先级约束等高级用法,无需写码即可进行复杂页面布局,Demo 还动态模拟了各屏幕下的效果。来自百度知道 iOS 小组的内部分享。
  • UIView-FDCollapsibleConstraints – 一个AutoLayout辅助工具,*优雅的方式解决自动布局中子View的动态显示和隐藏的问题。第二个Demo模拟了一个经典的FlowLayout,任意一个元素隐藏时,底下的元素需要自动“顶”上来,配合这个扩展,你可以在IB里连一连,选一选,不用一行代码就能搞定。
  • Autolayout_Demo – 在项目中用自动布局实现的类似抽屉效果。
  • 当view隐藏的时候也隐藏其autolayout的NSLayoutAttribute – 当view隐藏的时候也隐藏其autolayout的NSLayoutAttribute,从而不用大量的代码工作。
富文本
  • RTLabel – RTLabel 基于UILabel类的拓展,能够支持Html标记的富文本显示,它是基于Core Text,因此也支持Core Text上的一些东西。32位,很久没有更新了。
  • RTLabel – 富文本,RTLabel支持64位。
  • TYAttributedLabel – TYAttributedLabel。 简单易用的属性文本控件(无需了解CoreText),支持富文本,图文混排显示,支持添加链接,image和UIView控件,支持自定义排版显示。
  • TQRichTextView – 用于做富文本视图控件显示,用于即时通讯的表情显示,以及资源评论的富文本显示。
  • TTTAttributedLabel – 一个文字视图开源组件,是UILabel的替代元件,可以以简单的方式展现渲染的属性字符串。另外,还支持链接植入,不管是手动还是使用UIDataDetectorTypes自动把电话号码、事件、地址以及其他信息变成链接。用TTTAttributedLabel创建变化丰富的UILabel – 网易新闻iOS版使用。
  • MLEmojiLabel – 自动识别网址、号码、邮箱、@、#话题#和表情的label。可以自定义自己的表情识别正则,和对应的表情图像。(默认是识别微信的表情符号),继承自TTTAttributedLabel,所以可以像label一样使用。label的特性全都有,使用起来更友好更方便。
  • FXLabel – FXLabel是一个功能强大使用简单的类库,通过提供一个子类改进了标准的UILabel组件,为字体增加了阴影、内阴影和渐变色等,可以被用在任何标准的UILabel中。FXLabel还提供了更多控件,可以对字体行距、字体间距等进行调整。
  • WFReader – 一款简单的coretext阅读器,支持文本选择、高亮以及字体大小选择等。
  • WPAttributedMarkup – WPAttributedMarkup is a simple utility category that can be used to easily create an attributed string from text with markup tags and a style dictionary。
  • KMPlaceholderTextView – 可显示多行 placeholder 的 textView,可以在IB里面设置 — swift。
  • HHFlashSwitch – 一个另类的UISwitch,选择后,背景水波扩散变色效果。
  • UUColorSwitch – Switch 开关动画效果,当打开开关时,Switch可实现平滑渲染过渡到父视图的效果。
  • UITextViewDIYEmojiExample – UITextView编辑时插入自定义表情-简单的图文混编。
  • Shimmer – BlingBling闪光效果,酷炫的Label的效果,可以用于加载等待提示。
  • ZSSRichTextEditor – 适用于iOS的富文本WYSIWYG编辑器,支持语法高亮和源码查看。ZSSRichTextEditor包含所有WYSIWYG标准的编辑器工具。
  • RichEditorView – swift,一套可定制富文本编辑器组件及示例。功能完整、代码简练、实现逻辑巧妙(编辑器核心与 WebView 结合,采用 HTML5 contentEditable 编辑模式,执行JS 配套命令 execCommand 实现富文本编辑功能)。
  • DTCoreText – 可以解析HTML与CSS*终用CoreText绘制出来,通常用于在一些需要显示富文本的场景下代替低性能的UIWebView。DTCoreText源码解析。
  • CSGrowingTextView – 用作即时通讯文本框和评论文本框使用,可以显示多行输入。
  • MarkdownTextView – 显示Markdown的TextView。
  • 高仿微信限定行数文字内容 – 采用Autolayout高仿微信纯文字限定行数。
  • FuriganaTextView – 实现复杂的日文韩文排版。
  • ParkedTextField – 带固定文本的输入组件。
  • LTMorphingLabel – swift 能够实现文字变形动画效果的Label,用Swift写的一个能够实现文字变形动画效果的Label,很炫。
  • GJCFCoreText – 图文混排。
  • AttributedLabel – 显示性能数量级 UILabel 的 AttributedLabel。无畏无惧、挑战权威。
  • FFLabel – 自动检测 URLs, @username, #topic# 等关链词(提供响应扩展)。实用的标签文本小组件。
  • TextFieldEffects – 标准的UITextField有些枯燥么?来认识一下TextFieldEffects吧!废话不多说,只要看几个例子,是啊,都是些简单的dropin控制器。甚至可以在storyboard中使用IBDesignables。
图表
  • PNChart – 国内开源作者,动态的图表。
  • swift-linechart – 功能完整、实用的折线图组件。使用方便,参数配置简单。是不可多得的优质组件–swift。
  • ios-charts – 一款优秀 Android 图表开源库 MPAndroidChart 的 Swift 语言实现版(支持 Objective-C 和 Swift 调用)。缺省提供的示例代码为 Objective-C。
  • TEAChart – xhacker/TEAChart 一个简洁的 iOS 图表库,支持柱状图、饼图以及日历等。
  • YOChartImageKit – 支持在watchOS上绘制图表,看它*近更新挺勤快的,可以关注一下。
  • RealtimeGradientText – Fun With CALayer Mask 刚好今天开源了一个有趣的项目 RealtimeGradientText,所以也好聊一下 CALayer 的 Mask,说明。
表相关
  • SWTableViewCell – 国内开源作者,带很多手势的表单元格。
  • MCSwipeTableViewCell – 带很多手势的表单元格。
  • TMQuiltView – 瀑布流。
  • WaterfallFlowDemo – 一个简单的UICollectionView瀑布流布局演示demo。
  • XLForm – 很多表格类的table,写法更高冷一点,推荐使用。
  • RETableViewManager – 可以十分方便地生成各种样式、各种功能的TableView。只要开发者能想到的列表效果或者功能,都可以利用这份代码迅速编写出来。比如,之前要实现一个填写各种资料的列表,可能需要很多代码,现在只需要几行代码就可以实现。
  • UIScrollSlidingPages – 允许添加多视图控件,并且可以横向滚动。有点类似于Groupon app。
  • HBHorizontalTableView – swift,TableView 横向滚动小示例(仿照 AppStore 应用展示)。
  • HorizontalScrollCell – HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。
  • SYJiugonggeTableView – tableView封装的九宫格。
  • UUChatTableView – UUChatTableView 气泡聊天界面,支持文本、图片以及音频的气泡聊天界面。源码推荐说明。
  • Chats – 聊天 UI 示例程序。此项目应该只为演示或学习之用,没有服务器 — swift。
  • Atlas-iOS – 快速在iOS里集成聊天功能,类似开源版本的环信。Layer家开源了一套聊天app界面的解决方案.看起来很赞,很多蛮复杂的东西直接都帮封好了。不得不说现在做app开发真是很简单,大部分时间搭积木就可以了。官方网站。
  • DLSlideView – DLSlideView对常见的顶部Tab页点击、滑动分页做了封装。它使用基于ViewController的container特性(而不是scrollview)来管理各个子页面,以支持无限分页,源码推荐说明。
  • VOVCManager – 页面管理器:1.跳转指定页面,只需要知道viewController的Class名,如果有storyboard,则需要指定storyboard名;2.无需添加基类;3.支持URLScheme跳转指定页面。
  • MBXPageViewController – 简洁快速的页面切换–MBXPageViewController,带有按钮控件的UIPageController,非常整洁、简单以及快速。该项目通过三种形式展示页面之间的切换,比如导航栏上的多个tab切换、页面左右两端箭头指示切换,以及使用分段控件。
  • PagerTab – UIScrollView实现滑动转换页面,类似网易云音乐iOS版的页面滑动切换效果。
  • GUITabPagerViewController – 多个tab滑动切换。
  • VOMetroLayoutDemo – Metro风格的UICollectionView, 目前只支持横向布局,仅在iPad上应用。
  • KYCellAnimation – 给UITableViewCell增加进入的动画。
  • COBezierTableView – swift,通过编辑 Bezier 曲线四点位置设置 TableView 内 Cell 及对应按扭位置。实验效果很赞。
  • RDVTabBarController – 一个TabBar组件,可以方便设置底部菜单的文字图片,点击效果,小红点提示等。
    • LxTabBarController – 改变了原生tabbar切换tab时的生硬效果,并加入滑动切换手势(有和界面上的其它手势发生冲突的风险,可根据具体项目予以关闭),swift版本。
  • 横向展示文本内容的自定义cell – 可以横向展示文本内容的自定义cell,根据文本无限滚动。
  • UITableView-FDTemplateLayoutCell – UITableView-FDTemplateLayoutCell 是一个方便缓存 UITableViewCell 的高度的框架。
  • ExpandingStackCells – 采用 UIStackView 实现表格单元格扩展内容显示示例及解决方案。
  • Sapporo – swift 单元格模型驱动的集合视图管理器组件。又一个超实用的“轮子”。
  • MDIHorizontalSectionTableViewController – 根据产品需求开源了一个交互项目,可以理解为横向Section的TableView,section和cell同时支持拖拽,后续安卓版本也会开源出来。
  • JZNavigationExtension – 多功能导航控制器,可以透明返回栏。
  • QuickRearrangeTableView – 基于 UITableView 的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。
  • uicollectionview-reordering – UICollectionViews的拖拽(拖动、移动)效果,实例教程.
  • DZNEmptyDataSet – DZNEmptyDataSet算是一个很标准的iOS内建方式,适合用来处理空的table view和collection view。会自动将collection view处理完善,并将用户消息以合适美观的方式显示出来。每个iOS项目都可以自动处理。
  • MGSwipeTableCell – 另一个常见于很多应用中的UI组件,苹果应该考虑在标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的*佳描述,也是*好的。
隐藏与显示
  • SlideTapBar – 滚动栏菜单,向上滚动时隐藏tabbar,向下滚动马上显示tabbar。
  • FoldingTabBar.iOS – 可折叠Tab Bar和Tab Bar Controller。
  • LTNavigationBar – LTNavigationBar为app导航栏添加动态着色效果,可自定义其背景色。Demo包含:1.变换背景色;2.滚动视图,导航栏和状态栏重叠。
  • BLKFlexibleHeightBar – 固定Header的效果库。
HUD与Toast
  • MBProgressHUD – *多人用的loading。
  • SVProgressHUD – SVProgressHUD的loading,如果你需要定制化的等待提示器,这个就是了(也许是*好的)。
  • ProgressHUD – ProgressHUD的loading,使用*简单。
  • MMProgressHUD – 设置HUD出现和消失的方式(包括上下、左右、淡入淡出、放大缩小等等),设置HUD的内容(可以在HUD中加入帧动画、动态图片等等),设置HUD出现时的底部覆盖层颜色,等等。总而言之,这是一份集大成的HUD代码。慢慢看视频吧,囊括了所有效果。
  • WSProgressHUD – 一个小巧精致的HUD,支持添加到自定义View上, 还有更多小细节.。
对话框
  • WCAlertView – 自定义的对话框。
  • IOS7AlertView – IOS7AlertView的对话框。
  • AMSmoothAlert – 动画效果不错,*多star,但不支持arm64。
  • DQAlertView – 扁平化的样式不错。
  • HHAlertView – 一个简易的alertview 有三种样式,有成功,失败,和警告三种样式,支持Delegate和block两种回调。
  • MJPopupViewController – 实现弹出视图的各种弹出和消失效果,包括淡入淡出(fade in,fade out),从屏幕上方飞进,下方飞出,从屏幕左方飞进,右方飞出等等效果,弹窗。
  • Menu – 项目中可能会用到的常用菜单,以后有时间会继续补充,弹窗。
  • EasyTipView – 弹出提示框类及演示示例。同样地,API 简单、易用。好“轮子”,弹窗。
  • kxmenu – kxmenu弹出菜单,点击视图上任意位置的按钮,会弹出一个菜单,并且有个小箭头指向点击的按钮,类似气泡视图。弹出的菜单位置会根据按钮的位置来进行调整。
  • QBPopupMenu – QBPopupMenu弹出菜单,实现类似 UIMenuItem 的弹出菜单按钮。点击按钮,会弹出一个菜单,上面可以排列多个按钮。纯代码实现,不需要任何图片。
  • STModalDemo – 弹出视图(通知,提示,选择,窗口)。
  • TAOverlay – TAOverlay可通过叠加层展示有用的信息,可自定义文本和背景色,添加阴影和模糊效果,以及更改字体大小或者用自定义图片替换页面上的icon。
  • UICustomActionSheet – 通过模糊背景来着重强调与菜单相关的元素–模糊效果 里面已经收藏。
  • ActionSheetPicker-3.0 – 该项目是此前热门项目ActionSheetPicker的新版本,快速复制了iOS 8上的下拉 UIPickerView/ActionSheet功能。
  • MJAlertView – 3D效果转场效果警示图–MJAlertView。
  • SwiftyDrop – 轻量、易用的小清新弹出列表及信息提示组件真心不错。
其他UI
  • AwesomeMenu – *多人用的Path菜单。
  • DCPathButton – Path,4.0的弹出菜单,呼出或者关闭菜单时,多个小图标会分别按照逆时针和顺时针的方向进行滚动。
  • SphereMenu – 利用UIDynamicAnimator的有趣的菜单,path类似。
  • KYGooeyMenu – KYGooeyMenu 是一个具有 Gooey Effects 带粘性的扇形菜单控件(卫星菜单、path)。
  • TwitterPaggingViewer – 多个Tableview,左右滑动。
  • CircularProgressControl – Circular Progress Control using CAShapeLayer ,环形进度控制条。
  • KDCircularProgress – KDCircularProgress是使用swift制作的色彩炫丽的进度条,可以加入多种颜色来控制进度条的渐变效果。
  • TextProgress – 自定义实现数字进度条:1、可以自定义数字(0-100),填充的比例为当前设置的数字,2、可以实现自定义填充颜色,上下部分都可以,3、可以自定义边界的颜色4、实现了水波动画,可以设置打开或关闭。
  • SDProgressView – 简便美观的进度指示器,此系列共有六种样式的进度指示器。
  • NVActivityIndicatorView – loading 进度条动画,有20-30多种,是在此DGActivityIndicatorView 基础上做得修改。
  • LoopProgressDemo – 环形渐变进度条。
  • 环形渐变进度条实现,
  • XLPagerTabStrip – 做的很棒的iOS下的PagerTabStrip。
  • RandomColorSwift – 一个自动生成好看的颜色的 Swift 库,RandomColorSwift。
  • HexColorService – 将16进制颜色字符串转成UIColor。
  • Rainbow – 旨在提高代码可读性及易用性的 UIColor 扩展,它使原先有限的预定义颜色(方法)选择,扩展至超过 1200 种。
  • UIColor-ChineseTraditionalColors – 中国传统颜色引用 UIColor 扩展。“UIColor.桃红(),UIColor.竹青() …”,共158种。
  • 类似美团的下拉菜单 – 类似美团的下拉菜单,源码推荐说明。
  • 类似美团的下拉选项 – 类似于美团、大众点评的下拉菜单选项,code4app代码,评论代码有瑕疵。
  • CRMediaPickerController – 一个简单易用的图片/视频选择器。1.可同时选择照片和视频。 2.挑选范围有Camera、Camera Roll、Photo Library以及*近拍摄的照片和视频。3.可自定义UIImagePickerController属性(Camera Overlay、Camera Device、Camera View Transform以及allowsEditing)。4.支持横屏和竖屏5.原生的iOS UI。,源码推荐说明。
  • MDCSwipeToChoose – MDCSwipeToChoose可简单地添加滑动手势来调用UIView,并使用该行为提供了一个组件以创建类似Tinder app的like或者dislike界面的轻扫。基于轻扫的方向,你可以决定执行什么样的行为,并且你可以自定义文本颜色和图片。该项目适用于教学用的抽认卡、图片查看器以及其他等。
  • iOS Material Design库 – 该项目借鉴于谷歌的Material Design guideline,用户可自定义背景色。
    • Material-Controls-For-iOS – Material Design风格的各种控件,非常完整全面。
  • ZMaterialDesignUIButton – Swift Material Design UIButton。
  • MediumScrollFullScreen – Medium的可扩展滚动页面,上下滚动时,全屏显示内容,并自然消隐上下菜单。由此项目感知,作者是一位很注重细节的开发者,他的另外几个菜单类项目也都不错,值得参考,比如:PathMenu, MediumMenu 等。
  • WZFlashButton – WZFlashButton,点击后button里面出现水波扩散效果。
  • Twinkle – 为字体加上钻石版闪耀的效果。使用Swift编写。
  • ios-multi-back-button – 可替换内置的UInavigationController返回按钮,长按左上角的返回按钮,实现多层级的快速返回。
  • ASDayPicker – 适用于iOS (iPhone)的日期选择器,类似于Calendar app的周视图。
  • today extension – 用纯代码构建一个Widget(today extension) 。
  • FSCalendar – 日历视图,带有微妙和平滑的滚动效果,可自定义外观–国人。
  • HSDatePickerViewController – 带有Dropbox Mailbox感觉的时间日期选择器。启动是背景被模糊化。界面也是主流的扁平化风格。
  • CFCityPickerVC – 城市选取控制器。
  • JTCalendar – iOS下优美的 Calendar 组件,做 GTD 类 App 必备。
  • Persei – 动画隐藏或显示顶部菜单支持库及示例项目。–swift
  • PDTSimpleCalendar – 是iOS*棒的日历组件了。你可以在各个方面对它进行定制,无论是运行逻辑还是外观方面。
  • Form – JSON 驱动的 Form表单系统,复杂的表单填写类 App *其需要(比如淘宝呢!)。
  • SwiftyFORM – swift 表单输入框架(亮点是表单验证规则引擎),是我见过地*易用的 Swift 表单组件。
  • SwiftSpinner – SwiftSpinner是使用swift制作的一款精致带感的指示器,并且连带有字体信息显示,模糊背景,半透明,扁平化等IOS8的效果。
  • AKPickerView-Swift – 一款小而美的 3D 效果选择器。
  • ImagePickerSheet – 图片或视频选择器(可多选)组件及其示例项目。
  • iOS-RatingBar – iOS-RatingBar swift版的评分控件,跟Android的RatingBar一样有两种模式,评分模式和只读模式’支持视图编辑,自定义星星数量,评分等级,另外还能支持非整数星,0.5颗星,0.1颗星,可以开启动画效果。
  • RKNotificationHub – 快速给 UIView 添加上炫酷的通知图标(Badge、红点、提示)。
  • WZLBadge – Badge,支持横竖屏支持iOS5~iOS8允许高度定制化,包括“红点”的背景颜色,文字(字体大小、颜色),位置等。说明.
  • BubbleTransition – 以气泡膨胀和缩小的动画效果来显示和移除 controller,Uber的就是这种取消操作的方式。
  • KYFloatingBubble – 类似iOS7中Game Center浮动气泡的效果。
  • DKNightVersion – DKNightVersion 是一个支持夜间模式切换的框架。
  • EasyUIControl – 一个可以简化界面ui的控件框架。
  • LxGridView-oc LxGridView-swift – 利用UICollectionView模仿iOS系统桌面图标的交互,作用如动图。
  • QQBtn – 仿QQ未读消息弹性按钮动画,达到和手机QQ未读信息一样的动画效果,效果基本实现。
  • GMStepper – swift 带动画效果、支持手势滑动操作的步进标签。
  • TZStackView – OS 9 UIStackView 功能模拟实现于 iOS 7/ iOS 8 内。
  • LayoutTrait – swift 一个小类库。 做iPad 多任务分屏 适配的同学可以看一下。
  • HACursor – HACursor,是一个对横向ScrollView中的视图进行管理的UI控件。只要几行代码就可以集成类似于网易新闻对主题页面进行排序,删除操作的功能。
  • ZTPageController – 模仿网易新闻和其他新闻样式做的一个菜单栏,栏中有各自的控制器,其中有4中展示样式’网易style’ ’搜狐style’ ’腾讯style1′ ’网易style2′ 。
  • Ruler – 尺子。
  • HUMSlider – HUMSlider是一款能够自动显示刻度记号的滑竿,滑动到某处,该处的刻度会自动上升,两边还能配置图像。支持代码或storyboard中实现。
  • JDSelectedDemo – 仿京东筛选菜单实现。
  • BTNavigationDropdownMenu – 下拉列表暨导航标题组件。简单、直接、易用 -swift。

动画

  • Core Animation笔记,基本的使用方法 – Core Animation笔记,基本的使用方法:1.基本动画,2.多步动画,3.沿路径的动画,4.时间函数,5.动画组。
  • awesome-ios-animation – iOS Animation 主流炫酷动画框架(特效)收集整理 收集整理了下iOS平台下比较主流炫酷的几款动画框架。
侧滑与右滑返回手势
  • SloppySwiper – iOS系统自带的UINavigationController要7.0才支持,但不过该手势只能从屏幕左侧边缘识别,如果要扩大到整个屏幕范围怎么办?配合一个SloppySwiper无需代码就可以轻松实现。此库支持iOS5.0以上版本(另外:Nav的title滑动不明显,本人写了2个类似的控件),SloppySwiper-demo :代码方式与storyboard方式。
  • SCNavigation – UINavigation可以右滑返回,隐藏UINavigationBar。
  • UINavigationController-YRBackGesture – 支持右滑返回手势,标题栏不动。
  • GHSidebarNav – 现在比较流行使用侧开(侧滑)菜单设计。试了不少控件,感觉GHSidebarNav*成熟,尤其对纯代码创建的界面兼容性*好。在Storyboard中使用GHSidebarNav侧开菜单控件。
  • iOS-Slide-Menu – 能够类似Facebook和Path那样弹出左右边栏侧滑菜单,还支持手势。多种可以自定义的属性 (非常不错)。
  • ECSlidingViewController – 侧滑菜单。
  • JASidePanels – 侧滑菜单,有左右菜单,有pop功能,支持手势侧滑,本人使用中:简单。
  • animated-tab-bar – 让 Tabbar items能显示萌萌的动画。
  • tabbar图标动画 – tabbar上图标的动画实现,源码推荐说明。
  • SideMenu – swift实现,一款带动画效果可定制 Slide Menu,可以学习其动画实现思路。P.S. 对于Hamburger式菜单,虽然很常用,不过,苹果并不鼓励使用,甚至有开发小组对其弊病用自家上线应用前后数据对比进行了抨击。
  • RESideMenu – 侧开菜单,qq类似。
  • JHMenuTableViewDemo – 仿网易邮箱列表侧滑菜单。
  • SlideMenuView – 炫酷侧滑菜单布局框架,Android版本的一致实现。
  • QQConfiguration – swift,QQ-iPhone端框架,左侧菜单栏拖动手势。
  • KGFloatingDrawer – 侧滑菜单,qq类似,KyleGoddard/KGFloatingDrawer:一款适合于大屏手机或平板的浮动抽屉式导航界面组件。效果很赞- 侧开菜单,qq类似(与RESideMenu类似)。
  • AIFlatSwitch – 一款带平滑过渡动画的 Switch 组件类,类相同风格的 Menu/BackHamburgerButton,类似相同风格的 Menu/Closehamburger-button.
  • JHChainableAnimations – 在应用中采用链式写出酷炫的动画效果, 使代码更加清晰易读,利用block实现的链式编程。
  • WXGSlideMenuDemo – 个简单实现侧拉(侧滑)菜单的小demo,供初学者共同学习、练习使用。
  • PKRevealController – PKRevealController是一个可以滑动的侧边栏菜单(可向左、向右或者同时向两侧),只需手指轻轻一点(或者按一下按钮,但是这样滑动时不够炫酷),这类控制的其他库,而PKRevealController是*棒的。安装简便,高度定制且对手势识别良好。可以当做一个标准控件用在iOS SDK中。
  • SwiftPages – 高可定制类似 Instagram 视图滑动切换功能类库。API 简单、易用。
  • FlipBoardNavigationController – FlipBoardNavigationController。
  • MMDrawerController – *多人用的一个有关侧边“抽屉”导航框架,里面还有很多你意想不到的交互效果,侧滑。
  • UIWebView翻页返回效果 – UIWebView翻页返回效果(变通方法)。
gif动画
  • UIImageView-PlayGIF – UIImageView-PlayGIF。
  • YLGIFImage – YLGIFImage。
  • YLGIFImage-Swift – YLGIFImage-Swift。
其他动画
  • popping – popping是一个POP 使用实例工程
  • SinaMenuView – 用POP动画引擎写的Sina微博的Menu菜单。
  • MMTweenAnimation – facebook POP的自定义动画扩展(基于POPCustomAnimation) 提供10种函数式动画。
  • ZQLRotateMenu – 这是一个旋转视图的选择器。
  • CoolLoadAniamtion – 一个简单但是效果不错的loading动画。
  • SequenRotateAnimation – 一个简单的loading次序动画。
  • SYAppStart – App启动插画的自定义过度。
  • VJDeviceSpecificMedia – 如何根据设备选择不同尺寸的图片 可以通过设置不同尺寸设备的LaunchImage,来使得App适配这些设备,要是在不同不同尺寸设备上使用不同大小的图片,则需要在代码中一一判断,然后加载。
  • RMParallax – RMParallax是一个app启动页引导开源项目,除了细微的翻页视差效果,描述文本的过渡也非常美观(版本新特性)。
  • ADo_GuideView – 转动的用户引导页(模仿网易bobo) 因为没有从app包里抓到@3x的图片,建议在iPhone5模拟器运行,保证效果~ (版本新特性)。
    • CoreNewFeatureVC – 版本新特性(引导页),1.封装并简化了版本新特性启动视图!2.添加了版本的本地缓存功能,3.集成简单,使用方便,没有耦合度,4.支持block回调。
  • Spring – Spring是一个Swift编写的开源库,可简化Swift编写的iOS动画。支持shake、pop、morph、squeeze、wobble、swing、flipX、flipY、fall、squeezeLeft、squeezeRight以及squeezeDown等多种动画形式,用 IBDesignable 让使用者可以在 Xcode 中快速设置动画效果。
  • KYBezierBounceView – 手势控制贝塞尔曲线,取消手势贝塞尔曲线会有反弹效果。
  • cadisplaylinkanduibezierpath – CADisplayLink结合UIBezierPath的神奇妙用。
  • KYCuteView – 实现类似QQ消息拖拽消失的交互+GameCenter的浮动小球效果,分析。
  • KYWaterWaveView – 一个内置波浪动画的UIView,里面有鱼跳跃水溅起来的效果。
  • KYPingTransition – 实现圆圈放大放小的转场动画,可以根据自己的需要使用Paper中的弹性效果,有Material风格。
  • KYNewtonCradleAnimiation – 牛顿摆动画。
  • LayerPlayer – 一款全面展示核心动画 API 示例项目(上架应用)。包括 CALayer, CAScrollLayer, CATextLayer, AVPlayerLayer, CAGradientLayer, CAReplicatorLayer, CATiledLayer, CAShapeLayer, CAEAGLLayer, CATransformLayer, CAEmitterLayer 等使用的互动演示。
  • JGTransitionCollectionView – swift,基于集合视图扩展实现完成自动布局及单元项 Flip式动画效果(效果很赞)。组件使用方便、自然(只需设置集合视图数据源的标准方式即可)。
  • KYShareMenu – 带弹性动画的分享菜单。
  • Context-Menu.iOS – 可以为app的菜单添加漂亮的动画内容,可自定义icon,并可根据自己的喜好设计单元格和布局。
  • DeformationButton – 一个简单的变换形状动画按钮。
  • UnReadBubbleView – UnReadBubbleView是一个能够拖拽并拉长的气泡视图。拖拽到一定的长度会消失,可以通过系数设置来控制拖拽的长度。气泡也支持多种属性设置。
  • PPDragDropBadgeView – 实现了类似于QQ 5.0 水滴拖拽效果. 支持iOS 5.0+ ARC,气泡能够带有数字标识,同时支持消失block方法。消失时还带有消失效果动画。
  • GiftCard-Implementation – 购买的炫酷动画。
  • iCarousel – iCarousel是一个类,它继承于UIView。用于简化实现各种类型的旋转木马(分页滚动视图),无限轮播 ,iOS开发之多图片无缝滚动组件封装与使用。
  • KIPageView – 无限循环PageView,横向TableView,无限轮播。
  • HotGirls – 卡片动画。
  • tispr-card-stack – swift 卡片风格动画切换组件及完整交互示例。
  • ZLSwipeableViewSwift – swift 卡片堆叠效果的实现(ZLSwipeableView)】可实现类似Tinder和Potluck应用程序的卡片堆叠效果,该项目基于ZLSwipeableView objective-c实现。1.自定义动画。2.自定义滑动切换。3.自定义方向。4.撤销。
  • Koloda – 基于卡片的 Tinder-style 动画效果示例。精细*人。更赞的是额外附了详细开发教程 How We Built Tinder-Like Koloda Animation in Swift 网页链接 。Yalantis 出品动画程序款款精品。
  • QQPersonalInfoTransition – 仿照QQ的转场。
  • KYAnimatedPageControl – 除了滚动视图时PageControl会以动画的形式一起移动,点击目标页还可快速定位。支持两种样式:粘性小球和旋转方块。
  • KDIntroView – swift 动态介绍视图框架及演示。另外两个相似的类库是 RazzleDazzle和 Presentation,择需使用。
  • RazzleDazzle – 【IFTTT开源Swift编写的帧动画框架–RazzleDazzle】RazzleDazzle 是IFTTT开源的一个iOS帧动画框架,非常适用于APP初次使用时的介绍和引导信息。JazzHands是UIKit一个简单的关键帧基础动画框架,可通过手势、scrollview、KVO等控制动画,被IFTTT应用在IFTTT for iPhone上。
  • Presentation – 一个类似RazzleDazzle的框架。
  • FillableLoaders – 基于 CGPaths 可定制个性化填空式装载类库。附水波上涨式示例。
  • SXWaveAnimate – 实现非常美观的灌水动画。
  • LSPaomaView – 可循环滚动的较长文字,跑马灯,效果很好,一句话集成。
  • SIFloatingCollection_Swift – 可定制的 Apple Music 风格浮动形状动画组件及演示。
  • Cheetah – 易用、高可读链式动画类库。另一个类似类库是 DKChainableAnimationKit。
  • CKWaveCollectionViewTransition – swift, UICollectionViewController之间切换的动画。
  • TKSubmitTransition – 基于 UIButton 的登录加载、返回按钮转场动画组件及示例。

网络相关

网络连接
  • AFNetworking – ASI不升级以后,*多人用的网络连接开源库,iOS网络编程之AFNetworking使用,iOS开发下载文件速度计算。
  • 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 。
图像获取
  • SDWebImage – SDWebImage 网络图片获取及缓存处理。
  • Kingfisher – 纯 Swift 实现的类 SDWebImage 库,实现了异步下载和缓存图片。
  • KFSwiftImageLoader – Swift,一个图像缓存加载库。
  • FastImageCache – FastImageCache 网络图片获取及缓存处理,iOS图片加载速度*限优化—FastImageCache解析。
  • EGOCache – 十分知名的第三方缓存类库,可以缓存NSString、UIImage、NSImage以及NSData。除此,如果还可以缓存任何一个实现了接口的对象。所有缓存的数据都可以自定义过期的时间,默认是1天。EGOCache 支持多线程(thread-safe),UITableView加载多张照片导致内存上涨的问题。
网络聊天
  • 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
  • SimpleCarrie – 简单的运营商信息获取!。
  • NetReachability – swift2.0 简单的方法检查网络连接的连通性,提供通知中心集成接口。
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解析变得简单。

其他

  • 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等)被键盘覆盖问题,并可设置高于键盘多少。
  • 自动监听键盘高度 – 自动监听键盘高度,初始界面,输入框在屏幕*下方,当键盘出现时,输入框随即移动到键盘上方。
  • 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 二维码阅读组件及示例,提供前后相机切换功能。
  • QRCatcher – 一个简洁美观的二维码扫描应用, iOS学习:AVFoundation 视频流处理–二维码扫描。
  • Parsimmon – swift,小而美的语言学类库封装工具包。提供分词、标记词性、词形归并、朴素贝页斯分类、决策树等自然语言分析小工具。P.S. 英语分词效果好于中文,感兴趣的同学可以针对中文做一些优化开发。参考译文 NSHipster – NSLinguistic​Tagger。
  • 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 完整应用。
  • iOS-Categories – 收集了许多有助于开发的iOS扩展,各种category。
  • Olla4iOS – 过去积累的一些方便复用的类和方法,还在整理中。
  • DKNightVersion – 用*快的方式给你的应用加上夜间和白天的切换效果。
  • TouchVisualizer – 实用的多点触摸可视化组件。扩展并作用于 UIWindows,结构上提供了简单地针对触摸显示定制,比如触摸点的颜色。
  • RegexKitLite – 用来处理正则表达式。
  • 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实用篇一)。

数据库

  • FMDB – sqlite的工具, 多线程FMDatabaseQueue实例,FMDB数据库的使用演示和封装工具类。
  • GXDatabaseUtils – 在FMDB基础上的工具。
  • realm-cocoa – Realm是一个真正为移动设备打造的数据库,同时支持Objective-C和Swfit。Realm宣称其相比Sqlite,在移动设备上有着更好的性能表现,官方中文。
  • Breeze – 用Swift写的一个轻量级的CoreData管理工具,并且还支持iCloud 。
  • AlecrimCoreData – Swift,更容易地访问 CoreData 对象封装类库。除了 CRUD,还提供指针定位,强大的排序、筛选,异步数据获取,以及独立线程后台存取数据。
  • CoreStore – Core Data 管理类库。 其中事务管理及查询是其比较大的亮点,整套 API 功能完整。
  • MagicRecord
  • MagicalRecord – MagicalRecord就像是给Core Data提供了一层外包装,隐藏掉所有不相关的东西。 其中事务管理及查询是其比较大的亮点,整套 API 功能完整。
  • Presentation – 重量级好项目 Presentation,它可以方便你制作定制的动画式教程、Release Notes、个性化演讲稿等。
  • CoreValue – Swift 2 版 Core Data 封装库。相比另外两个 SwiftRecord和 CoreStore更轻量。
  • SQLCipher – SQLCipher使用256-bit AES加密,SQLCipher分为收费版本和免费版本。官方教程,加密你的SQLite – 各种sqlite数据库加密介绍。 SQLCipherDemo下载 。

缓存处理

  • YTKKeyValueStore – Key-Value存储工具类,说明。
  • TMCache – TMCache 是 Tumblr 开源的一个基于 key/value 的数据缓存类库,可以用于缓存一些临时数据或者需要频繁加载的数据,比如某些下载的数据或者一些临时处理结果。
  • JLKeychain – 快捷使用keychain存储数据的类,使keychain像NSUserDefaults一样工作。
  • sskeychain – SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码、账户进行访问,包括读取、删除和设置。
  • KeychainAccess – 管理Keychain接入的小助手。

PDF

  • Reader – Reader可提供类似iBooks的文档导航,支持屏幕旋转和所有方向,并通过密码保护加密PDF文件,支持PDF链接和旋转页面。

图像浏览及处理

  • FLAnimatedImage – gif播放处理的工具。
  • CLImageEditor – 超强的图片编辑库,快速帮你实现旋转,防缩,滤镜等等一系列麻烦的事情。
  • ios-image-filters – 图像滤镜,库比较旧了,很容易崩溃。
  • XBImageFilters – 图像滤镜,。
  • VIPhotoView – 用于展示图片的工具类,因为是个 View,所以你可以放在任何地方显示。支持旋转,双击指定位置放大等。
  • MWPhotoBrowser – 一个非常不错的照片浏览器,在github的star接近3000个,解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题。
  • core-image-explorer – Core Image 滤镜处理图片– swift ,Core Image 介绍。
  • CoreImageShop – CoreImageShop图片滤镜处理– Mac app that let you create a complete Core Image Filter usable on iOS using SCRecorder。
  • GPUImage – 处理图片效果。
  • RSKImageCropper – 适用于iOS的图片裁剪器,类似Contacts app,可上下左右移动图片选取*合适的区域。
  • WZRecyclePhotoStackView – 删除照片交互–WZRecyclePhotoStackView,就是模拟生活中是删除或保留犹豫不决的情形而产生的。 在上滑,下滑的部分,借鉴了TinderSimpleSwipeCards。
  • TimingFunctionEditor – TimingFunctionEditor用swift编写, 贝塞尔曲线编辑器,编辑后可以预览或拷贝代码片段直接使用。P.S. 该项目采用更简单的依赖管理器 Carthage ,而非常用的 CocoaPods。Carthage介绍中文。
  • AAFaceDetection – AAFaceDetection–swift,简单、实用的面部识别封装库。虽然该技术从 iOS 5 发展,不过真正有趣的应用还不多。。
  • PhotoTweaks – 这个库挺赞的,正好是对图像操作的。
  • Concorde – swift, Concorde, 一个可用于下载和解码渐进式 JPEG 的库, 可用来改善应用的用户体验。
  • ZoomTransition – swift, 通过手势操控图片的放大、缩小、旋转等自由变化效果的组件及示例。
  • AFImageHelper – swift,一套针对 UIImage 和 UIImageView 的实用扩展库,功能包含填色和渐变、裁剪、缩放以及具有缓存机制的在线图片获取。
  • PinterestSwift – swift,Pinterest 风格图片缩放、切换示例。
  • KYElegantPhotoGallery – 一个优雅的图片浏览库。
  • SDCycleScrollView – 无限循环自动图片轮播器(一步设置即可使用)。
  • SDPhotoBrowser – 仿新浪动感图片浏览器,非常简单易用的图片浏览器,模仿微博图片浏览器动感效果,综合了图片展示和存储等多项功能。
  • HZPhotoBrowser – 一个类似于新浪微博图片浏览器的框架(支持显示和隐藏动画;支持双击缩放,手势放大缩小;支持图片存储;支持网络加载gif图片,长图滚动浏览;支持横竖屏显示)。
  • PhotoStackView-Swift – PhotoStackView——照片叠放视图,使用说明。
  • MarkingMenu – 基于手势、类似 Autodesk Maya 风格标记菜单及图片渲染。
  • SXPhotoShow – UICollectionViewFlowLayout流水布局 是当下collectionView中常用且普通的布局方式。本代码也写了三种好看的布局,其中LineLayout和流水布局有很大的相同点就直接继承UICollectionViewFlowLayout,然后StackLayout,CircleLayout这两种都是直接继承自*原始的UICollectionViewLayout 布局方案。
  • PictureWatermark – 主要实现了给图片加文字以及图片水印的功能,已封装成了UIImage的类别,方便使用。
  • CocoaPicker – 仿 QQ 图片选择器(OC)。
  • 自定义宽高比的相册框 拍照 – 取出照片时 弹出自定义view。在这个自定义view上创建一个需要的相框大小的view层 把取出的图片赋值给UIImageView按缩放添加到这个层上。对uiimageView添加捏合、移动 手势。添加按钮 选取,*后根据位移和缩放比例 裁剪image。

摄像照相视频音频处理

  • SCRecorder – SCRecorder 短视频录制。
  • VideoPushDemo – 视频剪辑 视频特效制作1 视频特效制作2。
  • LLSimpleCamera – A simple, customizable camera control for iOS, 摄像头。
  • EZAudio – EZAudio 是一个 iOS 和 OSX 上简单易用的音频框架,根据音量实时显示波形图,基于Core Audio,适合实时低延迟音频处理,非常直观。中文介绍,官网。
  • ffmpeg – ffmpeg官网,FFmpeg在iOS上完美编译。
  • VCL – VCL官网。
  • kxmovie – 使用ffmpeg的影片播放器,修改说明, 修改代码。
  • ijkplayer – B站开源的视频播放器,支持Android和iOS。
  • StreamingKit – StreamingKit流媒体音乐播放器。
  • FreeStreamer – FreeStreamer流媒体音乐播放器,cpu占用非常小。
  • DOUAudioStreamer – DOUAudioStreamer豆瓣的音乐流媒体播放器。
  • fmpro – 电台播放器,支持锁屏歌词,支持基本播放流程,歌词展示,后台锁屏播放和控制以及锁屏后封面+歌词,fmpro_R 。
  • IPDFCameraViewController – 支持相机定焦拍摄、滤镜、闪光、实时边框检测以及透视矫正功能,并有简单易用的API。
  • SCRecorder – 酷似 Instagram/Vine 的音频/视频摄像记录器,以 Objective-C 为基础的过滤器框架。 你可以做很多如下的操作:记录多个视频录像片段。删除任何你不想要的记录段。可以使用任何视频播放器播放片段。保存的记录可以在序列化的 NSDictionary 中使用。(在 NSUserDefaults 的中操作)添加使用 Core Image 的视频滤波器。可自由选择你需要的 parameters 合并和导出视频。
  • Cool-iOS-Camera – Cool-iOS-Camera。
  • FastttCamera – FastttCamera 快速照相。
  • ICGVideoTrimmer – ICGVideoTrimmer提供提供视频剪切的视图(类似系统相册中浏览视频时顶部那个条状视图)。左右两个边界选择器还能够自定义。
  • IOS录音和播放功能demo – 比较完整的ios录音和播放功能的实现。
  • CameraManager – 相机管理封装类库。看着*好用的样子—-swift。
  • MCAudioInputQueue – 简易录音类,基于AudioQueue的。
  • DraggableYoutubeFloatingVideo – 展示像类似Youtube移动应用的那种浏览视频的效果,当点击某视频时能够从右下方弹出一个界面,并且该界面能够通过手势,再次收缩在右下方并继续播放。这是通过AutoLayout设计实现。
  • amr – 做即时通讯的音频处理,录音文件是m4a,便于web端的音频播放。
  • FSVoiceBubble – 一个轻量级播放录音音频的气泡:1.支持短时间的音频播放(支持网络音频);2.播放时的声波动画;3.自定义包括声波的颜色,气泡的背景等。
  • KRVideoPlayer – 类似Weico的播放器,支持竖屏模式下全屏播放。
  • VideoBeautify – 功能酷似美拍,秒拍等应用的源码:对视频进行各种美化处理,采用主题形式进行分类,内含各种滤镜,动画特效和音效等。

响应式框架

  • ReactiveCocoa – ReactiveCocoa 受函数响应式编程激发。不同于使用可变的变量替换和就地修改,RAC提供Signals来捕获当前值和将来值( 使用介绍 ),不错的例子,入门好教程:ReactiveCocoa入门教程:*部分 。Reactive Cocoa 3.0 在 MVVM 中的应用 。
  • ReactiveAnimation – ReactiveCocoa 推出了一个叫 ReactiveAnimation 的子项目,直接用完全用 Swift 来实现了。
  • BeeFramework – 与ReactiveCocoa类似,BeeFramework用户指南 v1.0。
  • Objective-Chain – Objective-Chain是一个面向对象的响应式框架,作者表示该框架吸收了 ReactiveCocoa 的思想,并且想做得更面向对象一些。

消息相关

消息推送客户端
  • SGPushDemo – 消息推送客户端
  • Orbiter – 消息推送客户端:Push Notification Registration for iOS.
  • PushDemo – 客户端消息接收消息代码,IOS开发之 —- IOS8推送消息注册 , 分分钟搞定IOS远程消息推送。
消息推送服务端
  • javapns源代码 – 消息推送的java服务端代码,注意:DeviceToken中间不能有空格。
  • pushMeBaby – Mac端消息推送端代码,注意:DeviceToken中间要有空格。
通知相关
  • JSQNotificationObserverKit – 一款轻量、易用的通知发送及响应框架类库。作者是知名开源项目 JSQMessagesViewController(Objective-C 版即时聊天)的作者 Jesse Squires.
  • GLPubSub – 一个简短实用的 NSNotificationCenter 的封装。
  • Homeoff – 用swift写了一个模仿Launcher通知中心快捷方式的应用。支持20个应用,并增加了一个返回到桌面来解放Home键的功能。
  • JDStatusBarNotification – 在状态栏顶部显示通知。可以自定义颜色字体以及动画。支持进度显示以及显示状态指示器。

版本新API的Demo

  • appleSample – iOS 苹果官方Demo合集, 官方demo.
  • iOS7-Sampler – 整合了iOS7.0的一些十分有用的特性,比如:Dynamic Behaviors、碰撞检测、语音合成、视图切换、图像滤镜、三维地图、Sprite Kit(动画精灵)、Motion Effect(Parallax)、附近蓝牙或者wifi搜索连接、AirDrop、运动物体追踪(iPhone 5S以上,需要M7处理器)等等。对于日常的应用开发十分实用。
  • iOS8-Sampler – 日本的shuさん制作的 iOS8 参考代码集。01.Audio Effects ;02.New Image Filters;03.Custom Filters;04.Metal Basic;05.Metal Uniform Streaming;06.SceneKit;07.HealthKit;08.TouchID;09.Visual Effects;10.WebKit;11.UIAlertController;12.User Notification;13.Pedometer;14.AVKit;15.Histogram;16.Code Generator;17.New Fonts;18.Popover;19.Accordion Fold Transition
  • iOS-9-Sampler – 通过实例介绍了iOS 9 SDK中重要新特性的使用。
  • MTSwift-Learning – 通过一些简单项目实战演练开始学习 Swift 。
  • iOS8-day-by-day – swift。
  • iOS9-day-by-day – swfit iOS9 Day-by-Day :: Day 2 :: UI Testing。
  • iOS 9 分屏多任务 – iOS 9 分屏多任务:Slide Over & Split View快速入门(中文版)。

代码安全与密码

  • ios-class-guard – 一个用于混淆iOS的类名、方法名以及变量名的开源库–有人反映编译出来的app运行不了。
  • 《Protecting iOS Applications》:文章系统地介绍了如何保护iOS程序的代码安全,防止反汇编分析。
  • fishhook – fishhook是Facebook开源的一个可以hook系统方法的工具。
  • GesturePassword – 一个iOS手势密码功能实现,iPad/iPhone 都可以用,没有使用图片,里面可以通过view自己添加。keychain做的数据持久化,利用苹果官方KeychainItemWrapper类。操作部分都在controller了。删除直接用一下clear。
  • JMPasswordView – 简单实用的手势密码,效果可自行调控。
  • 仿密码锁-九宫格 – 仿密码锁-九宫格,主要是使用UIButton 手势事件 UIBezierPath画图,解锁失败弹出“密码错误”。
  • CoreLock – 本框架是高仿支付宝,并集成了所有功能,并非一个简单的解锁界面展示。个人制作用时1周多,打造解锁终结者框架。
  • LikeAlipayLockCodeView – 高仿支付宝手势解锁(超级版)。
  • PCGestureUnlock – 目前*全面*高仿支付宝的手势解锁,而且提供方法进行参数修改,能解决项目开发中所有手势解锁的开发。
  • ICPayPassWordDemo – CPayPassWordDemo,一个模仿支付宝支付密码输入对话框小demo。
  • RSAESCryptor – 加密 RSA+AES Encryption/Decryption library for iOS. This library uses 2048-bit RSA and 256-bit key with 128-bit block size AES for encryption/decryption。

测试及调试

  • HeapInspector – HeapInspector是一个用于检测应用中的内存泄漏的开源调试工具。
  • Crashlytics – Crashlytics 崩溃报告 崩溃日志 使用说明 。
  • UIViewController-Swizzled – 把你进入的每一个controller的类名打出来,如果看一些特别复杂的项目的时候直接运行demo就可以知道执行次序了。
  • snoop-it – snoop-it比UIViewController-Swizzled好用,代码托管在google上。
  • Versions – 版本比较小工具。
  • MobileWebPageTest – MobileWebPageTest是用来测试移动网页性能的软件,它可以对页面的加载和渲染过程进行截屏,协助开发者分析出页面性能瓶颈。
  • KKLog – 一个日志管理系统。
  • CleanroomLogger – 相当于 CocoaLumberjack 或 Log4j 的 Swift 版本,功能上甚至更强大。另外,源代码中已经内含了完整的 API 文档,使用非常方便。 Buildasaur – 自动测试框架 Buildasaur。MMPlaceHolder – 一行代码显示UIView的位置及相关参数。 使用Quick框架和Nimble来测试ViewControler – Quick是一个用于创建BDD测试的框架。配合Nimbl,可以为你创建更符合预期目标的测试。
  • fastlane – 一套iOS开发和持续集成的命令行工具fastlane,可以用来快速搭建CI甚至自动提交的开发环境。这套工具中包括了上传ipa文件,自动截取多语言截屏,生成推送证书,管理产品证书等一系列实用工具。
  • KIF – 是一个开源的用户界面UI测试框架. 使用 KIF, 并利用 iOS中的辅助功能 API, 你将能够编写模拟用户输入,诸如点击,触摸和文本输入,自动化的UI测试.
  • Quick – 用于Swift中的单元测试(也可用于Objective-C),与Xcode整合在一起。如果你是Objective-C的粉丝,我建议用Specta代替这个,但是对Swift使用者来说,Quick是*佳选择。
  • Sleipnir – Swift的测试框架。
  • kiwi-bdd – TDD或BDD,objective-c语言的测试框架,*流行的BDD测试框架了,Kiwi*受欢迎(根据github上的star数来推断,行为描述和期望写起来也比较易懂,至少我是这么认为的) iOS开发中的测试框架。
  • specta – TDD或BDD,objective-c语言的测试框架,用的人多。
  • cedar – TDD或BDD,objective-c语言的测试框架,用的人少。

AppleWatch

  • Tesla汽车AppleWatch app demo演示 – 通过AppleWatch控制特斯拉汽车,同时可以看到汽车的相关信息,比如剩余电量、可续行里程等,以及解锁/上锁车门、调节司机和乘客的四区域空调温度、开启车辆大灯、定位汽车等。源码推荐说明。
  • WatchKit-Apps – WatchKit 开源小项目示例集锦。是不可多得地学习 WatchKit 的示例式教程(1.如何创建一个简单的交互式计数器;2.如何从手表上控制iOS app;3.如何在WatchKit app和iOS app之间共享数据;4.如何创建一个拥有不同背景色的数字时钟;5.展示不同的UI层;6.如何创建支持滑动手势的应用程序。)。
  • KYVoiceCurve – 类似Apple Watch中语音的声音曲线动画。
  • IGInterfaceDataTable – IGInterfaceDataTable是WKInterfaceTable对象的一个类别,可以让开发者更简单地配置多维数据。该项目使用类似UITableViewDataSource的数据源模式配置Apple Watch表格,而不是将数据结构扁平化成为数组。
  • Apple Watch开发教程资料汇总 – Apple Watch开发教程资料汇总。
  • Stargate – 通过 iPhone 桥接实现 Mac 与 Watch 的即时通讯。Stargate 通过封装两个优秀的基础类库 MMWormhole 和 PeerKit 实现高效的通讯应用。–swift
  • soon – 一款倒计时 WatchKit 示例应用。作者从架构的角度,思考如何设计一款完整、通讯高效且性能又好的 WatchKit 扩展应用。该示例学习性非常强。–swift
  • watchOS-2-Sampler – 基于 watchOS 2 若干新特性,写了相应的示例代码供大家学习、参考。
  • HMWatch – HMWatch是个有待完善的watchOS 2.0 HomeKit 应用示例。
  • CocoaMultipeer – CocoaMultipeer这个开源框架支持OS X, iOS和watchOS设备间的点对点通信,解决watchOS和Mac之间通信的方案还是很有用的。
  • HighstreetWatchApp – 是电商平台Highstreet针对App Watch的一款应用,该demo中加载的是虚拟数据。
  • NKWatchChart – NKWatchChart是一个基于PNChart专门为Apple Watch 开发的图表库,目前支持 line, bar, pie, circle 和 radar 等 图表形式。

*

  • *on – swift的* On 的源码和本地化内容都是开放的: 官方网站。
  • Hydro.network – Hydro.network 的开发旅程, gitcafe。

完整项目

  • v2ex – v2ex 的客户端,新闻、论坛。
  • apps-ios-wikipedia – apps-ios-wikipedia 客户端。
  • jetstream-ios – 一款 Uber 的 MVC 框架。它同时提供了多用户实时通讯支持,一旦启动 JetStream 后端服务,通过 WebSocket 协议可以分分钟建立多用户实时通讯应用。
  • DeckRocket – 在相同 WiFi 网络环境内,通过iPhone 控制并播放 Mac 中的 PDF 文档。
  • ScanBook – 扫扫图书:可以扫描条形码查询图书,也可以关键字搜索,遇到合乎你口味的书,还可以看看别人的读书笔记,不同角度去体会。
  • DesignerNewsApp – Swift 开发的 DesignerNews 客户端,看着美美的!
  • KYWeibo – 调用新浪API自己写的第三方微博客户端。
  • DouQu_IOS – 逗趣IOS手机端(一款笑话软件),拥有完整的功能的手机应用app 。
  • IT江湖iOS客户端 – IT江湖iOS客户端。
  • Eidolon – 艺术品拍卖的投标亭平台,用swift与反应式编程框架 ReactiveCocoa。
  • CrazyPuzzle – 模仿“看图猜成语”App,功能齐全,配有音效,效果很不错。游戏使用cocoa框架完成,没有使用cocos2d的框架。
  • WhoCall – 谁CALL我,iOS来电信息语音提醒,无需越狱。(需要iOS 7.0及以上版本。)骚扰电话预警、来电归属地提醒、联系人姓名播报,这些有中国特色人性化的电话功能,iOS上也应该有。电话提醒、私有API。
  • 仿iOS猎豹垃圾清理(实现原理+源码) – 仿iOS猎豹垃圾清理(实现原理+源码),用到私有API。
  • DSLolita – 模仿新浪微博做的一款app,有发送博文,评论,点赞,私聊功能。
  • GSD_ZHIFUBAO – 支付宝高仿版。
  • Tropos – Tropos, 由 thoughtbot 推出的一款用 Objective-C 写的开源天气类应用, 截至今天, thoughtbot 已在 GitHub 上贡献了 174 个开源项目, 实在令人敬佩。
  • SmileWeather -开源天气类应用,天气图标很完整。
  • MVVMReactiveCocoa – GitBucket 2.0 通过审核啦,她是我在公司实践了一年多 MVVM 和 RAC 的基础上,利用业余时间开发的第三方 GitHub 客户端,旨在能够对想实践 MVVM 和 RAC 的 iOS 开发者有所帮助。AppStore地址,欢迎下载使用GitBucket和收藏MVVMReactiveCocoa。
  • Tomate – 这个圆盘式计时器让你更专注于工作或学习。P.S. App Store 上架收费应用(0.99 欧)。
  • StoveFireiOSMenu – 炉火餐饮系统iPad点餐端。
  • BaiduFM-Swift – 百度FM, swift语言实现,基于*新xcode6.3+swift1.2,初步只是为了实现功能,代码比较粗燥,后面有时间会整理,支持Apple Watch。
  • WNXHuntForCity – iOS高仿城觅项目(开发思路和代码)。
  • ZYChat – 关于聊天界面的可消息类型扩展,响应绑定设计。
  • NiceAppDemo – 仿*美应用-每日*美的钢琴律动效果。
  • meituan – 美团5.7iOS版(高仿),功能包括,团购首页,高德地图搜索附近美食并显示在地图上,上门服务,商家,友盟分享。
  • chuanke – 高仿百度传课iOS版。
  • Tuan – 模仿MJ老师iPad版美团(swift版),偶有bug 见谅。
  • SXNews – 模仿网易新闻做的新闻软件,完成了主导航页,新闻详情页,图片浏览页,评论页。效果不错,比网上流传的各种和网易新闻UI架构有关的代码都要完整,都要好。
  • Monkey – Monkey for GitHub是一个GitHub开发者和仓库排名的开源App。这次主要增加了登录GitHub的功能,随手follow和star,并且增加发现模块,包括GitHub的trending,动态,showcases等。
  • Uther – 跟蠢萌的外星人聊天,还能帮你记事”。itunes下载 。

好的文章

  • 自定义转场动画 – 3 种方法~ 关于自定义转场动画。
  • iOS提高效率的方法和工具 – iOS提高效率的方法和工具。
  • 用 JSON 构建 API 的标准指南 – 用 JSON 构建 API 的标准指南。

Xcode插件

  • iOS开发进阶,从Xcode开始 – 学习使用Xcode构建出色的应用程序!
  • 在Xcode启动的时候,Xcode将会寻找位于~/Library/Application Support/Developer/Shared/Xcode/Plug-ins文件夹中的后缀名为.xcplugin的bundle作为插件进行加载(运行其中的可执行文件)。Xcode5 Plugins 开发简介 写个自己的Xcode4插件
  • Xcode 4 插件制作入门 – Xcode 4 插件制作入门:Xcode所使用的所有库都包含在Xcode.app/Contents/的Frameworks,SharedFrameworks和OtherFrameworks三个文件夹下。其中和Xcode关系*为直接以及*为重要的是Frameworks中的IDEKit和IDEFoundation,以及SharedFrameworks中的DVTKit和DVTFoundation四个。
  • RTImageAssets – 一个 Xcode 插件,用来生成 @3x 的图片资源对应的 @2x 和 @1x 版本。Asset Catalog Creator 功能强大,能自动生成全部尺寸:包括App Icons、Image Sets、Launch Screens Generator。
  • VVDocumenter-Xcode – 一个Xcode插件,build后,随手打开一个你之前的项目,然后在任意一个方法上面连按三下”/”键盘,就ok了。
  • Reveal-Plugin-for-XCode – 一个Reveal插件,可以使工程不作任何修改的情况下使用Reveal,该插件已在Alcatraz上架。Reveal:分析iOS UI的利器 。
  • java2Objective-c – Google公司出得java转Obje-C转换工具,转换逻辑,不转换UI。
  • RegX – 专治代码强迫症的 Xcode 插件,使用 Swift 和 Objective-C 编写。其用竖向对齐特定源代码的元素,使得代码更易读和易理解。说明 ; 菜单:xcode——》Edit-》Regx 。
  • KSImageNamed – 自动完成,特别是如果你正在写Objective-C,如果Xcode能自动完成文件名难道不会很伟大吗?比如图像文件的名称。
  • FuzzyAutocomplete – Xcode的实现自动完成还不完美,此插件能给出你所期望或想要的建议,设置:xcode-》Editor-》FuzzyAutocomplete-》plugin settings。
  • GitDiff – Xcode的代码编辑器的一个微妙的补强,加上了足够的可见信息以了解上次git提交以来发生了什么变化,设置:xcode-》Edit-》GitDiff。
  • XToDo – 这个插件不仅凸显TODO,FIXME,???,以及!!!注释,也在便利列表呈现他们。 菜单:xcode-》view-》snippets; 调出列表显示: xcode-》view-》ToDo List : ctrl + T 。
  • Backlight – 突出显示当前正在编辑的行。菜单:xcode-》view-》Backlight 。
  • CocoaPods – 该CocoaPods的插件增加了一个CocoaPods菜单到Xcode的产品菜单。如果你不喜欢命令行,那么你一定会喜欢这个插件。 用CocoaPods做iOS程序的依赖管理 。
  • Peckham – 添加import语句比较麻烦,此插件 按Command-Control-P,给出的选项列表中选择要的头文件。先要安装Alcatraz ,在终端输入: curl -fsSLhttps://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh ; 重启xcode-》window-》Package Manager:搜索 Peckham 安装,打开Peckham.xcodeproj,编译 Peckham target,重启Xcode 。
  • Auto-Importer – Auto-Importer是一个自动导入类对应的头文件的Xcode插件。
  • Alcatraz -使用Alcatraz来管理Xcode插件 使用说明 。
  • KSHObjcUML -KSHObjcUML 是一个 Objective-C 类引用关系图的 Xcode 插件。
  • ColorSense-for-Xcode – 颜色插件,安装之后,就不用根据RGB选择颜色,直接从取色板中取颜色,会自动补齐RGB代码。。
  • 10款提高iOS开发效率的XCode插件 – 10款提高iOS开发效率的XCode插件:1. XcodeColors;5. ACCodeSnippetRepository;10. Dash for Xcode。
  • ZLGotoSandboxPlugin – 支持Xcode快捷键了跳转当前应用沙盒了!快捷键是 Shift+Common+w。
  • XcodeSwiftSnippets – XcodeSwiftSnippets, 提供了很多可在 Xcode 上使用的 Swift 代码片段, 通过自动补全的方式*大的提高了开发效率, 另外还有 Objective-C 版的。
  • CoPilot – 通过此插件, Xcode 可以协同编程了(采用 WebSocket 通讯)。如此强大的“黑工具”,不爱它能行吗。
  • ESJsonFormat-Xcode – 将Json格式化输出为模型的属性。
  • SCXcodeMiniMap – Xcode迷你小地图-SCXcodeMiniMap。
  • xTransCodelation – XCODE中英文翻译插件,提供API查询模式和网页模式,都是利用的百度翻译。另外集成了一个可以一键关闭其他所有APP的实用功能,方便开发者!

美工资源

  • TWG_Retina_Icons – 一套支持 Retina 高清屏的 iPhone 免费图标集。
  • ASCIImage – 使用 NSString 创建 image,说明。
  • my-sketch-colors – 配色。
  • Font Awesome – Font Awesome:一套*佳的图标字体库和CSS框架,详细的安装方法请参考官方网站中文网站,GitHub地址 。
  • DynamicColor – 强大的颜色操作扩展类。通过该类,你可以通过扩展方法基于某个颜色得到不同深浅、饱和度、灰度、色相,以及反转后的新颜色。是不可多得的好类库。
  • Chameleon – Chameleon是一个iOS的色彩框架。它运用现代化flat color将UIColor扩展地非常美观。我们还可以通过它运用自定义颜色创建调色板。它还有很多功用,请浏览readme。
  • FontBlaster – 载入定制字体时更简单。

其他资源

  • githuber – *好用的GitHub人才搜索工具。
  • codatlas – 源代码搜索利器。
  • searchcode – 源代码搜索利器:来自悉尼的代码搜索引擎汇聚了 Github, Bitbucket, Sourceforge…等多家开源站点超20万个项目、180亿行源代码,能以特殊字符、语言、仓库和源方式从90多种语言找到函数、API的真实代码。
  • kitematic – Mac 上使用 Docker *简单的方案。

开发资源

开发资料
  • 豆瓣iOS开源库列表 – 豆瓣iOS开源库列表,很多开源项目。
  • iOS-Core-Animation-Advanced-Techniques – 中文版iOS 高级动画技术。
  • iOS开发的一些奇巧淫技1 – TableView不显示没内容的Cell怎么办; 键盘事件:IQKeyboardManager; app不流畅:KMCGeigerCounter; CoreData用起来好烦:MagicalRecord; CollectionView实现悬停的header:CSStickyHeaderFlowLayout。
  • iOS开发的一些奇巧淫技2 – 用一个pan手势来代替UISwipegesture的各个方向、拉伸图片、播放GIF、上拉刷新、把tableview里cell的小对勾的颜色改变、navigationbar弄成透明的而不是带模糊的效果、改变uitextfield placeholder的颜色和位置。
  • cocoapods安装指南 – cocoapods安装指南。
  • RemoteControl – Control your iPhone from inside Xcode for end-to-end testing 。
  • MVVM 介绍 – 替换MVC的开发模式。
  • 第三方接口 – 基本所有第三方接口都在这,再也不用那么麻烦去找了。
  • 提高iOS开发效率的方法和工具 – 提高iOS开发效率的方法和工具。
  • 禅与 Objective-C 编程艺术 – 禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)。
  • Objective-C编码规范:26个方面解决iOS开发问题 – 【Objective-C编码规范:26个方面解决iOS开发问题:“我们制定Objective-C编码规范的原因是我们能够在我们的书,教程和初学者工具包的代码保持优雅和一致。”今天分享的规范来自raywenderlich.com团队成员共同完成的,希望对学习OC的朋友们有所指导和帮助。
swift
  • Swift中文指南 – 中文版Apple官方Swift教程《The Swift Programming Language》,老码版本 历史版本更新说明。
  • The Swift Programming Language 中文版 – The Swift Programming Language 中文版。
  • swifttoolbox – swifttoolbox swift开发的开源库汇总。
  • SwiftGuide – 这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排– 非常不错,值得推荐。
  • Swift开源项目精选 – Swift开源项目精选–推荐,每周都有更新。
  • Awesome Swift – 一个收集了很多 Swift 开发资源的网站。
  • Developing_iOS_8_Apps_With_Swift – Developing iOS 8 Apps with Swift 字幕简体中文翻译项目(斯坦福白胡子老头swift教学视频)。
  • Swift-On-iOS – JohnLui 的 Swift On iOS 代码仓库。
他人开源总结
  • code4app – *多国人用的代码库。
  • cocoachina – 国内*热门的iOS社区的代码库。
  • awesome-ios – 一个老外整理的,中文版。
  • awesome-ios-ui – 收集了不少 iOS UI/UX 库, 包含了很多酷炫的动画效果。
  • ios-cosmos – The iOS Cosmos:收录了IOS*大部分的开源框架和工具。
  • Awesome Haskell资料大全 – Awesome Haskell 资料大全:框架,库和软件。
  • Cosmos – The iOS Cosmos:收录了IOS*大部分的开源框架和工具。
  • cocoacontrols – 收集了很多UI控件效果代码,缺点是需要*,而且代码分类不够好。
  • lexrus – lexrus国内出名的iOS开源coder,非常库的label动画、textfield动画。
  • open-source-ios-apps – iOS App集合,分:swift与Objective-C–国外人整理。
  • 适合iOS开发者的15大网站推荐 – 适合 iOS 开发者的 15 大网站推荐 — 英文网站。
  • Objective-C GitHub 排名前 100 项目简介 – 主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况。
  • Github-iOS备忘 -整理了比较常用的iOS第三方组件,以及github上的统计。
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速