Total Pageviews

Tuesday 15 October 2024

快速了解必要的网络知识

 

以太网有以太网的通讯标准,标准由IEEE制定,IEEE和ISO一样是个标准组织,如今的链路层均遵循其标准,这是一系列的标准,相当庞大而复杂(如果细分的话,以太网本身就有多种标准)这个系列标准叫“IEEE 802系列”,IEEE 802系列标准之庞大,包括了几乎所有我们能见到的网络——以太网、2G、3G、4G、WIFI、近场通讯……等等,而每个我们熟悉的名词拆分开又有不同的标准定义,真是烦!——所幸的是我们不需要管那么多,我们只需要知道,在链路层上传输的单元叫“帧”,而帧中包含了“MAC地址”,俗称“物理地址”,链路层不提供路由功能,若无上层协议的支持,链路层只能实现直接连接的节点之间通讯,比如你的电脑的网口连着公司的交换机,只依赖链路层的话,你的电脑就只能跟公司的交换机聊聊天。关心链路层的人更多的是电子工程师或网管,我等码农大致看看就好。

如何路由?

网络层是对链路层的封装,最重要的东西应数IP地址,有了IP地址,就有了路由的能力,使得通讯可以跨越多个节点,实现网间通讯了,这相当好理解,交换机理解IP地址和网口的对应关系,它知道这个网络包(前面叫“帧”,这里叫“包”了,哈哈,真会整人)应该往哪个网口丢,如果实在不知道,那么就往“网关”丢,网关再往别处丢,如果IP地址正确,网络也没什么问题,那总归能抵达目的地的,这就是IP协议最重要的任务——路由。

也许你想问:有没有不用IP协议的网络?有啊,蓝牙设备通常就不用(蓝牙的规范且不在IEEE802系列中),其实是没必要,因为它通常只作为单点连接,不需要实现网间通讯,反过来说,如果要实现网间通讯,应该没什么比IP协议更合适的了。

为啥要弄个端口出来?

光有IP地址,恐怕还不够,想想我们电脑上N多程序都需要使用网络,那么如何区分程序各自的网络访问包呢?如果分不开,那岂不是乱了套,所以要用传输层包装,传输层包装里多了一个“端口”的东西。例如:我们在电脑上启动Web服务器,默认打开了80端口监听,一个端口只能由一个程序打开,这样就不会乱套了。端口是对网络层的进一步扩展,对上层提供了更友好的使用界面。

TCP如何做到有连接?

有了TCP协议,从此有了“连接”的概念,否则你想连接从何而来?从网络层上看,反正都是一个个网络包,前一个包传了过去,后一个包被交换机卡住了,没看出来“连接”在哪里啊,其实“有连接”只是个概念,它的原理是通过那些“握手”、“挥手”、“心跳”、“应答”和“超时检查”在传输的双方保持了一些“状态”,所以,准确说是“看起来有连接”而已。

对开发者而言网络到底是怎样的存在?

那传输层体现在应用程序上又是个怎么样的东西?——是Socket。网络编程是件挺头疼的事情,从一开始就是,所以弄了个Socket的概念出来方便我们程序员访问网络,这最早是出现在Unix系统上的,后来Windows也借鉴了这套方法,搞了套自己的Socket API,用起来大家都很像。总体的编程思想大概就是(以TCP客户端为例):指定目标服务器IP地址和端口,连接,获取到了Socket(通常用一个整型数来表示),以后就往这个Socket上读写东西(跟读写本地文件有些类似)来实现收发,中间还可以用一些函数查询这个Socket的状态,不用了之后就close掉这个Socket以断开TCP连接。这是比较简单的情形,事实上,为了更好地挖掘系统的潜能,提高系统的网络吞吐量,不同的系统还祭出了自己的一些所谓高级网络编程模型,如Windows的完成端口,Linux的epoll等,但对程序而言,网络访问依旧是对Socket进行操作。实际上,程序员们仍然认为Socket是比较底层的东西,需要进一步抽象,于是诞生了如HttpContext之类东西,大伙们不再需要直接操作Socket了,甚至都可以不知道Socket的存在。

TCP提供了哪些可靠性?

主要两方面:成功保障和次序保障。对于成功保障,很好理解,如果网络包发送成功,对方应答一下,发送方便知道了,认为接收方一定成功接收;而次序保障,则是通过在传输包中加入一个次序标识来实现的,当传输包抵达对方节点时,TCP根据次序标识对收到的内容重新“组包”。那么,现在考虑一下这种可能性:发送方的包确实已经发送至接收方了,但接收方的应答却没有成功发往发送方,这时候是不是会错误判断为发送失败?——答案是肯定的,所以TCP有个重发机制,当迟迟没收到应答的时候,会尝试重发数次,如果依旧出现没有应答,那就真的判定为失败了,所以TCP能知道“一定成功”,但却无法知道“一定失败”。

真的可靠吗?

TCP连接为我们的程序通信创造了一条“通道”,我们程序间发送数据就变得有保障起来,那根据上面提供的这些信息,你认为这条通道有多牢靠?——事实上是这样的:如果网络系统确确实实按照了既定的规则去工作的话,可靠性是显而易见的,但,谁说网络上途径的这么多节点每个都会老老实实工作?有没有可能在传输过程中将我们的包截获并篡改?或者干脆就直接造一个假的包冒充发送?——我说,这种事情不光可能,而且一直在发生!不需要我证明给你看,你自己想想,有没有自己建了一个好端端的网站,别人打开的时候却无缘无故弹出广告之类的事情发生?而你确信自己的网站没问题,没中病毒之类的……恭喜你啊,你的网站被电信劫持了,你的页面在传输中被篡改了,HTTP协议是基于TCP的,所以你说从这个角度看可不可靠?



如何做到真的可靠?

当然是使用SSL,SSL现在又叫TLS,但旧名字叫惯了就沿用下来,它是在传输层上包了一层加密,这层加密实现了这些功能:

  • 密钥不直接在网络上传输(通过一个非对称加密实现)
  • 所有数据皆经过加密,即便截获也没用
  • 如果试图伪造或篡改数据包,那接收方一定知道数据不合法并丢弃

另外SSL还可以通过层级证书手段,对传输方的身份进行认证。某大牛说过:“没有SSL的安全都是在假装安全。”用了SSL之后,传输安全了,网站图标绿了,框也不弹了。另外注意:SSL是用来防范“中间人攻击”的手段,至于主机上中了木马之类的,它却无能为力。

关于TCP还有哪些东西没谈?

太多了,比如流量控制,但我不打算说,否则此文就没什么意义了。一般来说,需要的时候才去学比较好,虽然技不压身,这个谁都清楚,可学习技术要花不少时间,而且最关键的是:人是会遗忘的,尤其是学而不用的话。

不是还有个叫UDP的东西吗?

传输层有两套协议,一是前面提到的TCP,另一是UDP,TCP如今大行其道,而UDP则用得很少,UDP是无连接协议,比TCP简单得多,最形象的比喻就是以前的“写信”,我写好信了之后(发送的数据),把信装进信封(UDP包),写上地址和收件人(IP地址端口),扔进邮箱(send)即可,既不等待应答,也不保证次序,也没有连接通道的概念。由于UDP形式如此简单,所以在以前某些特定的环境里,它传输效率高于TCP,所以被用于一些对传输性能要求比较苛刻的场景,如网游,但现在世道变了,网络资源不再像当年那么紧张,TCP显然是更好的选择。当然了,还有些特殊场合是非用UDP不可的,如实现局域网广播,这个TCP做不到。

为什么IP地址仍然不枯竭?

我们常说的IP地址指的是IPv4地址,例如“10.186.3.21”,其实它是个32位整型,表面上看最高可支持2的32次方个节点,即42亿多,事实上远远没那么多,首先其中有很多属于“保留地址”,做特殊用途使用的,其次,大量优质地址段被一些寡头占据了(主要是美国政府及美国一些科技公司),所以剩下的可用地址可谓宝贵,国人早意识到了这点,所以很早就发力研究IPv6,我在N年前就看到过国内XX大学的教授在带学生研究IPv6的一些报道,号称我们走在了世界领先,报道还做了一些技术细节介绍,如IPv4是“xxx.xxx.xxx.xxx”这样(四段),而IPv6则变成了“xxx.xxx.xxx.xxx.xxx.xxx”(六段),所以地址多了很多……我晕!我虽然读书少,但也少拿这个来糊弄我了,事实上的IPv6地址高达128位,与之最接近的是什么?——作为程序员,马上回答!UUID啊!UUID不也128位么?——有点跑题了,回到正题,为啥现在IP地址仍然不枯竭?——那是因为我们绝大多数人都没有公网地址。这个你可以马上自己试试,比如你的手机,连着3G,貌似接入了公网了,你还可以在设置中看到自己的IP地址,这是运营商分配的,但我向你保证,这个地址其实是运营商的局域网地址,要证明很简单,你用手机浏览器打开http://www.ip138.com/看看自己的“公网IP”,是不是不一样?也就是说,你想用手机当服务器让Internet上的用户来连是不行的。虽然没有公网,但通过NAT,我们照样访问Internet没啥问题。至于推IPv6的事情,我觉得还是让教授们去干吧。

为什么到处都是HTTP?

我想那是因为——简单!HTTP是一个基于TCP的请求/应答模型的协议,客户端一问,服务器一答,就这么简单,跟程序里的函数调用似的,所以很多RPC在底下也使用了HTTP协议,HTTP协议还使用了非常易读的文本格式,一出就被广泛追捧。如今广泛使用的HTTP 1.1协议最后的一次修订是在1999年,距今17年了,看吧,越是简单基础的东西越不容易变化。

如何抓包分析?

如果仅仅是想抓取HTTP包的话,IE的HttpWatch Pro是不错的东西,Firefox下有个跟它类似的叫“httpfox”,我不知道现在还在不在,chrome的话本身也提供了一些简单的查看http包的功能。想专业一点的话可以考虑用Fiddler,Windows环境下的抓包利器,Mac下则用Charles。当然了,最强大(但也很复杂)的抓包神器当然是Wireshark,这玩意儿甚至能看链路层的帧。

最后讲点有趣的?

很多年前我的公司由于网口少,我跟一个同事共用一个网口(通过一个集线器),集线器这玩意儿跟交换机不同,它不会“路由”,收到任何包都是直接广播到所有网口,于是我用抓包工具抓了一些网络包,这位同事用MSN的聊天信息我全部都能看到,由于这样,我后来一直不敢用MSN在公司里乱说话,你想MSN这么烂的东西为啥公司喜欢让我们用呢?不过几年后MSN用户就几乎绝迹了.

简易nginx TCP反向代理设置



nginx从1.9.0开始支持TCP反向代理,之前只支持HTTP。这是示意图:



为何需要?

为什么需要反向代理?主要是:

    负载均衡
    方便管控

比如我现在要更新后端服务器,如果不用负载均衡的话,在更新过程中,用户会出现无法连接服务器的情况,而一旦用了负载均衡,用户此时的连接请求将会分配到别的没在更新的后端服务器去,尽可能地确保了服务的可用性;再考虑这么种情况,我有多个服务器后端,那么就需要打开多个不同的监听端口,我需要在系统防火墙里做多个配置,如果它们与客户端的连接使用了SSL/TLS,那么得给它们各自配置证书,现在用了反向代理的话这些都简化了,服务器只需要打开一个对外监听端口,证书也只需要给反向代理配置好即可,就是我说的方便管控,当然了,还能方便的管控流量,设置一些额外的访问策略什么的。

那么反向代理的缺点是什么?我想如果后端多了起来,连接多了起来之后,对nginx来说是一个很大的挑战,毕竟TCP和HTTP不一样,TCP通常是“长连接”,要一直维持着的。到时候如果nginx撑不下去,就考虑用硬件负载均衡吧(不过听说这玩意儿不便宜)。
安装nginx

安装nginx的旧方法当然是去官网下载tar包,解压缩,configure,make,现在我们不妨改进一下——用yum安装,这样更省事。我用的CentOS7的默认yum容器貌似并没有nginx,需要自己加装一下,其实很简单,改一下配置即可。在/etc/yum.repo.d底下创建文件nginx.repo,内容为:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

然后:

#yum install nginx

nginx默认安装在/usr/sbin/nginx,检验下是否我们需要的nginx版本:

#/usr/sbin/nginx -v

我安装的是1.9.11,没问题!再看看--with-stream和--with-stream_ssl_module这两个参数是否存在:

#/usr/sbin/nginx -V

如果没有看到这两个参数,那就只好走老路来安装nginx了。

允许开机自动运行:

#systemctl enable nginx

启动:

#systemctl start nginx

对应着以前的service nginx start

查看nginx状态:

#systemctl status nginx

对应着以前的service nginx status

发现了没有,使用yum安装管理起来也简单了。
nginx配置

编辑/etc/nginx/nginx.conf

stream{
    upstream backend{                                         
        hash $remote_addr consistent;
        server 127.0.0.1:7397 max_fails=3 fail_timeout=10s;   
        server 127.0.0.1:7398 max_fails=3 fail_timeout=10s;
    }

    server{
        listen 1268 ssl;                                     
        ssl_certificate     /home/guogangj/certs/cert1268.pem;
        ssl_certificate_key  /home/guogangj/certs/key1268.pem;
        ssl_session_cache    shared:SSL:10m;                  
        ssl_session_timeout  10m;                            
        ssl_ciphers  HIGH:!aNULL:!MD5;                       
        ssl_prefer_server_ciphers  on;                       
        proxy_connect_timeout 20s;                            
        proxy_timeout 5m;                                     
        proxy_pass backend;                                   
    }
}


配置说明:

1) 设置一个叫“backend”的后端配置

2) 我有两个后端服务器,其中之一监听在7397端口,nginx尝试连接之,(10秒钟为判定失败的时长,这个我暂时也不太明白)最多失败3次,超过则不再重试

3) nginx监听在1268端口,使用SSL安全连接

注意:有必要的话,调整firewalld或iptables来允许这个端口的外部访问,对firewalld来说,可以添加这样的策略

firewall-cmd --zone=public --add-port=1268/tcp --permanent
firewall-cmd --reload

查看一下firewalld的策略列表:

firewall-cmd --permanent --zone=public --list-all

4) 所使用的X.509证书文件(PEM格式).对于使用TCP协议的服务器端,其实是可以用自签的证书的,(如何生成自签证书,刚提到的文章里也有说明)你客户端“认”它就是了,反正我们的目的就是防范中间人攻击,不像做网站,我们得让浏览器“认”证书才行

5) 证书私钥文件

6) 设置SSL Session Cache使用“shared”方式更有利于提高资源的利用率,“SSL”是给缓存起的名字,你可以改成别的(这个名字如何用我现在不太清楚),“10m”为缓存大小(1M的缓存大约可以存放4000个session)

7) SSL Session的失效时间,默认5分钟,我设为10分钟

8) 指定SSL加密算法,照写即可(我一看数学就头大,所以至今仍未明白RSA的数学原理)

9) 更偏向于使用服务器的加密算法(这个我不太明白什么意思)

10) 指定nginx连接后端服务器超时的时间,指定为20秒

11) 距离上一次成功访问(连接或读写)后端服务器的时间超过了5分钟就判定为超时,断开此连接

12) 将TCP连接及数据收发转向叫“backend”的后端(这句话很关键)
完成

好像没啥好说的了,客户端连接1268这个端口完事。哦,对了,改好配置了别忘记重启下nginx:
#systemctl restart nginx



一个自动启动某程序的脚本



我的服务器里运行了tomcat,时不时tomcat的进程会突然结束掉,不知道为什么,从日志上看也没有任何可疑之处,貌似就这样突然没了,接下来的日志都是重新启动tomcat之后打印的了。原因找不到,但要找变通方法,不要出了问题后总要上服务器去自己重启tomcat。我打算利用系统的cron服务来自动启动tomcat,很简单,大约1分钟检查一次tomcat的进程,如果没有,就启动之,脚本如下:


#!/bin/bash
export JRE_HOME=/usr/local/jre
if [ `ps -ef | egrep 'tomcat' | egrep -v egrep | wc -l` -gt 0 ]; then
exit 1
fi
echo `date`" tomcat restart" >> ~/shell/tomcat_restart.log
/usr/local/tomcat/bin/startup.sh

写这个脚本的时候千万注意:空格不要乱加!shell编程和别的编程不太一样,空格有特殊含义。脚本在启动tomcat的时候,会打印一个log,到~/shell/tomcat_restart.log中,其中包括了一个时间信息,方便我去查找原因(虽然我现在还是找不到原因)。

接下来就是配置crontab。

$crontab -e

然后编辑内容为(假如你的shell文件保存在~/shell/check_and_start_server.sh):

* * * * * ~/shell/check_and_start_server.sh

保存并退出crontab的编辑,然后启动cron服务:

/etc/init.d/crond start

这样一来,每一分钟,cron服务就会执行一次检查。启动tomcat大约需要10秒钟,所以最坏的情况是你的服务器可能会中断1分钟多一点的时间(考虑服务器是在14:20:01秒退出的,cron服务刚检查过,下次检查是14:21:00,这时候启动tomcat,大约到14:21:10这样启动完成)。

奇怪的问题:Linux执行脚本碰到Permission denied问题



 
中午时候,同事说我们一台生产环境服务器的程序发布遇到了问题,一直发布不上去。
 
发布程序到生产环境,我是用一个脚本来做的,我们在管理界面上操作一下,间接地会触发一个服务器的脚本,由这个脚本来执行发布动作。
 
我迅速ssh到生产环境服务器,手动运行脚本,出现了熟悉的Permission denied。
 
“靠!谁到生产环境改了脚本的执行权限?”——这是我的第一反应。
 
但很快我就发现脚本具有“x”权限,反复确认我没看错后,我尝试用root去执行,问题依旧,有些奇怪了。
 
我编写了一个极简单的脚本,里面只有一条“ls”命令,加上“x”权限,执行它,嗯?一样的Permission denied。看来不是脚本内容的问题。
 
我检查了我cron定时任务的日志,发现这个问题是前天开始出现的,我开始找人,看谁前天上过服务器做过什么事情,同事都说没有。我再通过history查询服务器的命令执行情况,发现除了当天我做的动作之外,就是好几个星期前的事情了,真没人上过这台服务器。——更奇怪了。
 
这问题的难度还在于在网上只能找到最普通的回答:用chmod啊!——显然我这里不是这个问题。
 
接着我发现,是所有的脚本都无法执行。但二进制执行文件却没问题。
 
再接着研究我发现脚本可以这样执行:

$sh ./my_script

间接的用shell就能执行
!我有点方向了,后来在网上找到了这个:https://unix.stackexchange.com/questions/136547/what-is-the-difference-between-running-bash-script-sh-and-script-sh
这个帖子讨论了 ./script.sh 和 bash ./script.sh的不同,我了解了,但对解决我的问题帮助不大。
 
再就是这个:https://unix.stackexchange.com/questions/203371/run-script-sh-vs-bash-script-sh-permission-denied
 
这是个比较全面的讨论Permission Denied的帖子。其中提到了磁盘挂载的时候如果带有“noexec”参数,就会导致这个问题,这跟我遇到的情况简直就是一模一样。遗憾的是,我仔细检查了我的/etc/fstab,以及当前挂载的情况,并无“noexec”参数。我继续尝试了在不同的挂载点上执行脚本,都是一样的结果。
 
另外这个帖子还提到了ACL,可以使用命令getfacl来检查对一个文件的访问控制,我这里也没发现任何问题。
 
检查用户/组,没有发现任何问题。
 
于是请教高人。高人说给出了几个建议:
 
1,脚本头部加上解释符“#/bin/sh”——试了,问题依旧
2,检查磁盘空间是否满了 —— 检查了,远没满
3,使用strace跟踪脚本的运行情况
 
strace打印了很详细的信息,但遇到系统调用就直接Permission denied,对于这个问题也没有更多的帮助。实在古怪了。
 
最后这个问题被解决了,但原因还是没找到,解决的方法估计你们也能猜出来了:重启服务器。这是我能想到的唯一的,可能行得通的解决方案。结果还真奏效了
 
高人说:相信你还会遇到这个问题的。我说:墨菲定律,对么?
 
这个问题,虽然花费了半天时间,最后还是没找到原因,但学到了些新技能,也不算太亏。

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

 

之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作.

SSL

SSL - Secure Sockets Layer,现在应该叫"TLS",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议,而https的加密是基于SSL的,它执行的是一个比较下层的加密,也就是说,在加密前,你的服务器程序在干嘛,加密后也一样在干嘛,不用动,这个加密对用户和开发者来说都是透明的.More:[维基百科]

OpenSSL - 简单地说,OpenSSL是SSL的一个实现,SSL只是一种规范.理论上来说,SSL这种规范是安全的,目前的技术水平很难破解,但SSL的实现就可能有些漏洞,如著名的"心脏出血".OpenSSL还提供了一大堆强大的工具软件,强大到90%我们都用不到.

证书标准

X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准.

编码格式

同样的X.509证书,可能有不同的编码格式,目前有以下两种编码格式.

PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.
查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noout
Apache和*NIX服务器偏向于使用这种编码格式.

DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.
查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -noout
Java和Windows服务器偏向于使用这种编码格式.

相关的文件扩展名

这是比较误导人的地方,虽然我们已经知道有PEM和DER这两种编码格式,但文件扩展名并不一定就叫"PEM"或者"DER",常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式.

CRT - CRT应该是certificate的三个字母,其实还是证书的意思,常见于*NIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,相信你已经知道怎么辨别.

CER - 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.

KEY - 通常用来存放一个公钥或者私钥,并非X.509证书,编码同样的,可能是PEM,也可能是DER.
查看KEY的办法:openssl rsa -in mykey.key -text -noout
如果是DER格式的话,同理应该这样了:openssl rsa -in mykey.key -text -noout -inform der

CSR - Certificate Signing Request,即证书签名请求,这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的信息),在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管好.做过iOS APP的朋友都应该知道是怎么向苹果申请开发者证书的吧.
查看的办法:openssl req -noout -text -in my.csr (如果是DER格式的话照旧加上-inform der,这里不写了)

PFX/P12 - predecessor of PKCS#12,对*nix服务器来说,一般CRT和KEY是分开存放在不同文件中的,但Windows的IIS则将它们存在一个PFX文件中,(因此这个文件包含了证书及私钥)这样会不会不安全?应该不会,PFX通常会有一个"提取密码",你想把里面的东西读取出来的话,它就要求你提供提取密码,PFX使用的时DER编码,如何把PFX转换为PEM编码?
openssl pkcs12 -in for-iis.pfx -out for-iis.pem -nodes
这个时候会提示你输入提取代码. for-iis.pem就是可读的文本.
生成pfx的命令类似这样:openssl pkcs12 -export -in certificate.crt -inkey privateKey.key -out certificate.pfx -certfile CACert.crt

其中CACert.crt是CA(权威证书颁发机构)的根证书,有的话也通过-certfile参数一起带进去.这么看来,PFX其实是个证书密钥库.

JKS - 即Java Key Storage,这是Java的专利,跟OpenSSL关系不大,利用Java的一个叫"keytool"的工具,可以将PFX转为JKS,当然了,keytool也能直接生成JKS,不过在此就不多表了.

证书编码的转换

PEM转为DER openssl x509 -in cert.crt -outform der -out cert.der

DER转为PEM openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

(提示:要转换KEY文件也类似,只不过把x509换成rsa,要转CSR的话,把x509换成req...)

获得证书

向权威证书颁发机构申请证书

用这命令生成一个csr: openssl req -newkey rsa:2048 -new -nodes -keyout my.key -out my.csr
把csr交给权威证书颁发机构,权威证书颁发机构对此进行签名,完成.保留好csr,当权威证书颁发机构颁发的证书过期的时候,你还可以用同样的csr来申请新的证书,key保持不变.

或者生成自签名的证书
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
在生成证书的过程中会要你填一堆的东西,其实真正要填的只有Common Name,通常填写你服务器的域名,如"yourcompany.com",或者你服务器的IP地址,其它都可以留空的.
生产环境中还是不要使用自签的证书,否则浏览器会不认,或者如果你是企业应用的话能够强制让用户的浏览器接受你的自签证书也行.向权威机构要证书通常是要钱的,但现在也有免费的,仅仅需要一个简单的域名验证即可.

awesome-iOS

 

A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects

awesomeios.dev 

Contents

Analytics

Analytics platforms, SDK's, error tracking and real-time answers about your app

  • Aptabase - Open Source, Privacy-First and Simple Analytics for Swift Apps.
  • Answers by Fabric - Answers gives you real-time insight into people’s experience in your app.
  • Bugsnag - Error tracking with a free tier. Error reports include data on device, release, user, and allows arbitrary data.
  • Countly - Open source, mobile & web analytics, crash reports and push notifications platform for iOS & Android.
  • devtodev - Comprehensive analytics service that improves your project and saves time for product development.
  • Emerge Tools - Prevent app size & performance regressions on every pull request, get automated insights on how to improve.
  • Instabug - In-app feedback, Bug and Crash reporting, Fix Bugs Faster through user-steps, video recordings, screen annotation, network requests logging.
  • Matomo - The MatomoTracker is an iOS, tvOS and macOS SDK for sending app analytics to a Matomo server.
  • Mixpanel - Advanced analytics platform.
  • MOCA Analytics - Paid cross-platform analytics backend.
  • Segment - The hassle-free way to integrate analytics into any iOS application.
  • Sentry - Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time.
  • Shake - In-app feedback and bug reporting tool. Fix app bugs up to 50x faster with detailed device data, repro steps, video recording, black box data, network requests and custom logging.

App Routing

Elegant URL routing, navigation frameworks, deep links and more

  • ApplicationCoordinator - Coordinator is an object that handles navigation flow and shares flow’s handling for the next coordinator after switching on the next chain.
  • Appz - Easily launch and deeplink into external applications, falling back to web if not installed.
  • Composable Navigator - An open source library for building deep-linkable SwiftUI applications with composition, testing and ergonomics in mind
  • Crossroad - Crossroad is an URL router focused on handling Custom URL Schemes. Using this, you can route multiple URL schemes and fetch arguments and parameters easily.
  • DeepLinkKit - A splendid route-matching, block-based way to handle your deep links.
  • JLRoutes - URL routing library for iOS with a simple block-based API.
  • Linker - Lightweight way to handle internal and external deeplinks for iOS.
  • LiteRoute - Easy transition between VIPER modules, implemented on pure Swift.
  • Marshroute - Marshroute is an iOS Library for making your Routers simple but extremely powerful.
  • RouteComposer - Library that helps to handle view controllers composition, routing and deeplinking tasks.
  • Router - Simple Navigation for iOS.
  • RxFlow - Navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
  • SwiftCurrent - A library for managing complex workflows.
  • SwiftRouter - A URL Router for iOS.
  • URLNavigator - Elegant URL Routing for Swift
  • WAAppRouting - iOS routing done right. Handles both URL recognition and controller displaying with parsed parameters. All in one line, controller stack preserved automatically!
  • ZIKRouter - An interface-oriented router for discovering modules and injecting dependencies with protocol in OC & Swift, iOS & macOS. Handles route in a type safe way.

App Store

Apple Guidelines and version notification libraries

  • Apple Review Guidelines - Highlighted some of the most common issues that cause apps to get rejected.
  • Free App Store Optimization Tool - Lets you track your App Store visibility in terms of keywords and competitors.
  • Siren - Notify users when a new version of your app is available and prompt them to upgrade.

back to top

Apple TV

tvOS view controllers, wrappers, template managers and video players.

  • FocusTvButton - Light wrapper of UIButton that allows extra customization for tvOS
  • ParallaxView - iOS controls and extensions that add parallax effect to your application.
  • Swift-GA-Tracker-for-Apple-tvOS - Google Analytics tracker for Apple tvOS provides an easy integration of Google Analytics’ measurement protocol for Apple TV.
  • TvOSCustomizableTableViewCell - Light wrapper of UITableViewCell that allows extra customization for tvOS.
  • TvOSMoreButton - A basic tvOS button which truncates long text with '... More'.
  • TvOSPinKeyboard - PIN keyboard for tvOS.
  • TvOSScribble - Handwriting numbers recognizer for Siri Remote.
  • TvOSSlider - TvOSSlider is an implementation of UISlider for tvOS.
  • TvOSTextViewer - Light and scrollable view controller for tvOS to present blocks of text
  • XCDYouTubeKit - YouTube video player for iOS, tvOS and macOS.

Architecture Patterns

Clean architecture, Viper, MVVM, Reactive... choose your weapon.

  • Clean Architecture for SwiftUI + Combine - A demo project showcasing the production setup of the SwiftUI app with Clean Architecture.
  • CleanArchitectureRxSwift - Example of Clean Architecture of iOS app using RxSwift.
  • ios-architecture - A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others.
  • iOS-Viper-Architecture - This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.
  • Reactant - Reactant is a reactive architecture for iOS.
  • Spin - A universal implementation of a Feedback Loop system for RxSwift, ReactiveSwift and Combine
  • SwiftyVIPER - Makes implementing VIPER architecture much easier and cleaner.
  • Tempura - A holistic approach to iOS development, inspired by Redux and MVVM.
  • The Composable Architecture - The Composable Architecture is a library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
  • VIPER Module Generator - A Clean VIPER Modules Generator with comments and predfined functions.
  • Viperit - Viper Framework for iOS. Develop an app following VIPER architecture in an easy way. Written and tested in Swift.

back to top

ARKit

Library and tools to help you build unparalleled augmented reality experiences

  • ARHeadsetKit - High-level framework for using $5 Google Cardboard to replicate Microsoft Hololens.
  • ARKit-CoreLocation - Combines the high accuracy of AR with the scale of GPS data.
  • ARKit Emperor - The Emperor give you the most practical ARKit samples ever.
  • ARKit Virtual Objects - Placing Virtual Objects in Augmented Reality.
  • ARVideoKit - Record and capture ARKit videos, photos, Live Photos, and GIFs.
  • Placenote - A library that makes ARKit sessions persistent to a location using advanced computer vision.
  • SmileToUnlock - This library uses ARKit Face Tracking in order to catch a user's smile.

back to top

Authentication

Oauth and Oauth2 libraries, social logins and captcha tools.

  • Heimdallr.swift - Easy to use OAuth 2 library for iOS, written in Swift.
  • InstagramSimpleOAuth - A quick and simple way to authenticate an Instagram user in your iPhone or iPad app.
  • LinkedInSignIn - Simple view controller to login and retrieve access token from LinkedIn.
  • OAuthSwift - Swift based OAuth library for iOS- OAuthSwift - Swift based OAuth library for iOS
  • OAuth2 - OAuth2 framework for macOS and iOS, written in Swift.
  • ReCaptcha - (In)visible ReCaptcha for iOS.
  • SwiftyOAuth - A simple OAuth library for iOS with a built-in set of providers.

back to top

Blockchain

Tool for smart contract interactions. Bitcoin protocol implementations and Frameworks for interacting with cryptocurrencies.

  • BitcoinKit - Bitcoin protocol toolkit for Swift, BitcoinKit implements Bitcoin protocol in Swift. It is an implementation of the Bitcoin SPV protocol written in swift.
  • CoinpaprikaAPI - Coinpaprika API client with free & frequently updated market data from the world of crypto: coin prices, volumes, market caps, ATHs, return rates and more.
  • EthereumKit - EthereumKit is a free, open-source Swift framework for easily interacting with the Ethereum.
  • EtherWalletKit - Ethereum Wallet Toolkit for iOS - You can implement Ethereum wallet without a server and blockchain knowledge.
  • Web3.swift - Web3 library for interacting with the Ethereum blockchain.

back to top

Books

Most recommended books

back to top

Cache

Thread safe, offline and high performance cache libs and frameworks.

  • Awesome Cache - Delightful on-disk cache (written in Swift).
  • Cache - Nothing but Cache.
  • Cache - Swift caching library.
  • Cachyr - A small key-value data cache for iOS, macOS and tvOS, written in Swift.
  • Carlos - A simple but flexible cache.
  • Disk - Delightful framework for iOS to easily persist structs, images, and data.
  • HanekeSwift - A lightweight generic cache for iOS written in Swift with extra love for images.
  • Johnny - Melodic Caching for Swift.
  • mattress - iOS Offline Caching for Web Content.
  • MemoryCache - MemoryCache is type-safe memory cache.
  • PINCache - Fast, non-deadlocking parallel object cache for iOS and macOS.
  • RocketData - A caching and consistency solution for immutable models.
  • SPTPersistentCache - Everyone tries to implement a cache at some point in their iOS app’s lifecycle, and this is ours. By Spotify.
  • Track - Track is a thread safe cache write by Swift. Composed of DiskCache and MemoryCache which support LRU.
  • UITableView Cache - UITableView cell cache that cures scroll-lags on a cell instantiating.
  • YYCache - High performance cache framework for iOS.

back to top

Charts

Beautiful, Easy and Fully customized charts

  • Charts - A powerful chart / graph framework, the iOS equivalent to MPAndroidChart.
  • PNChart - A simple and beautiful chart lib used in Piner and CoinsMan for iOS.
  • XJYChart - A Beautiful chart for iOS. Support animation, click, slide, area highlight.
  • JBChartView - iOS-based charting library for both line and bar graphs.
  • XYPieChart - A simple and animated Pie Chart for your iOS app.
  • TEAChart - Simple and intuitive iOS chart library. Contribution graph, clock chart, and bar chart.
  • EChart - iOS/iPhone/iPad Chart, Graph. Event handling and animation supported.
  • FSLineChart - A line chart library for iOS.
  • chartee - A charting library for mobile platforms.
  • ANDLineChartView - ANDLineChartView is easy to use view-based class for displaying animated line chart.
  • TWRCharts - An iOS wrapper for ChartJS. Easily build animated charts by leveraging the power of native Obj-C code.
  • SwiftCharts - Easy to use and highly customizable charts library for iOS.
  • FlowerChart - Flower-shaped chart with custom appearance animation, fully vector.
  • Scrollable-GraphView - An adaptive scrollable graph view for iOS to visualise simple discrete datasets. Written in Swift.
  • Dr-Charts - Dr-Charts is a highly customisable, easy to use and interactive chart / graph framework in Objective-C.
  • Graphs - Light weight charts view generator for iOS.
  • FSInteractiveMap - A charting library to visualize and interact with a vector map on iOS. It's like Geochart but for iOS.
  • JYRadarChart - An iOS open source Radar Chart implementation.
  • TKRadarChart - A customizable radar chart in Swift.
  • MagicPie - Awesome layer based pie chart. Fantastically fast and fully customizable. Amazing animations available with MagicPie.
  • PieCharts - Easy to use and highly customizable pie charts library for iOS.
  • CSPieChart - iOS PieChart Opensource. This is very easy to use and customizable.
  • DDSpiderChart - Easy to use and customizable Spider (Radar) Chart library for iOS written in Swift.
  • core-plot - a 2D plotting lib which is highly customizable and capable of drawing many types of plots.
  • ChartProgressBar - Draw a chart with progress bar style.
  • SMDiagramViewSwift - Meet cute and very flexibility library for iOS application for different data view in one circle diagram.
  • Swift LineChart - Line Chart library for iOS written in Swift.
  • SwiftChart - Line and area chart library for iOS.
  • EatFit - Eat fit is a component for attractive data representation inspired by Google Fit.
  • CoreCharts - CoreCharts is a simple powerful yet Charts library for apple products.

back to top

Code Injection

Decrease development time with these tools

  • Inject - Hot Reloading for Swift applications!
  • injectionforxcode - Code injection including Swift.
  • Vaccine - Vaccine is a framework that aims to make your apps immune to recompile-decease.

back to top

Code Quality

Quality always matters. Code checkers, memory vigilants, syntax sugars and more.

  • Aardvark - Aardvark is a library that makes it dead simple to create actionable bug reports.
  • Bootstrap - iOS project bootstrap aimed at high quality coding.
  • Bugsee - In-app bug and crash reporting with video, logs, network traffic and traces.
  • FBRetainCycleDetector - iOS library to help detecting retain cycles in runtime.
  • HeapInspector-for-iOS - Find memory issues & leaks in your iOS app without instruments.
  • KZAsserts - Asserts on roids, test all your assumptions with ease.
  • MLeaksFinder - Find memory leaks in your iOS app at develop time.
  • PSTModernizer - Makes it easier to support older versions of iOS by fixing things and adding missing methods.
  • spacecommander - Commit fully-formatted Objective-C code as a team without even trying.
  • SwiftCop - SwiftCop is a validation library fully written in Swift and inspired by the clarity of Ruby On Rails Active Record validations.
  • SwiftFormat - A code library and command-line formatting tool for reformatting Swift code.
  • Tailor - Cross-platform static analyzer for Swift that helps you to write cleaner code and avoid bugs.
  • WeakableSelf - A Swift micro-framework to encapsulate [weak self] and guard statements within closures.

back to top

Linter

Static code analyzers to enforce style and conventions.

  • AnyLint - Lint anything by combining the power of Swift & regular expressions.
  • IBLinter - A linter tool for Interface Builder.
  • OCLint - Static code analysis tool for improving quality and reducing defects.
  • Swiftlint - A tool to enforce Swift style and conventions.

back to top

Color

Hex color extensions, theming, color pickers and other awesome color tools.

  • BCColor - A lightweight but powerful color kit (Swift).
  • ChromaColorPicker - An intuitive iOS color picker built in Swift.
  • Colours - A beautiful set of predefined colors and a set of color methods to make your iOS/macOS development life easier.
  • CostumeKit - Base types for theming an app.
  • CSS3ColorsSwift - A UIColor extension with CSS3 Colors name.
  • DynamicColor - Yet another extension to manipulate colors easily in Swift.
  • FlatUIColors - Flat UI color palette helpers written in Swift.
  • Gestalt - An unintrusive & light-weight iOS app-theming library with support for animated theme switching.
  • Hue - Hue is the all-in-one coloring utility that you'll ever need.
  • Lorikeet - Aesthetic color-scheme generation written in Swift.
  • PFColorHash - Generate color based on the given string.
  • PrettyColors - Styles and colors text in the Terminal with ANSI escape codes. Conforms to ECMA Standard 48.
  • RandomColorSwift - An attractive color generator for Swift. Ported from randomColor.js.
  • SheetyColors - An action sheet styled color picker for iOS.
  • SwiftHEXColors - HEX color handling as an extension for UIColor.
  • UIColor-Hex-Swift - Convenience method for creating autoreleased color using RGBA hex string.

back to top

Command Line

Smart, beautiful and elegant tools to help you create command line applications.

  • Swiftline - Swiftline is a set of tools to help you create command line applications.
  • Commander - Compose beautiful command line interfaces in Swift.
  • ColorizeSwift - Terminal string styling for Swift.
  • Guaka - The smartest and most beautiful (POSIX compliant) Command line framework for Swift.
  • Marathon - Marathon makes it easy to write, run and manage your Swift scripts.
  • CommandCougar - An elegant pure Swift library for building command line applications.
  • Crayon - Terminal string styling with expressive api and 256/TrueColor support.
  • SwiftShell - A Swift framework for shell scripting and running shell commands.
  • SourceDocs - Command Line Tool that generates Markdown documentation from inline source code comments.
  • ModuleInterface - Command Line Tool that generates the Module's Interface from a Swift project.

back to top

Concurrency

Job schedulers, Coroutines, Asynchronous and Type safe threads libs and frameworks written in Swift

  • Venice - CSP (Coroutines, Channels, Select) for Swift.
  • Concurrent - Functional Concurrency Primitives.
  • Flow - Operation Oriented Programming in Swift.
  • Brisk - A Swift DSL that allows concise and effective concurrency manipulation.
  • Aojet - An actor model library for swift.
  • Overdrive - Fast async task based Swift framework with focus on type safety, concurrency and multi threading.
  • AsyncNinja - A complete set of concurrency and reactive programming primitives.
  • Kommander - Kommander is a Swift library to manage the task execution in different threads. Through the definition a simple but powerful concept, Kommand.
  • Threadly - Type-safe thread-local storage in Swift.
  • Flow-iOS - Make your logic flow and data flow clean and human readable.
  • Queuer - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
  • SwiftQueue - Job Scheduler with Concurrent run, failure/retry, persistence, repeat, delay and more.
  • GroupWork - Easy concurrent, asynchronous tasks in Swift.
  • StickyLocking - A general purpose embedded hierarchical lock manager used to build highly concurrent applications of all types.
  • SwiftCoroutine - Swift coroutines library for iOS and macOS.

back to top

Core Data

Core data Frameworks, wrappers, generators and boilerplates.

  • Ensembles - A synchronization framework for Core Data.
  • Mogenerator - Automatic Core Data code generation.
  • MagicalRecord - Super Awesome Easy Fetching for Core Data.
  • CoreStore - Powerful Core Data framework for Incremental Migrations, Fetching, Observering, etc.
  • Core Data Query Interface A type-safe, fluent query framework for Core Data.
  • Graph - An elegant data-driven framework for CoreData in Swift.
  • CoreDataDandy - A feature-light wrapper around Core Data that simplifies common database operations.
  • Sync - Modern Swift JSON synchronization to Core Data.
  • AlecrimCoreData - A powerful and simple Core Data wrapper framework written in Swift.
  • AERecord - Super awesome Core Data wrapper in Swift.
  • CoreDataStack - The Big Nerd Ranch Core Data Stack.
  • JSQCoreDataKit - A swifter Core Data stack.
  • Skopelos - A minimalistic, thread safe, non-boilerplate and super easy to use version of Active Record on Core Data. Simply all you need for doing Core Data.
  • Cadmium - A complete swift framework that wraps CoreData and helps facilitate best practices.
  • DataKernel - Simple CoreData wrapper to ease operations.
  • DATAStack - 100% Swift Simple Boilerplate Free Core Data Stack. NSPersistentContainer.
  • JustPersist - JustPersist is the easiest and safest way to do persistence on iOS with Core Data support out of the box.
  • PrediKit - An NSPredicate DSL for iOS, macOS, tvOS, & watchOS. Inspired by SnapKit and lovingly written in Swift.
  • PredicateFlow - Write amazing, strong-typed and easy-to-read NSPredicate, allowing you to write flowable NSPredicate, without guessing attribution names, predicate operation or writing wrong arguments type.
  • CloudCore - Robust CloudKit synchronization: offline editing, relationships, shared and public databases, field-level deltas, and more.

back to top

Courses

Getting Started

Courses, tutorials, guides and bootcamps

back to top

Database

Wrappers, clients, Parse alternatives and safe tools to deal with ephemeral and persistent data.

  • Realm - The alternative to CoreData and SQLite: Simple, modern and fast.
  • YapDatabase - YapDatabase is an extensible database for iOS & Mac.
  • Couchbase Mobile - Couchbase document store for mobile with cloud sync.
  • FMDB - A Cocoa / Objective-C wrapper around SQLite.
  • FCModel - An alternative to Core Data for people who like having direct SQL access.
  • Zephyr - Effortlessly synchronize NSUserDefaults over iCloud.
  • Prephirences - Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state.
  • Storez - Safe, statically-typed, store-agnostic key-value storage (with namespace support).
  • SwiftyUserDefaults - Statically-typed NSUserDefaults.
  • SugarRecord - Data persistence management library.
  • SQLite.swift - A type-safe, Swift-language layer over SQLite3.
  • GRDB.swift - A versatile SQLite toolkit for Swift, with WAL mode support.
  • Fluent - Simple ActiveRecord implementation for working with your database in Swift.
  • ParseAlternatives - A collaborative list of Parse alternative backend service providers.
  • TypedDefaults - TypedDefaults is a utility library to type-safely use NSUserDefaults.
  • realm-cocoa-converter - A library that provides the ability to import/export Realm files from a variety of data container formats.
  • YapDatabaseExtensions - YapDatabase extensions for use with Swift.
  • RealmGeoQueries - RealmGeoQueries simplifies spatial queries with Realm Cocoa. In the absence of and official functions, this library provide the possibility to do proximity search.
  • SwiftMongoDB - A MongoDB interface for Swift.
  • ObjectiveRocks - An Objective-C wrapper of Facebook's RocksDB - A Persistent Key-Value Store for Flash and RAM Storage.
  • OHMySQL - An Objective-C wrapper of MySQL C API.
  • SwiftStore - Key-Value store for Swift backed by LevelDB.
  • OneStore - A single value proxy for NSUserDefaults, with clean API.
  • MongoDB - A Swift wrapper around the mongo-c client library, enabling access to MongoDB servers.
  • MySQL - A Swift wrapper around the MySQL client library, enabling access to MySQL servers.
  • Redis - A Swift wrapper around the Redis client library, enabling access to Redis.
  • PostgreSQL - A Swift wrapper around the libpq client library, enabling access to PostgreSQL servers.
  • FileMaker - A Swift wrapper around the FileMaker XML Web publishing interface, enabling access to FileMaker servers.
  • Nora - Nora is a Firebase abstraction layer for working with FirebaseDatabase and FirebaseStorage.
  • PersistentStorageSerializable - Swift library that makes easier to serialize the user's preferences (app's settings) with system User Defaults or Property List file on disk.
  • WCDB - WCDB is an efficient, complete, easy-to-use mobile database framework for iOS, macOS.
  • StorageKit - Your Data Storage Troubleshooter.
  • UserDefaults - Simple, Strongly Typed UserDefaults for iOS, macOS and tvOS.
  • Default - Modern interface to UserDefaults + Codable support.
  • IceCream - Sync Realm Database with CloudKit.
  • FirebaseHelper - Safe and easy wrappers for common Firebase Realtime Database functions.
  • Shallows - Your lightweight persistence toolbox.
  • StorageManager - Safe and easy way to use FileManager as Database.
  • RealmWrapper - Safe and easy wrappers for RealmSwift.
  • UserDefaultsStore - An easy and very light way to store and retrieve -reasonable amount- of Codable objects, in a couple lines of code.
  • PropertyKit - Protocol-First, Type and Key-Safe Swift Property for iOS, macOS and tvOS.
  • PersistenceKit - Store and retrieve Codable objects to various persistence layers, in a couple lines of code.
  • ModelAssistant - Elegant library to manage the interactions between view and model in Swift.
  • MMKV - An efficient, small mobile key-value storage framework developed by WeChat. Works on iOS, Android, macOS and Windows.
  • Defaults - Swifty and modern UserDefaults.
  • MongoKitten - A pure Swift MongoDB client implementation with support for embedded databases.
  • SecureDefaults - A lightweight wrapper over UserDefaults/NSUserDefaults with an extra AES-256 encryption layer.
  • Unrealm - Unrealm enables you to easily store Swift native Classes, Structs and Enums into Realm.
  • QuickDB - Save and Retrieve any Codable in JUST ONE line of code + more easy usecases.
  • ObjectBox - ObjectBox is a superfast, light-weight object persistence framework.
  • DuckDB - DuckDB is a high-performance analytical database system.

back to top

Data Structures / Algorithms

Diffs, keypaths, sorted lists and other amazing data structures wrappers and libraries.

  • Changeset - Minimal edits from one collection to another.
  • BTree - Fast ordered collections for Swift using in-memory B-trees.
  • SwiftStructures - Examples of commonly used data structures and algorithms in Swift.
  • diff - Simple diff library in pure Swift.
  • Brick - A generic view model for both basic and complex scenarios.
  • Algorithm - Algorithm is a collection of data structures that are empowered by a probability toolset.
  • AnyObjectConvertible - Convert your own struct/enum to AnyObject easily.
  • Dollar - A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript https://www.dollarswift.org/.
  • Result - Swift type modeling the success/failure of arbitrary operations.
  • EKAlgorithms - Some well known CS algorithms & data structures in Objective-C.
  • Monaka - Convert custom struct and fundamental values to NSData.
  • Buffer - Swift μ-framework for efficient array diffs, collection observation and cell configuration.
  • SwiftGraph - Graph data structure and utility functions in pure Swift.
  • SwiftPriorityQueue - A priority queue with a classic binary heap implementation in pure Swift.
  • Pencil - Write values to file and read it more easily.
  • HeckelDiff - A fast Swift diffing library.
  • Dekoter - NSCoding's counterpart for Swift structs.
  • swift-algorithm-club - Algorithms and data structures in Swift, with explanations!
  • Impeller - A Distributed Value Store in Swift.
  • Dispatch - Multi-store Flux implementation in Swift.
  • DeepDiff - Diff in Swift.
  • Differ - Swift library to generate differences and patches between collections.
  • Probably - A Swift probability and statistics library.
  • RandMyMod - RandMyMod base on your own struct or class create one or a set of randomized instance.
  • KeyPathKit - KeyPathKit provides a seamless syntax to manipulate data using typed keypaths.
  • Differific - A fast and convenient diffing framework.
  • OneWaySynchronizer - The simplest abstraction to synchronize local data with remote source.
  • DifferenceKit - A fast and flexible O(n) difference algorithm framework for Swift collection.

back to top

Date & Time

Time and NSCalendar libraries. Also contains Sunrise and Sunset time generators, time pickers and NSTimer interfaces.

  • Timepiece - Intuitive NSDate extensions in Swift.
  • SwiftDate - The best way to manage Dates and Timezones in Swift.
  • SwiftMoment - A time and calendar manipulation library.
  • DateTools - Dates and times made easy in Objective-C.
  • SwiftyTimer - Swifty API for NSTimer.
  • DateHelper - Convenience extension for NSDate in Swift.
  • iso-8601-date-formatter - A Cocoa NSFormatter subclass to convert dates to and from ISO-8601-formatted strings. Supports calendar, week, and ordinal formats.
  • EmojiTimeFormatter - Format your dates/times as emojis.
  • Kronos - Elegant NTP date library in Swift.
  • TrueTime - Get the true current time impervious to device clock time changes.
  • 10Clock - This Control is a beautiful time-of-day picker heavily inspired by the iOS 10 "Bedtime" timer.
  • NSDate-TimeAgo - A "time ago", "time since", "relative date", or "fuzzy date" category for NSDate and iOS, Objective-C, Cocoa Touch, iPhone, iPad.
  • AnyDate - Swifty Date & Time API inspired from Java 8 DateTime API.
  • TimeZonePicker - A TimeZonePicker UIViewController similar to the iOS Settings app.
  • Time - Type-safe time calculations in Swift, powered by generics.
  • Chronology - Building a better date/time library.
  • Solar - A Swift micro library for generating Sunrise and Sunset times.
  • TimePicker - Configurable time picker component based on a pan gesture and its velocity.
  • LFTimePicker - Custom Time Picker ViewController with Selection of start and end times in Swift.
  • NVDate - Swift4 Date extension library.
  • Schedule - ⏳ A missing lightweight task scheduler for Swift with an incredibly human-friendly syntax.

back to top

Debugging

Debugging tools, crash reports, logs and console UI's.

  • AEConsole - Customizable Console UI overlay with debug log on top of your iOS App.
  • Alpha - Next generation debugging framework for iOS.
  • AppSpector - Remote iOS and Android debugging and data collection service. You can debug networking, logs, CoreData, SQLite, NSNotificationCenter and mock device's geo location.
  • Atlantis - A little and powerful iOS framework for intercepting HTTP/HTTPS Traffic from your iOS app. No more messing around with proxy and certificate config. Inspect Traffic Log with Proxyman app.
  • chisel - Collection of LLDB commands to assist debugging iOS apps.
  • DBDebugToolkit - Set of easy to use debugging tools for iOS developers & QA engineers.
  • DebugSwift - A comprehensive toolkit designed to simplify and enhance the debugging process for iOS applications.
  • DoraemonKit - A full-featured iOS App development assistant,30+ tools included. You deserve it.
  • Dotzu - iOS app debugger while using the app. Crash report, logs, network.
  • Droar - Droar is a modular, single-line installation debugging window.
  • Flex - An in-app debugging and exploration tool for iOS.
  • GodEye - Automatically display Log,Crash,Network,ANR,Leak,CPU,RAM,FPS,NetFlow,Folder and etc with one line of code based on Swift.
  • Httper-iOS - App for developers to test REST API.
  • Hyperion - In-app design review tool to inspect measurements, attributes, and animations.
  • LayoutInspector - Debug app layouts directly on iOS device: inspect layers in 3D and debug each visible view attributes.
  • MTHawkeye - Profiling / Debugging assist tools for iOS, include tools: UITimeProfiler, Memory Allocations, Living ObjC Objects Sniffer, Network Transaction Waterfall, etc.
  • Netfox - A lightweight, one line setup, iOS / macOS network debugging library!
  • NetShears - Allows developers to intercept and monitor HTTP/HTTPS requests and responses. It also could be configured to show gRPC calls.
  • NetworkEye - a iOS network debug library, It can monitor HTTP requests within the App and displays information related to the request.
  • PonyDebugger - Remote network and data debugging for your native iOS app using Chrome Developer Tools.
  • Playbook - A library for isolated developing UI components and automatically snapshots of them.
  • Scyther - A full-featured, in-app debugging menu packed full of useful tools including network logging, layout inspection, location spoofing, console logging and so much more.
  • Wormholy - iOS network debugging, like a wizard.
  • Xniffer - A swift network profiler built on top of URLSession.
  • Woodpecker - View sandbox files, UserDefaults, network request from Mac.

back to top

Dependency Injection

  • Swinject - Dependency injection framework for Swift.
  • Reliant - Nonintrusive Objective-C dependency injection.
  • Kraken - A Dependency Injection Container for Swift with easy-to-use syntax.
  • Cleanse - Lightweight Swift Dependency Injection Framework by Square.
  • Typhoon - Powerful dependency injection for Objective-C.
  • Pilgrim - Powerful dependency injection Swift (successor to Typhoon).
  • Perform - Easy dependency injection for storyboard segues.
  • Alchemic - Advanced, yet simple to use DI framework for Objective-C.
  • Guise - An elegant, flexible, type-safe dependency resolution framework for Swift.
  • Weaver - A declarative, easy-to-use and safe Dependency Injection framework for Swift.
  • StoryboardBuilder - Simple dependency injection for generating views from storyboard.
  • ViperServices - Dependency injection container for iOS applications written in Swift. Each service can have boot and shutdown code.
  • DITranquillity - Dependency injection framework for iOS applications written in clean Swift.
  • Needle — Compile-time safe Swift dependency injection framework with real code.
  • Locatable - A micro-framework that leverages Property Wrappers to implement the Service Locator pattern.

back to top

Dependency / Package Manager

  • CocoaPods - CocoaPods is the dependency manager for Objective-C projects. It has thousands of libraries and can help you scale your projects elegantly.
  • Xcode Maven - The Xcode Maven Plugin can be used in order to run Xcode builds embedded in a Maven lifecycle.
  • Carthage - A simple, decentralized dependency manager for Cocoa.
  • SWM (Swift Modules) - A package/dependency manager for Swift projects similar to npm (node.js package manager) or bower (browser package manager from Twitter). Does not require the use of Xcode.
  • CocoaSeeds - Git Submodule Alternative for Cocoa.
  • swift-package-manager - The Package Manager for the Swift Programming Language.
  • punic - Clean room reimplementation of Carthage tool.
  • Rome - A cache tool for Carthage built frameworks.
  • Athena - Gradle Plugin to enhance Carthage by uploading the archived frameworks into Maven repository, currently support only Bintray, Artifactory and Mavel local.
  • Accio - A SwiftPM based dependency manager for iOS & Co. with improvements over Carthage.

back to top

Deployment / Distribution

  • fastlane - Connect all iOS deployment tools into one streamlined workflow.
  • deliver - Upload screenshots, metadata and your app to the App Store using a single command.
  • snapshot - Automate taking localized screenshots of your iOS app on every device.
  • buddybuild - A mobile iteration platform - build, deploy, and collaborate.
  • Bitrise - Mobile Continuous Integration & Delivery with dozens of integrations to build, test, deploy and collaborate.
  • watchbuild - Get a notification once your iTunes Connect build is finished processing.
  • Crashlytics - A crash reporting and beta testing service.
  • TestFlight Beta Testing - The beta testing service hosted on iTunes Connect (requires iOS 8 or later).
  • AppCenter - Continuously build, test, release, and monitor apps for every platform.
  • boarding - Instantly create a simple signup page for TestFlight beta testers.
  • HockeyKit - A software update kit.
  • Rollout.io - SDK to patch, fix bugs, modify and manipulate native apps (Obj-c & Swift) in real-time.
  • AppLaunchpad - Free App Store screenshot builder.
  • LaunchKit - A set of web-based tools for mobile app developers, now open source!
  • Instabug - In-app feedback, Bug and Crash reporting, Fix Bugs Faster through user-steps, video recordings, screen annotation, network requests logging.
  • Appfigurate - Secure runtime configuration for iOS and watchOS, apps and app extensions.
  • ScreenshotFramer - With Screenshot Framer you can easily create nice-looking and localized App Store Images.
  • Semaphore - CI/CD service which makes it easy to build, test and deploy applications for any Apple device. iOS support is fully integrated in Semaphore 2.0, so you can use the same powerful CI/CD pipeline features for iOS as you do for Linux-based development.
  • Appcircle.io — An enterprise-grade mobile DevOps platform that automates the build, test, and publish store of mobile apps for faster, efficient release cycle
  • Screenplay - Instant rollbacks and canary deployments for iOS.
  • Codemagic - Build, test and deliver iOS apps 20% faster with Codemagic CI/CD.
  • Runway - Easier mobile releases for teams. Integrates across tools (version control, project management, CI, app stores, crash reporting, etc.) to provide a single source of truth for mobile teams to come together around during release cycles. Equal parts automation and collaboration.
  • ios-uploader - Easy to use, cross-platform tool to upload iOS apps to App Store Connect.

back to top

EventBus

Promises and Futures libraries to help you write better async code in Swift.

  • SwiftEventBus - A publish/subscribe event bus optimized for iOS.
  • PromiseKit - Promises for iOS and macOS.
  • Bolts - Bolts is a collection of low-level libraries designed to make developing mobile apps easier, including tasks (promises) and app links (deep links).
  • SwiftTask - Promise + progress + pause + cancel + retry for Swift.
  • When - A lightweight implementation of Promises in Swift.
  • then🎬 - Elegant Async code in Swift.
  • Bolts-Swift - Bolts is a collection of low-level libraries designed to make developing mobile apps easier.
  • RWPromiseKit - A light-weighted Promise library for Objective-C.
  • FutureLib - FutureLib is a pure Swift 2 library implementing Futures & Promises inspired by Scala.
  • SwiftNotificationCenter - A Protocol-Oriented NotificationCenter which is type safe, thread safe and with memory safety.
  • FutureKit - A Swift based Future/Promises Library for iOS and macOS.
  • signals-ios - Typeful eventing.
  • BrightFutures - Write great asynchronous code in Swift using futures and promises.
  • NoticeObserveKit - NoticeObserveKit is type-safe NotificationCenter wrapper that associates notice type with info type.
  • Hydra - Promises & Await - Write better async code in Swift.
  • Promis - The easiest Future and Promises framework in Swift. No magic. No boilerplate.
  • Bluebird.swift - Promise/A+, Bluebird inspired, implementation in Swift 4.
  • Promise - A Promise library for Swift, based partially on Javascript's A+ spec.
  • promises - Google provides a synchronization construct for Objective-C and Swift to facilitate writing asynchronous code.
  • Continuum - NotificationCenter based Lightweight UI / AnyObject binder.
  • Futures - Lightweight promises for iOS, macOS, tvOS, watchOS, and server-side Swift.
  • EasyFutures - 🔗 Swift Futures & Promises. Easy to use. Highly combinable.
  • TopicEventBus - Publish–subscribe design pattern implementation framework, with ability to publish events by topic. (NotificationCenter extended alternative).

back to top

Files

File management, file browser, zip handling and file observers.

  • FileKit - Simple and expressive file management in Swift.
  • Zip - Swift framework for zipping and unzipping files.
  • FileBrowser - Powerful Swift file browser for iOS.
  • Ares - Zero-setup P2P file transfer between Macs and iOS devices.
  • FileProvider - FileManager replacement for Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive/SMB2) files on iOS/tvOS and macOS.
  • KZFileWatchers - A micro-framework for observing file changes, both local and remote. Helpful in building developer tools.
  • ZipArchive - ZipArchive is a simple utility class for zipping and unzipping files on iOS and Mac.
  • FileExplorer - Powerful file browser for iOS that allows its users to choose and remove files and/or directories.
  • ZIPFoundation - Effortless ZIP Handling in Swift.
  • AppFolder - AppFolder is a lightweight framework that lets you design a friendly, strongly-typed representation of a directories inside your app's container.
  • ZipZap - zip file I/O library for iOS, macOS and tvOS.
  • AMSMB2 - Swift framework to connect SMB 2/3 shares for iOS.

back to top

Functional Programming

Collection of Swift functional programming tools.

  • Forbind - Functional chaining and promises in Swift.
  • Funky - Functional programming tools and experiments in Swift.
  • LlamaKit - Collection of must-have functional Swift tools.
  • Oriole - A functional utility belt implemented as Swift protocol extensions.
  • Prelude - Swift µframework of simple functional programming tools.
  • Swiftx - Functional data types and functions for any project.
  • Swiftz - Functional programming in Swift.
  • OptionalExtensions - Swift µframework with extensions for the Optional Type.
  • Argo - Functional JSON parsing library for Swift.
  • Runes - Infix operators for monadic functions in Swift.
  • Bow - Typed Functional Programming companion library for Swift.

back to top

Games

  • AssetImportKit - Swifty cross platform library (macOS, iOS) that converts Assimp supported models to SceneKit scenes.
  • CollectionNode - A swift framework for a collectionView in SpriteKit.
  • glide engine - SpriteKit and GameplayKit based engine for making 2d games, with practical examples and tutorials.
  • Lichess mobile - A mobile client for lichess.org.
  • Sage - A cross-platform chess library for Swift.
  • ShogibanKit - ShogibanKit is a framework for implementing complex Japanese Chess (Shogii) in Swift. No UI, nor AI.
  • SKTiled - Swift framework for working with Tiled assets in SpriteKit.
  • SwiftFortuneWheel - A cross-platform framework for games like a Wheel of Fortune.

back to top

GCD

Grand Central Dispatch syntax sugars, tools and timers.

  • GCDKit - Grand Central Dispatch simplified with Swift.
  • Async - Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch.
  • SwiftSafe - Thread synchronization made easy.
  • YYDispatchQueuePool - iOS utility class to manage global dispatch queue.
  • AlecrimAsyncKit - Bringing async and await to Swift world with some flavouring.
  • GrandSugarDispatch - Syntactic sugar for Grand Central Dispatch (GCD).
  • Threader - Pretty GCD calls and easier code execution.
  • Dispatch - Just a tiny library to make using GCD easier and intuitive.
  • GCDTimer - Well tested Grand Central Dispatch (GCD) Timer in Swift.
  • Chronos-Swift - Grand Central Dispatch Utilities.
  • Me - A super slim solution to the nested asynchronous computations.
  • SwiftyTask - An extreme queuing system with high performance for managing all task in app with closure.

back to top

Gesture

Libraries and tools to handle gestures.

back to top

Graphics

CoreGraphics, CoreAnimation, SVG, CGContext libraries, helpers and tools.

  • Graphicz - Light-weight, operator-overloading-free complements to CoreGraphics!
  • PKCoreTechniques - The code for my CoreGraphics+CoreAnimation talk, held during the 2012 iOS Game Design Seminar at the Technical University Munich.
  • MPWDrawingContext - An Objective-C wrapper for CoreGraphics CGContext.
  • DePict - A simple, declarative, functional drawing framework, in Swift!
  • SwiftSVG - A single pass SVG parser with multiple interface options (String, NS/UIBezierPath, CAShapeLayer, and NS/UIView).
  • InkKit - Write-Once, Draw-Everywhere for iOS and macOS.
  • YYAsyncLayer - iOS utility classes for asynchronous rendering and display.
  • NXDrawKit - NXDrawKit is a simple and easy but useful drawing kit for iPhone.
  • jot - An iOS framework for easily adding drawings and text to images.
  • SVGKit - Display and interact with SVG Images on iOS / macOS, using native rendering (CoreAnimation) (currently only supported for iOS - macOS code needs updating).
  • Snowflake - SVG in Swift.
  • HxSTLParser - Basic STL loader for SceneKit.
  • ProcessingKit - Visual designing library for iOS & OSX.
  • EZYGradientView - Create gradients and blur gradients without a single line of code.
  • AEConicalGradient - Conical (angular) gradient layer written in Swift.
  • MKGradientView - Core Graphics based gradient view capable of producing Linear (Axial), Radial (Circular), Conical (Angular), Bilinear (Four Point) gradients, written in Swift.
  • EPShapes - Design shapes in Interface Builder.
  • Macaw - Powerful and easy-to-use vector graphics library with SVG support written in Swift.
  • BlockiesSwift - Unique blocky identicons/profile picture generator.
  • Rough - lets you draw in a sketchy, hand-drawn-like, style.
  • GraphLayout - UI controls for graph visualization. It is powered by Graphviz.
  • Drawsana - iOS framework for building raster drawing and image markup views.
  • AnimatedGradientView - A simple framework to add animated gradients to your iOS app.

back to top

Hardware

Bluetooth

Libraries to deal with nearby devices, BLE tools and MultipeerConnectivity wrappers.

  • Discovery - A very simple library to discover and retrieve data from nearby devices (even if the peer app works at background).
  • LGBluetooth - Simple, block-based, lightweight library over CoreBluetooth. Will clean up your Core Bluetooth related code.
  • PeerKit An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps.
  • BluetoothKit - Easily communicate between iOS/macOS devices using BLE.
  • Bluetonium - Bluetooth mapping in Swift.
  • BlueCap - iOS Bluetooth LE framework.
  • Apple Family - Quickly connect Apple devices together with Bluetooth, wifi, and USB.
  • Bleu - BLE (Bluetooth LE) for U.
  • Bluejay - A simple Swift framework for building reliable Bluetooth LE apps.
  • BabyBluetooth - The easiest way to use Bluetooth (BLE) in iOS/MacOS.
  • ExtendaBLE - Simple Blocks-Based BLE Client for iOS/tvOS/watchOS/OSX/Android. Quickly configuration for centrals/peripherals, perform packet based read/write operations, and callbacks for characteristic updates.
  • PeerConnectivity - Functional wrapper for Apple's MultipeerConnectivity framework.
  • AZPeerToPeerConnection - AZPeerToPeerConnectivity is a wrapper on top of Apple iOS Multipeer Connectivity framework. It provides an easier way to create and manage sessions. Easy to integrate.
  • MultiPeer - Multipeer is a wrapper for Apple's MultipeerConnectivity framework for offline data transmission between Apple devices. It makes easy to automatically connect to multiple nearby devices and share information using either bluetooth or wifi.
  • BerkananSDK - Mesh messaging SDK with the goal to create a decentralized mesh network for the people, powered by their device's Bluetooth antenna.

back to top

Camera

Mocks, ImagePickers, and multiple options of customizable camera implementation

  • TGCameraViewController - Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects.
  • PBJVision - iOS camera engine, features touch-to-record video, slow motion video, and photo capture.
  • Cool-iOS-Camera - A fully customisable and modern camera implementation for iOS made with AVFoundation.
  • SCRecorder - Camera engine with Vine-like tap to record, animatable filters, slow motion, segments editing.
  • ALCameraViewController - A camera view controller with custom image picker and image cropping. Written in Swift.
  • CameraManager - Simple Swift class to provide all the configurations you need to create custom camera view in your app.
  • RSBarcodes_Swift - 1D and 2D barcodes reader and generators for iOS 8 with delightful controls. Now Swift.
  • LLSimpleCamera - A simple, customizable camera control - video recorder for iOS.
  • Fusuma - Instagram-like photo browser and a camera feature with a few line of code in Swift.
  • BarcodeScanner - Simple and beautiful barcode scanner.
  • HorizonSDK-iOS - State of the art real-time video recording / photo shooting iOS library.
  • FastttCamera - Fasttt and easy camera framework for iOS with customizable filters.
  • DKCamera - A lightweight & simple camera framework for iOS. Written in Swift.
  • NextLevel - Next Level is a media capture camera library for iOS.
  • CameraEngine - Camera engine for iOS, written in Swift, above AVFoundation.
  • SwiftyCam - A Snapchat Inspired iOS Camera Framework written in Swift.
  • CameraBackground - Show camera layer as a background to any UIView.
  • Lumina - Full service camera that takes photos, videos, streams frames, detects metadata, and streams CoreML predictions.
  • RAImagePicker - RAImagePicker is a protocol-oriented framework that provides custom features from the built-in Image Picker Edit.
  • FDTake - Easily take a photo or video or choose from library.
  • YPImagePicker - Instagram-like image picker & filters for iOS.
  • MockImagePicker - Mock UIImagePickerController for testing camera based UI in simulator.
  • iOS-Depth-Sampler - A collection of code examples for Depth APIs.
  • TakeASelfie - An iOS framework that uses the front camera, detects your face and takes a selfie.
  • HybridCamera - Video and photo camera for iOS, similar to the SnapChat camera.
  • CameraKit-iOS - Massively increase camera performance and ease of use in your next iOS project.
  • ExyteMediaPicker - Customizable media picker

back to top

Force Touch

Quick actions and peek and pop interactions

  • QuickActions - Swift wrapper for iOS Home Screen Quick Actions (App Icon Shortcuts).
  • JustPeek - JustPeek is an iOS Library that adds support for Force Touch-like Peek and Pop interactions on devices that do not natively support this kind of interaction.
  • PeekView - PeekView supports peek, pop and preview actions for iOS devices without 3D Touch capibility.

back to top

iBeacon

Device detect libraries and iBeacon helpers

  • Proxitee - Allows developers to create proximity aware applications utilizing iBeacons & geo fences.
  • OWUProximityManager - iBeacons + CoreBluetooth.
  • Vicinity - Vicinity replicates iBeacons (by analyzing RSSI) and supports broadcasting and detecting low-energy Bluetooth devices in the background.
  • BeaconEmitter - Turn your Mac as an iBeacon.
  • MOCA Proximity - Paid proximity marketing platform that lets you add amazing proximity experiences to your app.
  • JMCBeaconManager - An iBeacon Manager class that is responsible for detecting beacons nearby.

back to top

Location

Location monitoring, detect motion and geofencing libraries

  • AsyncLocationKit - Wrapper for Apple CoreLocation framework with Modern Concurrency Swift (async/await).
  • IngeoSDK - Always-On Location monitoring framework for iOS.
  • LocationManager - Provides a block-based asynchronous API to request the current location, either once or continuously.
  • SwiftLocation - Location & Beacon Monitoring in Swift.
  • SOMotionDetector - Simple library to detect motion. Based on location updates and acceleration.
  • LocationPicker - A ready for use and fully customizable location picker for your app.
  • BBLocationManager - A Location Manager for easily implementing location services & geofencing in iOS.
  • set-simulator-location - CLI for setting location in the iOS simulator.
  • NominatimKit - A Swift wrapper for (reverse) geocoding of OpenStreetMap data.

back to top

Other Hardware

  • MotionKit - Get the data from Accelerometer, Gyroscope and Magnetometer in only Two or a few lines of code. CoreMotion now made insanely simple.
  • DarkLightning - Simply the fastest way to transmit data between iOS/tvOS and macOS.
  • Deviice - Simply library to detect the device on which the app is running (and some properties).
  • DeviceKit - DeviceKit is a value-type replacement of UIDevice.
  • Luminous - Luminous is a big framework which can give you a lot of information (more than 50) about the current system.
  • Device - Light weight tool for detecting the current device and screen size written in swift.
  • WatchShaker - WatchShaker is a watchOS helper to get your shake movement written in swift.
  • WatchCon - WatchCon is a tool which enables creating easy connectivity between iOS and WatchOS.
  • TapticEngine - TapticEngine generates iOS Device vibrations.
  • UIDeviceComplete - UIDevice extensions that fill in the missing pieces.
  • NFCNDEFParse - NFC Forum Well Known Type Data Parser for iOS11 and Core NFC.
  • Device.swift - Super-lightweight library to detect used device.
  • SDVersion - Lightweight Cocoa library for detecting the running device's model and screen size.
  • Haptico - Easy to use haptic feedback generator with pattern-play support.
  • NFCPassportReader - Swift library to read an NFC enabled passport. Supports BAC, Secure Messaging, and both active and passive authentication. Requires iOS 13 or above.

back to top

Layout

Auto Layout, UI frameworks and a gorgeous list of tools to simplify layout constructions

  • Masonry - Harness the power of AutoLayout NSLayoutConstraints with a simplified, chainable and expressive syntax.
  • FLKAutoLayout - UIView category which makes it easy to create layout constraints in code.
  • Façade - Programmatic view layout for the rest of us - an autolayout alternative.
  • PureLayout - The ultimate API for iOS & macOS Auto Layout — impressively simple, immensely powerful. Objective-C and Swift compatible.
  • SnapKit - A Swift Autolayout DSL for iOS & macOS.
  • Cartography - A declarative Auto Layout DSL for Swift.
  • AutoLayoutPlus - A bit of steroids for AutoLayout.
  • Neon - A powerful Swift programmatic UI layout framework.
  • MisterFusion - A Swift DSL for AutoLayout. It is the extremely clear, but concise syntax, in addition, can be used in both Swift and Objective-C.
  • SwiftBox - Flexbox in Swift, using Facebook's css-layout.
  • ManualLayout - Easy to use and flexible library for manually laying out views and layers for iOS and tvOS. Supports AsyncDisplayKit.
  • Stevia - Elegant view layout for iOS.
  • Manuscript - AutoLayoutKit in pure Swift.
  • FDTemplateLayoutCell - Template auto layout cell for automatically UITableViewCell height calculating.
  • SwiftAutoLayout - Tiny Swift DSL for Autolayout.
  • FormationLayout - Work with auto layout and size classes easily.
  • SwiftyLayout - Lightweight declarative auto-layout framework for Swift.
  • Swiftstraints - Auto Layout In Swift Made Easy.
  • SwiftBond - Bond is a Swift binding framework that takes binding concepts to a whole new level. It's simple, powerful, type-safe and multi-paradigm.
  • Restraint - Minimal Auto Layout in Swift.
  • EasyPeasy - Auto Layout made easy.
  • Auto Layout Magic - Build 1 scene, let Auto Layout Magic generate the constraints for you! Scenes look great across all devices!
  • Anchorman - An autolayout library for the damn fine citizens of San Diego.
  • LayoutKit - LayoutKit is a fast view layout library for iOS.
  • Relayout - Swift microframework for declaring Auto Layout constraints functionally.
  • Anchorage - A collection of operators and utilities that simplify iOS layout code.
  • Compose - Compose is a library that helps you compose complex and dynamic views.
  • BrickKit - With BrickKit, you can create complex and responsive layouts in a simple way. It's easy to use and easy to extend. Create your own reusable bricks and behaviors.
  • Framezilla - Elegant library which wraps working with frames with a nice chaining syntax.
  • TinyConstraints - The syntactic sugar that makes Auto Layout sweeter for human use.
  • MyLinearLayout - MyLayout is a powerful iOS UI framework implemented by Objective-C. It integrates the functions with Android Layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap.
  • SugarAnchor - Same native NSLayoutAnchor & NSLayoutConstraints; but with more natural and easy to read syntactic sugar. Typesafe, concise & readable.
  • EasyAnchor - Declarative, extensible, powerful Auto Layout.
  • PinLayout - Fast Swift Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable.
  • SnapLayout - Concise Auto Layout API to chain programmatic constraints while easily updating existing constraints.
  • Cupcake - An easy way to create and layout UI components for iOS.
  • MiniLayout - Minimal AutoLayout convenience layer. Program constraints succinctly.
  • Bamboo - Bamboo makes Auto Layout (and manual layout) elegant and concise.
  • FlexLayout - FlexLayout gently wraps the highly optimized facebook/yoga flexbox implementation in a concise, intuitive & chainable syntax.
  • Layout - A declarative UI framework for iOS.
  • CGLayout - Powerful autolayout framework based on constraints, that can manage UIView(NSView), CALayer and not rendered views. Not Apple Autolayout wrapper.
  • YogaKit - Powerful layout engine which implements Flexbox.
  • FlightLayout - Balanced medium between manual layout and auto-layout. Great for calculating frames for complex animations.
  • QLayout - AutoLayout Utility for iOS.
  • Layoutless - Minimalistic declarative layout and styling framework built on top of Auto Layout.
  • Yalta - An intuitive and powerful Auto Layout library.
  • SuperLayout - Simplify Auto Layout with super syntactic sugar.
  • QuickLayout - QuickLayout offers a simple way, to easily manage Auto Layout in code.
  • EEStackLayout - A structured vertical stack layout.
  • RKAutoLayout - Simple wrapper over AutoLayout.
  • Grid - The most powerful Grid container missed in SwiftUI.
  • MondrianLayout - A DSL based layout builder for AutoLayout.
  • ScalingHeaderScrollView - A scroll view with a sticky header which shrinks as you scroll. Written with SwiftUI.

back to top

Localization

Tools to manage strings files, translate and enable localization in your apps.

  • Hodor - Simple solution to localize your iOS App.
  • Swifternalization - Localize iOS apps in a smarter way using JSON files. Swift framework.
  • Rubustrings - Check the format and consistency of Localizable.strings files.
  • BartyCrouch - Incrementally update/translate your Strings files from Code and Storyboards/XIBs.
  • LocalizationKit - Localization management in realtime from a web portal. Easily manage your texts and translations without redeploy and resubmission.
  • Localize-Swift - Swift 2.0 friendly localization and i18n with in-app language switching.
  • LocalizedView - Setting up application specific localized string within Xib file.
  • transai - command line tool help you manage localization string files.
  • Strsync - Automatically translate and synchronize .strings files from base language.
  • IBLocalizable - Localize your views directly in Interface Builder with IBLocalizable.
  • nslocalizer - A tool for finding missing and unused NSLocalizedStrings.
  • L10n-swift - Localization of an application with ability to change language "on the fly" and support for plural forms in any language.
  • Localize - Easy tool to localize apps using JSON or Strings and of course IBDesignables with extensions for UI components.
  • CrowdinSDK - Crowdin iOS SDK delivers all new translations from Crowdin project to the application immediately.
  • attranslate - Semi-automatically translate or synchronize .strings files or crossplatform-files from different languages.
  • Respresso Localization Converter - Multiplatform localization converter for iOS (.strings + Objective-C getters), Android (strings.xml) and Web (.json).
  • locheck - Validate .strings, .stringsdict, and strings.xml files for correctness to avoid crashes and bad translations.
  • StringSwitch - Easily convert iOS .strings files to Android strings.xml format and vice versa.

back to top

Logging

Debugging lives here. Logging tools, frameworks, integrations and more.

  • CleanroomLogger - A configurable and extensible Swift-based logging API that is simple, lightweight and performant.
  • CocoaLumberjack - A fast & simple, yet powerful & flexible logging framework for Mac and iOS.
  • NSLogger - a high performance logging utility which displays traces emitted by client applications running on macOS, iOS and Android.
  • QorumLogs — Swift Logging Utility for Xcode & Google Docs.
  • Log - A logging tool with built-in themes, formatters, and a nice API to define your owns.
  • Rainbow - Delightful console output for Swift developers.
  • SwiftyBeaver - Convenient logging during development and release.
  • SwiftyTextTable - A lightweight tool for generating text tables.
  • Watchdog - Class for logging excessive blocking on the main thread.
  • XCGLogger - A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog or println, but with additional information, such as the date, function name, filename and line number.
  • Colors - A pure Swift library for using ANSI codes. Basically makes command-line coloring and styling very easy!
  • AELog - Simple, lightweight and flexible debug logging framework written in Swift.
  • ReflectedStringConvertible - A protocol that allows any class to be printed as if it were a struct.
  • SwiftTrace - Trace Swift and Objective-C method invocations.
  • Willow - Willow is a powerful, yet lightweight logging library written in Swift.
  • Bugfender - Cloud storage for your app logs. Track user behaviour to find problems in your mobile apps.
  • LxDBAnything - Automate box any value! Print log without any format control symbol! Change debug habit thoroughly!
  • XLTestLog - Styling and coloring your XCTest logs on Xcode Console.
  • XLFacility - Elegant and extensive logging facility for macOS & iOS (includes database, Telnet and HTTP servers).
  • Atlantis - A powerful input-agnostic swift logging framework made to speed up development with maximum readability.
  • StoryTeller - Taking a completely different approach to logging, Story Teller replacing fixed logging levels in It then uses dynamic expressions to control the logging so you only see what is important.
  • LumberMill - Stupidly simple logging.
  • TinyConsole - A tiny log console to display information while using your iOS app.
  • Lighty - Easy to use and lightweight logger for iOS, macOS, tvOS, watchOS and Linux.
  • JustLog - Console, file and remote Logstash logging via TCP socket.
  • Twitter Logging Service - Twitter Logging Service is a robust and performant logging framework for iOS clients.
  • Reqres - Network request and response body logger with Alamofire support.
  • TraceLog - Dead Simple: logging the way it's meant to be! Runs on ios, osx, and Linux.
  • OkLog - A network logger for iOS and macOS projects.
  • Spy - Lightweight, flexible, multiplatform (iOS, macOS, tvOS, watchOS, Linux) logging utility written in pure Swift that allows you to log on different levels and channels which you can define on your own depending on your needs.
  • Diagnostics - Allow users to easily share Diagnostics with your support team to improve the flow of fixing bugs.
  • Gedatsu - Provide readable format about AutoLayout error console log.
  • Pulse - Pulse is a powerful logging system for Apple Platforms. Native. Built with SwiftUI.

back to top

Machine Learning

A collection of ML Models, deep learning and neural networking libraries

  • Swift-Brain - Artificial Intelligence/Machine Learning data structures and Swift algorithms for future iOS development. Bayes theorem, Neural Networks, and more AI.
  • AIToolbox - A toolbox of AI modules written in Swift: Graphs/Trees, Linear Regression, Support Vector Machines, Neural Networks, PCA, KMeans, Genetic Algorithms, MDP, Mixture of Gaussians.
  • Tensorflow-iOS - The official Google-built powerful neural network library port for iOS.
  • Bender - Easily craft fast Neural Networks. Use TensorFlow models. Metal under the hood.
  • CoreML-samples - Sample code for Core ML using ResNet50 provided by Apple and a custom model generated by coremltools.
  • Revolver - A framework for building fast genetic algorithms in Swift. Comes with modular architecture, pre-implemented operators and loads of examples.
  • CoreML-Models - A collection of unique Core ML Models.
  • Serrano - A deep learning library for iOS and macOS.
  • Swift-AI - The Swift machine learning library.
  • TensorSwift - A lightweight library to calculate tensors in Swift, which has similar APIs to TensorFlow's.
  • DL4S - Deep Learning for Swift: Accelerated tensor operations and dynamic neural networks based on reverse mode automatic differentiation for every device that can run Swift.
  • SwiftCoreMLTools - A Swift library for creating and exporting CoreML Models in Swift.
  • iOS-GenAI-Sampler - A collection of Generative AI examples on iOS.

back to top

Maps

  • Mapbox GL - An OpenGL renderer for Mapbox Vector Tiles with SDK bindings for iOS.
  • GEOSwift - The Swift Geographic Engine.
  • PXGoogleDirections - Google Directions API helper for iOS, written in Swift.
  • Cluster - Easy Map Annotation Clustering.
  • JDSwiftHeatMap - JDSwiftMap is an IOS Native MapKit Library. You can easily make a highly customized HeatMap.
  • ClusterKit - An iOS map clustering framework targeting MapKit, Google Maps and Mapbox.
  • FlyoverKit - FlyoverKit enables you to present stunning 360° flyover views on your MKMapView with zero effort while maintaining full configuration possibilities.
  • MapViewPlus - Use any custom view as custom callout view of your MKMapView with cool animations. Also, easily use any image as annotation view.
  • MSFlightMapView - Add and animate geodesic flights on Google map.
  • WhirlyGlobe-Maply - 3D globe and flat-map SDK for iOS. This toolkit has a large API for fine-grained control over the map or globe. It reads a wide variety of GIS data formats.

back to top

Math

Math frameworks, functions and libraries to custom operations, statistical calculations and more.

  • Euler - Swift Custom Operators for Mathematical Notation.
  • SwiftMath - A math framework for Swift. Includes: vectors, matrices, complex numbers, quaternions and polynomials.
  • Arithmosophi - A set of protocols for Arithmetic and Logical operations.
  • Surge - A Swift library that uses the Accelerate framework to provide high-performance functions for matrix math, digital signal processing, and image manipulation.
  • Upsurge - Swift math.
  • Swift-MathEagle - A general math framework to make using math easy. Currently supports function solving and optimisation, matrix and vector algebra, complex numbers, big int and big frac and general handy extensions and functions.
  • iosMath - A library for displaying beautifully rendered math equations. Enables typesetting LaTeX math formulae in iOS.
  • BigInt - Arbitrary-precision arithmetic in pure Swift.
  • SigmaSwiftStatistics - A collection of functions for statistical calculation.
  • VectorMath - A Swift library for Mac and iOS that implements common 2D and 3D vector and matrix functions, useful for games or vector-based graphics.
  • Expression - A Mac and iOS library for evaluating numeric expressions at runtime.
  • Metron - Metron is a comprehensive collection of geometric functions and types that extend the 2D geometric primitives provided by CoreGraphics.
  • NumericAnnex - NumericAnnex supplements the numeric facilities provided in the Swift standard library.
  • Matft - Matft is Numpy-like library in Swift. Matft allows us to handle n-dimensional array easily in Swift.

back to top

Media

Audio

  • AudioBus - Add Next Generation Live App-to-App Audio Routing.
  • AudioKit - A powerful toolkit for synthesizing, processing, and analyzing sounds.
  • EZAudio - An iOS/macOS audio visualization framework built upon Core Audio useful for anyone doing real-time, low-latency audio processing and visualizations.
  • novocaine - Painless high-performance audio on iOS and macOS.
  • QHSpeechSynthesizerQueue - Queue management system for AVSpeechSynthesizer (iOS Text to Speech).
  • Cephalopod - A sound fader for AVAudioPlayer written in Swift.
  • Chirp - The easiest way to prepare, play, and remove sounds in your Swift app!
  • Beethoven - An audio processing Swift library for pitch detection of musical signals.
  • AudioPlayerSwift - AudioPlayer is a simple class for playing audio in iOS, macOS and tvOS apps.
  • AudioPlayer - AudioPlayer is syntax and feature sugar over AVPlayer. It plays your audio files (local & remote).
  • TuningFork - Simple Tuner for iOS.
  • MusicKit - A framework for composing and transforming music in Swift.
  • SubtleVolume - Replace the system volume popup with a more subtle indicator.
  • NVDSP - iOS/macOS DSP for audio (with Novocaine).
  • SRGMediaPlayer-iOS - The SRG Media Player library for iOS provides a simple way to add a universal audio / video player to any iOS application.
  • IQAudioRecorderController - A drop-in universal library allows to record audio within the app with a nice User Interface.
  • TheAmazingAudioEngine2 - The Amazing Audio Engine is a sophisticated framework for iOS audio applications, built so you don't have to.
  • InteractivePlayerView - Custom iOS music player view.
  • ESTMusicIndicator - Cool Animated music indicator view written in Swift.
  • QuietModemKit - iOS framework for the Quiet Modem (data over sound).
  • SwiftySound - Super simple library that lets you play sounds with a single line of code (and much more). Written in Swift 3, supports iOS, macOS and tvOS. CocoaPods and Carthage compatible.
  • BPMAnalyser - Fast and simple instrument to get the BPM rate from your audio-files.
  • PandoraPlayer - A lightweight music player for iOS, based on AudioKit.
  • SonogramView - Audio visualisation of song.
  • AudioIndicatorBars - AIB indicates for your app users which audio is playing. Just like the Podcasts app.
  • Porcupine - On-device wake word detection engine for macOS, iOS, and watchOS, powered by deep learning.
  • Voice Overlay - An overlay that gets your user’s voice permission and input as text in a customizable UI.
  • ModernAVPlayer - Persistence player to resume playback after bad network connection even in background mode, manage headphone interactions, system interruptions, now playing informations and remote commands.
  • FDWaveformView - An easy way to display an audio waveform in your app, including animation.
  • FDSoundActivatedRecorder - Start recording when the user speaks.

back to top

GIF

  • YLGIFImage - Async GIF image decoder and Image viewer supporting play GIF images. It just use very less memory.
  • FLAnimatedImage - Performant animated GIF engine for iOS.
  • gifu - Highly performant animated GIF support for iOS in Swift.
  • AnimatedGIFImageSerialization - Complete Animated GIF Support for iOS, with Functions, NSJSONSerialization-style Class, and (Optional) UIImage Swizzling
  • XAnimatedImage - XAnimatedImage is a performant animated GIF engine for iOS written in Swift based on FLAnimatedImage
  • SwiftGif - A small UIImage extension with gif support.
  • APNGKit - High performance and delightful way to play with APNG format in iOS.
  • YYImage - Image framework for iOS to display/encode/decode animated WebP, APNG, GIF, and more.
  • AImage - A animated GIF&APNG engine for iOS in Swift with low memory & cpu usage.Optimized for Multi-Image case.
  • NSGIF2 - Simplify creation of a GIF from the provided video file url.
  • SwiftyGif - High performance GIF engine.

back to top

Image

  • GPU Image - An open source iOS framework for GPU-based image and video processing.
  • UIImage DSP - iOS UIImage processing functions using the vDSP/Accelerate framework for speed.
  • AsyncImageView - Simple extension of UIImageView for loading and displaying images asynchronously without lock up the UI.
  • SDWebImage - Asynchronous image downloader with cache support with an UIImageView category.
  • DFImageManager - Modern framework for fetching images from various sources. Zero config yet immense customization and extensibility. Uses NSURLSession.
  • MapleBacon - An image download and caching library for iOS written in Swift.
  • NYTPhotoViewer - Slideshow and image viewer.
  • IDMPhotoBrowser - Photo Browser / Viewer.
  • Concorde - Download and decode progressive JPEGs.
  • TOCropViewController - A view controller that allows users to crop UIImage objects.
  • YXTMotionView - A custom image view that implements device motion scrolling.
  • PINRemoteImage - A thread safe, performant, feature rich image fetcher.
  • SABlurImageView - Easily Adding Animated Blur/Unblur Effects To An Image.
  • FastImageCache - iOS library for quickly displaying images while scrolling.
  • BKAsciiImage - Convert UIImage to ASCII art.
  • AlamofireImage - An image component library for Alamofire.
  • Nuke - Image loading, processing, caching and preheating.
  • FlagKit - Beautiful flag icons for usage in apps and on the web.
  • YYWebImage - Asynchronous image loading framework (supports WebP, APNG, GIF).
  • RSKImageCropper - An image cropper for iOS like in the Contacts app with support for landscape orientation.
  • Silo - Image loading framework with loaders.
  • Ody - Ody is an easy to use random image generator built with Swift, Perfect for placeholders.
  • Banana - Image slider with very simple interface.
  • JDSwiftAvatarProgress - Easy customizable avatar image asynchronously with progress bar animated.
  • Kingfisher - A lightweight and pure Swift implemented library for downloading and caching image from the web.
  • EBPhotoPages - A photo gallery for iOS with a modern feature set. Similar features as the Facebook photo browser.
  • UIImageView-BetterFace-Swift - The Swift version of https://github.com/croath/UIImageView-BetterFace
  • KFSwiftImageLoader - An extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memory and disk caching for iOS and Apple Watch.
  • Toucan - Fabulous Image Processing in Swift.
  • ImageLoaderSwift - A lightweight and fast image loader for iOS written in Swift.
  • ImageScout - A Swift implementation of fastimage. Supports PNG, GIF, and JPEG.
  • JLStickerTextView - A UIImageView allow you to add multiple Label (multiple line text support) on it, you can edit, rotate, resize the Label as you want with one finger ,then render the text on Image.
  • Agrume - A lemony fresh iOS image viewer written in Swift.
  • PASImageView - Rounded async imageview downloader lightly cached and written in Swift.
  • Navi - Focus on avatar caching.
  • SwiftPhotoGallery - Simple, fullscreen image gallery with tap, swipe, and pinch gestures.
  • MetalAcc - GPU-based Media processing library using Metal written in Swift.
  • MWPhotoBrowser - A simple iOS photo and video browser with grid view, captions and selections.
  • UIImageColors - iTunes style color fetcher for UIImage.
  • CDFlipView - A view that takes a set of images, make transition from one to another by using flipping effects.
  • GPUImage2 - GPUImage 2 is a BSD-licensed Swift framework for GPU-accelerated video and image processing.
  • TGLParallaxCarousel - A lightweight 3D Linear Carousel with parallax effect.
  • ImageButter - Makes dealing with images buttery smooth.
  • SKPhotoBrowser - Simple PhotoBrowser/Viewer inspired by Facebook, Twitter photo browsers written by swift.
  • YUCIHighPassSkinSmoothing - An implementation of High Pass Skin Smoothing using Apple's Core Image Framework.
  • CLImageViewPopup - A simple Image full screen pop up.
  • APKenBurnsView - Ken Burns effect with face recognition!
  • Moa - An image download extension of the image view for iOS, tvOS and macOS.
  • JMCMarchingAnts - Library that lets you add marching ants (animated) selection to the edges of the images.
  • ImageViewer - An image viewer à la Twitter.
  • FaceAware - An extension that gives UIImageView the ability to focus on faces within an image when using AspectFill.
  • SwiftyAvatar - A UiimageView class for creating circular avatar images, IBDesignable to make all changes via storyboard.
  • ShinpuruImage - Syntactic Sugar for Accelerate/vImage and Core Image Filters.
  • ImagePickerSheetController - ImagePickerSheetController is like the custom photo action sheet in iMessage just without the glitches.
  • ComplimentaryGradientView - Create complementary gradients generated from dominant and prominent colors in supplied image. Inspired by Grade.js.
  • ImageSlideshow - Swift image slideshow with circular scrolling, timer and full screen viewer.
  • Imaginary - Remote images, as easy as one, two, three.
  • PPAssetsActionController - Highly customizable Action Sheet Controller with Assets Preview.
  • Vulcan - Multi image downloader with priority in Swift.
  • FacebookImagePicker - Facebook album photo picker written in Swift.
  • Lightbox - A convenient and easy to use image viewer for your iOS app.
  • Ebblink - An iOS SDK for sharing photos that automatically expire and can be deleted at any time.
  • Sharaku - Instagram-like image filter ViewController.
  • CTPanoramaView - Displays spherical or cylindrical panoramas or 360-photos with touch or motion based control options.
  • Twitter Image Pipline - streamlined framework for fetching and storing images in an application.
  • TinyCrayon - A smart and easy-to-use image masking and cutout SDK for mobile apps.
  • FlexibleImage - A simple way to play with image!
  • TLPhotoPicker - Multiple phassets picker for iOS lib. like a facebook.
  • YapImageManager - A high-performance image downloader written in Swift, powered by YapDatabase.
  • PhotoEditorSDK - A fully customizable photo editor for your app.
  • SimpleImageViewer - A snappy image viewer with zoom and interactive dismissal transition.
  • AZImagePreview - A framework that makes image viewing easy.
  • FaceCropper - Crop faces, inside of your image, with iOS 11 Vision api.
  • Paparazzo - Custom iOS camera and photo picker with editing capabilities.
  • ZImageCropper - A Swift project to crop image in any shape.
  • InitialsImageView - An UIImageView extension that generates letter initials as a placeholder for user profile images, with a randomized background color.
  • DTPhotoViewerController - A fully customizable photo viewer ViewController, inspired by Facebook photo viewer.
  • LetterAvatarKit - A UIImage extension that generates letter-based avatars written in Swift.
  • AXPhotoViewer - An iPhone/iPad photo gallery viewer, useful for viewing a large (or small!) number of photos
  • TJProfileImage - Live rendering of componet’s properties in Interface Builder.
  • Viewer - Image viewer (or Lightbox) with support for local and remote videos and images.
  • OverlayComposite - An asynchronous, multithreaded, image compositing framework written in Swift.
  • MCScratchImageView - A custom ImageView that is used to cover the surface of other view like a scratch card, user can swipe the mulch to see the view below.
  • MetalPetal - A GPU-accelerated image/video processing framework based on Metal.
  • ShadowImageView - ShadowImageView is a iOS 10 Apple Music style image view, help you create elegent image with shadow.
  • Avatar - Generate random user Avatar images using CoreGraphics and QuartzCore.
  • Serrata - Slide image viewer library similar to Twitter and LINE.
  • StyleArt - Style Art library process images using COREML with a set of pre trained machine learning models and convert them to Art style.
  • greedo-layout-for-ios - Full aspect ratio grid layout for iOS.
  • ImageDetect - Detect and crop faces, barcodes and texts inside of your image, with iOS 11 Vision api.
  • THTiledImageView - Provide ultra-high-quality images through tiling techniques.
  • GPUImage3 - GPUImage 3 is a BSD-licensed Swift framework for GPU-accelerated video and image processing using Metal.
  • Harbeth - Metal API for GPU accelerated Graphics and Video and Camera filter framework.🔥💥
  • Gallery - Your next favorite image and video picker.
  • ATGMediaBrowser - Image slide-show viewer with multiple predefined transition styles, and ability to create new transitions with ease.
  • Pixel - An image editor and engine using CoreImage.
  • OnlyPictures - A simple and flexible way to add source of overlapping circular pictures.
  • SFSafeSymbols - Safely access Apple's SF Symbols using static typing.
  • BSZoomGridScrollView - iOS customizable grid style scrollView UI library to display your UIImage array input, designed primarily for SwiftUI as well as to interoperate with UIKit.

back to top

Media Processing

  • SwiftOCR - Fast and simple OCR library written in Swift.
  • QR Code Scanner - QR Code implementation.
  • QRCode - A QRCode generator written in Swift.
  • EFQRCode - A better way to operate two-dimensional code in Swift.
  • NSFWDetector - A NSFW (aka porn) detector with CoreML.

back to top

PDF

  • Reader - PDF Reader Core for iOS.
  • UIView 2 PDF - PDF generator using UIViews or UIViews with an associated XIB.
  • FolioReaderKit - A Swift ePub reader and parser framework for iOS.
  • PDFGenerator - A simple Generator of PDF in Swift. Generate PDF from view(s) or image(s).
  • SimplePDF - Create a simple PDF effortlessly.
  • SwiftPDFGenerator - PDF generator using UIViews; Swift Version of 'UIView 2 PDF'.
  • PSPDFKit - Render PDF, add/edit annotations, fill forms, add/edit pages, view/create digital signatures.
  • TPPDF - Generate PDF using commands and automatic layout.
  • FastPdfKit - A Static Library to be embedded on iOS applications to display pdf documents derived from Fast PDF.
  • UIImagePlusPDF - UIImage extensions to simply use PDF files.

back to top

Streaming

  • HaishinKit.swift - Camera and Microphone streaming library via RTMP, HLS for iOS, macOS.
  • StreamingKit - A fast and extensible gapless AudioPlayer/AudioStreamer for macOS and iOS.
  • Jukebox - Player for streaming local and remote audio files. Written in Swift.
  • LFLiveKit - H264 and AAC Hard coding,support GPUImage Beauty, rtmp transmission,weak network lost frame,Dynamic switching rate.
  • Airstream - A framework for streaming audio between Apple devices using AirPlay.
  • OTAcceleratorCore - A painless way to integrate audio/video(screen sharing) to any iOS applications via Tokbox.

back to top

Video

  • VLC for iOS - VLC is a free and open source multimedia player for iOS.
  • VIMVideoPlayer - A simple wrapper around the AVPlayer and AVPlayerLayer classes.
  • MobilePlayer - A powerful and completely customizable media player for iOS.
  • XCDYouTubeKit - YouTube video player for iOS, tvOS and macOS.
  • AVAnimator - An open source iOS native library that makes it easy to implement non-trivial video/audio enabled apps.
  • Periscope VideoViewController - Video view controller with Periscope fast rewind control.
  • MHVideoPhotoGallery - A Photo and Video Gallery.
  • PlayerView - Player View is a delegated view using AVPlayer of Swift.
  • SRGMediaPlayer-iOS - The SRG Media Player library for iOS provides a simple way to add a universal audio / video player to any iOS application.
  • AVPlayerViewController-Subtitles - AVPlayerViewController-Subtitles is a library to display subtitles on iOS. It's built as a Swift extension and it's very easy to integrate.
  • MPMoviePlayerController-Subtitles - MPMoviePlayerController-Subtitles is a library to display subtitles on iOS. It's built as a Swift extension and it's very easy to integrate.
  • ZFPlayer - Based on AVPlayer, support for the horizontal screen, vertical screen (full screen playback can also lock the screen direction), the upper and lower slide to adjust the volume, the screen brightness, or so slide to adjust the playback progress.
  • Player - video player in Swift, simple way to play and stream media in your iOS or tvOS app.
  • BMPlayer - Video player in swift3 and swift2 for iOS, based on AVPlayer, support the horizontal, vertical screen. support adjust volume, brigtness and seek by slide.
  • VideoPager - Paging Video UI, and some control components is available.
  • ios-360-videos - NYT360Video plays 360-degree video streamed from an AVPlayer.
  • swift-360-videos - Pure swift (no SceneKit) 3D library with focus on video and 360.
  • ABMediaView - UIImageView subclass for drop-in image, video, GIF, and audio display, with functionality for fullscreen and minimization to the bottom-right corner.
  • PryntTrimmerView - A set of UI elements to trim, crop and select frames inside a video.
  • VGPlayer - A simple iOS video player in Swift,Support play local and network,Background playback mode.
  • YoutubeKit - A video player that fully supports Youtube IFrame API and YoutubeDataAPI for easily create a Youtube app.
  • Swift-YouTube-Player - Swift library for embedding and controlling YouTube videos in your iOS applications!
  • JDVideoKit - You can easily transfer your video into Three common video type via this framework.
  • VersaPlayer - Versatile AVPlayer implementation for iOS, macOS, and tvOS.

back to top

Messaging

Also see push notifications

  • XMPPFramework - An XMPP Framework in Objective-C for Mac and iOS.
  • Chatto - A lightweight framework to build chat applications, made in Swift.
  • MessageKit - Eventually, a Swift re-write of JSQMessagesViewController.
  • Messenger - This is a native iOS Messenger app, making realtime chat conversations and audio calls with full offline support.
  • OTTextChatAccelerator - OpenTok Text Chat Accelerator Pack enables text messages between mobile or browser-based devices.
  • chat-sdk-ios - Chat SDK iOS - Open Source Mobile Messenger.
  • AsyncMessagesViewController - A smooth, responsive and flexible messages UI library for iOS.
  • MessageViewController - A SlackTextViewController replacement written in Swift for the iPhone X.
  • SwiftyMessenger - Swift toolkit for passing messages between iOS apps and extensions.
  • Messenger Chat with Firebase - Swift messaging chat app with Firebase Firestore integration.
  • SwiftKafka - Swift SDK for Apache Kafka by IBM.
  • ChatLayout - A lightweight framework to build chat UI that uses custom UICollectionViewLayout to provide full control over the presentation as well as all the tools available in UICollectionView.
  • ExyteChat - SwiftUI Chat UI framework with fully customizable message cells, input view, and a built-in media picker.

back to top

Networking

  • AFNetworking - A delightful iOS and macOS networking framework.
  • RestKit - RestKit is an Objective-C framework for iOS that aims to make interacting with RESTful web services simple, fast and fun.
  • FSNetworking - Foursquare iOS networking library.
  • ASIHTTPRequest - Easy to use CFNetwork wrapper for HTTP requests, Objective-C, macOS and iPhone.
  • Overcoat - Small but powerful library that makes creating REST clients simple and fun.
  • ROADFramework - Attributed-oriented approach for interacting with web services. The framework has built-in json and xml serialization for requests and responses and can be easily extensible.
  • Alamofire - Alamofire is an HTTP networking library written in Swift, from the creator of AFNetworking.
  • Transporter - A tiny library makes uploading and downloading easier.
  • CDZPinger - Easy-to-use ICMP Ping.
  • NSRails - iOS/Mac OS framework for Rails.
  • NKMultipeer - A testable abstraction over multipeer connectivity.
  • CocoaAsyncSocket - Asynchronous socket networking library for Mac and iOS.
  • Siesta - Elegant abstraction for RESTful resources that untangles stateful messes. An alternative to callback- and delegate-based networking.
  • Reachability.swift - Replacement for Apple's Reachability re-written in Swift with closures.
  • OctopusKit - A simplicity but graceful solution for invoke RESTful web service APIs.
  • Moya - Network abstraction layer written in Swift.
  • TWRDownloadManager - A modern download manager based on NSURLSession to deal with asynchronous downloading, management and persistence of multiple files.
  • HappyDns - A Dns library, support custom dns server, dnspod httpdns. Only support A record.
  • Bridge - A simple extensible typed networking library. Intercept and process/alter requests and responses easily.
  • TRON - Lightweight network abstraction layer, written on top of Alamofire.
  • EVCloudKitDao - Simplified access to Apple's CloudKit.
  • EVURLCache - a NSURLCache subclass for handling all web requests that use NSURLRequest.
  • ResponseDetective - Sherlock Holmes of the networking layer.
  • Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines.
  • Just - Swift HTTP for Humans.
  • agent - Minimalistic Swift HTTP request agent for iOS and macOS.
  • Reach - A simple class to check for internet connection availability in Swift.
  • SwiftHTTP - Thin wrapper around NSURLSession in swift. Simplifies HTTP requests.
  • Netdiag - A network diagnosis library. Support Ping/TcpPing/Rtmp/TraceRoute/DNS/external IP/external DNS.
  • AFNetworkingHelper - A custom wrapper over AFNetworking library that we use inside RC extensively.
  • NetKit - A Concise HTTP Framework in Swift.
  • RealReachability - We need to observe the REAL reachability of network. That's what RealReachability do.
  • MonkeyKing - MonkeyKing helps you post messages to Chinese Social Networks.
  • NetworkKit - Lightweight Networking and Parsing framework made for iOS, Mac, WatchOS and tvOS.
  • APIKit - A networking library for building type safe web API client in Swift.
  • ws ☁️ - Elegant JSON WebService in Swift.
  • SPTDataLoader - The HTTP library used by the Spotify iOS client.
  • SWNetworking - Powerful high-level iOS, macOS and tvOS networking library.
  • Networking - Simple HTTP Networking in Swift a NSURLSession wrapper with image caching support.
  • SOAPEngine - This generic SOAP client allows you to access web services using a your iOS app, macOS app and AppleTV app.
  • Swish - Nothing but Net(working).
  • Malibu - Malibu is a networking library built on promises.
  • YTKNetwork - YTKNetwork is a high level request util based on AFNetworking.
  • UnboxedAlamofire - Alamofire + Unbox: the easiest way to download and decode JSON into swift objects.
  • MMLanScan - An iOS LAN Network Scanner library.
  • Domainer - Manage multi-domain url auto mapping ip address table.
  • Restofire - Restofire is a protocol oriented network abstraction layer in swift that is built on top of Alamofire to use services in a declartive way.
  • AFNetworking+RetryPolicy - An objective-c category that adds the ability to set the retry logic for requests made with AFNetworking.
  • SwiftyZeroMQ - ZeroMQ Swift Bindings for iOS, macOS, tvOS and watchOS.
  • Nikka - A super simple Networking wrapper that supports many JSON libraries, Futures and Rx.
  • XMNetworking - A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking.
  • Merhaba - Bonjour networking for discovery and connection between iOS, macOS and tvOS devices.
  • DBNetworkStack - Resource-oritented networking which is typesafe, extendable, composeable and makes testing a lot easier.
  • EFInternetIndicator - A little swift Internet error status indicator using ReachabilitySwift.
  • AFNetworking-Synchronous - Synchronous requests for AFNetworking 1.x, 2.x, and 3.x.
  • QwikHttp - a robust, yet lightweight and simple to use HTTP networking library designed for RESTful APIs.
  • NetClient - Versatile HTTP networking library written in Swift 3.
  • WANetworkRouting - An iOS library to route API paths to objects on client side with request, mapping, routing and auth layers.
  • Reactor - Powering your RAC architecture.
  • SWNetworking - Powerful high-level iOS, macOS and tvOS networking library. from the creator of SWNetworking.
  • Digger - Digger is a lightweight download framework that requires only one line of code to complete the file download task.
  • Ciao - Publish and discover services using mDNS(Bonjour, Zeroconf).
  • Bamboots - Bamboots is a network request framework based on Alamofire, aiming at making network request easier for business development.
  • SolarNetwork - Elegant network abstraction layer in Swift.
  • FGRoute - An easy-to-use library that helps developers to get wifi ssid, router and device ip addresses.
  • RxRestClient - Simple REST Client based on RxSwift and Alamofire.
  • TermiNetwork - A networking library written with Swift 4.0 that supports multi-environment configuration, routing and automatic deserialization.
  • Dots - Lightweight Concurrent Networking Framework.
  • Gem - An extreme light weight system with high performance for managing all http request with automated parser with modal.
  • RMHttp - Lightweight REST library for iOS and watchOS.
  • AlamoRecord - An elegant yet powerful iOS networking layer inspired by ActiveRecord.
  • MHNetwork - Protocol Oriented Network Layer Aim to avoid having bloated singleton NetworkManager.
  • ThunderRequest - A simple URLSession wrapper with a generic protocol based request body approach and easy deserialisation of responses.
  • ReactiveAPI - Write clean, concise and declarative network code relying on URLSession, with the power of RxSwift. Inspired by Retrofit.
  • Squid - Declarative and reactive networking framework based on Combine and providing means for HTTP requests, transparent pagination, and WebSocket communication.
  • Get - A modern Swift web API client built using async/await.

back to top

Newsletters

  • AwesomeiOS Weekly - AwesomeiOS Weekly.
  • iOS Goodies - Weekly iOS newsletter.
  • raywenderlich.com Weekly - sign up to receive the latest tutorials from raywenderlich.com each week.
  • iOS Dev Tools Weekly - The greatest iOS development tools, including websites, desktop and mobile apps, and back-end services.
  • iOS Trivia Weekly - Three challenging questions about iOS development every Wednesday.
  • Indie iOS Focus Weekly - Looking for the best iOS dev links, tutorials, & tips beyond the usual news? Curated by Chris Beshore. Published every Thursday.
  • iOS Dev Weekly - Subscribe to a hand-picked round up of the best iOS development links every week. Free.
  • Swift Weekly Brief - A community-driven weekly newsletter about Swift.org. Curated by Jesse Squires and published for free every Thursday.
  • Server-Side Swift Weekly - A weekly newsletter with the best links related to server-side Swift and cross-platform developer tools. Curated by @maxdesiatov
  • iOS Cookies Newsletter - A weekly digest of new iOS libraries written in Swift.
  • Swift Developments - A weekly curated newsletter containing a hand picked selection of the latest links, videos, tools and tutorials for people interested in designing and developing their own iOS, WatchOS and AppleTV apps using Swift.
  • Mobile Developers Cafe - A weekly newsletter for Mobile developers with loads of iOS content.
  • Indie Watch - A weekly newsletter featuring the best apps made by indie iOS developers.
  • SwiftLee - A weekly blog about Swift, iOS and Xcode Tips and Tricks.

back to top

Notifications

Push Notifications

  • Orbiter - Push Notification Registration for iOS.
  • PEM - Automatically generate and renew your push notification profiles.
  • Knuff - The debug application for Apple Push Notification Service (APNS).
  • FBNotifications - Facebook Analytics In-App Notifications Framework.
  • NWPusher - macOS and iOS application and framework to play with the Apple Push Notification service (APNs).
  • SimulatorRemoteNotifications - Library to send mock remote notifications to the iOS simulator.
  • APNSUtil - Library makes code simple settings and landing for apple push notification service.

back to top

Push Notification Providers

Most of these are paid services, some have free tiers.

back to top

Objective-C Runtime

Objective-C Runtime wrappers, libraries and tools.

  • Lumos - A light Swift wrapper around Objective-C Runtime.
  • Swizzlean - An Objective-C Swizzle Helper Class.

back to top

Optimization

  • Unreachable - Unreachable code path optimization hint for Swift.
  • SmallStrings - Reduce localized .strings file sizes by 80%.

back to top

Other Awesome Lists

Other amazingly awesome lists can be found in the

back to top

Parsing

CSV

  • CSwiftV - A csv parser written in swift conforming to rfc4180.
  • CSV.swift - CSV reading and writing library written in Swift.
  • CodableCSV - Read and write CSV files row-by-row & field-by-field or through Swift's Codable interface.

back to top

JSON

  • SBJson - This framework implements a strict JSON parser and generator in Objective-C.
  • Mantle - Model framework for Cocoa and Cocoa Touch.
  • Groot - Convert JSON dictionaries and arrays to and from Core Data managed objects.
  • PropertyMapper - Data mapping and validation with minimal amount of code.
  • JSONModel - Magical Data Modeling Framework for JSON. Create rapidly powerful, atomic and smart data model classes.
  • SwiftyJSON - The better way to deal with JSON data in Swift.
  • FastEasyMapping - Serialize & deserialize JSON fast.
  • ObjectMapper - A framework written in Swift that makes it easy for you to convert your Model objects (Classes and Structs) to and from JSON.
  • JASON - JSON parsing with outstanding performances and convenient operators.
  • Gloss - A shiny JSON parsing library in Swift.
  • SwiftyJSONAccelerator - Generate Swift 5 model files from JSON with Codeable support.
  • alexander - An extremely simple JSON helper written in Swift.
  • Freddy - A reusable framework for parsing JSON in Swift.
  • mapper - A JSON deserialization library for Swift.
  • Alembic - Functional JSON parsing, mapping to objects, and serialize to JSON.
  • Arrow 🏹 - Elegant JSON Parsing in Swift.
  • JSONExport - JSONExport is a desktop application for macOS which enables you to export JSON objects as model classes with their associated constructors, utility methods, setters and getters in your favorite language.
  • Elevate - Elevate is a JSON parsing framework that leverages Swift to make parsing simple, reliable and composable.
  • MJExtension - A fast, convenient and nonintrusive conversion between JSON and model. Your model class don't need to extend another base class. You don't need to modify any model file.
  • AlamofireObjectMapper - An Alamofire extension which converts JSON response data into swift objects using ObjectMapper.
  • JAYSON - Strict and Scalable JSON library.
  • HandyJSON - A handy swift JSON-object serialization/deserialization library for Swift.
  • Marshal - Marshaling the typeless wild west of [String: Any] (Protocol based).
  • Motis - Easy JSON to NSObject mapping using Cocoa's key value coding (KVC).
  • NSTEasyJSON - The easiest way to deal with JSON data in Objective-C (similar to SwiftyJSON).
  • Serpent - A protocol to serialize Swift structs and classes for encoding and decoding.
  • FlatBuffersSwift - This project brings FlatBuffers (an efficient cross platform serialization library) to Swift.
  • CodableAlamofire - An extension for Alamofire that converts JSON data into Decodable objects (Swift 4).
  • WAMapping - A library to turn dictionary into object and vice versa for iOS. Designed for speed!
  • Himotoki - A type-safe JSON decoding library purely written in Swift.
  • PMHTTP - Swift/Obj-C HTTP framework with a focus on REST and JSON.
  • NativeJSONMapper - Simple Swift 4 encoding & decoding.
  • PMJSON - Pure Swift JSON encoding/decoding library.
  • jsoncafe.com - Online Template driven Model Class Generator from JSON.
  • Mappable - lightweight and powerful JSON object mapping library, specially optimized for immutable properties.

back to top

XML & HTML

  • AEXML - Simple and lightweight XML parser written in Swift.
  • Ji - XML/HTML parser for Swift.
  • Ono - A sensible way to deal with XML & HTML for iOS & macOS.
  • Fuzi - A fast & lightweight XML & HTML parser in Swift with XPath & CSS support.
  • Kanna - Kanna(鉋) is an XML/HTML parser for macOS/iOS.
  • SwiftyXMLParser - Simple XML Parser implemented in Swift.
  • HTMLKit - An Objective-C framework for your everyday HTML needs.
  • SWXMLHash - Simple XML parsing in Swift.
  • SwiftyXML - The most swifty way to deal with XML data in swift 4.
  • XMLCoder - Encoder & Decoder for XML using Swift's Codable protocols.
  • ZMarkupParser - Convert HTML strings into NSAttributedString with customized styles and tags.

back to top

Other Parsing

  • WKZombie - WKZombie is a Swift framework for iOS/macOS to navigate within websites and collect data without the need of User Interface or API, also known as Headless browser. It can be used to run automated tests or manipulate websites using Javascript.
  • URLPreview - An NSURL extension for showing preview info of webpages.
  • FeedKit - An RSS and Atom feed parser written in Swift.
  • Erik - Erik is an headless browser based on WebKit. An headless browser allow to run functional tests, to access and manipulate webpages using javascript.
  • URLEmbeddedView - Automatically caches the object that is confirmed the Open Graph Protocol, and displays it as URL embedded card.
  • SwiftCssParser - A Powerful , Extensible CSS Parser written in pure Swift.
  • RLPSwift - Recursive Length Prefix encoding written in Swift.
  • AcknowledgementsPlist - AcknowledgementsPlist manages the licenses of libraries that depend on your iOS app.
  • CoreXLSX - Excel spreadsheet (XLSX) format support in pure Swift.
  • SVGView - SVG parser and renderer written in SwiftUI.
  • CreateAPI - Delightful code generation for OpenAPI specs for Swift written in Swift.
  • NetNewsWire - It’s a free and open-source feed reader for macOS and iOS.

back to top

Passbook

  • passbook - Passbook gem let's you create pkpass for passbook iOS 6+.
  • Dubai - Generate and Preview Passbook Passes.
  • Passkit - Design, Create and validate Passbook Passes.

back to top

Payments

  • Caishen - A Payment Card UI & Validator for iOS.
  • Stripe - Payment integration on your app with PAY. Suitable for people with low knowledge on Backend.
  • Braintree - Free payment processing on your first $50k. Requires Backend.
  • Venmo Make and accept payments in your iOS app via Venmo.
  • Moltin - Add eCommerce to your app with a simple SDK, so you can create a store and sell physical products, no backend required.
  • PatronKit - A framework to add patronage to your apps.
  • SwiftyStoreKit - Lightweight In App Purchases Swift framework for iOS 8.0+ and macOS 9.0+
  • InAppFramework - In App Purchase Manager framework for iOS.
  • SwiftInAppPurchase - Simply code In App Purchases with this Swift Framework.
  • monza - Ruby Gem for Rails - Easy iTunes In-App Purchase Receipt validation, including auto-renewable subscriptions.
  • PayPal - Accept payments in your iOS app via PayPal.
  • card.io-iOS-SDK - card.io provides fast, easy credit card scanning in mobile apps.
  • SwiftLuhn - Debit/Credit card validation port of the Luhn Algorithm in Swift.
  • ObjectiveLuhn - Luhn Credit Card Validation Algorithm.
  • RMStore - A lightweight iOS library for In-App Purchases.
  • MFCard - Easily integrate Credit Card payments in iOS App / Customisable Card UI.
  • TPInAppReceipt - Reading and Validating In App Store Receipt.
  • iCard - Bank Card Generator with Swift using SnapKit DSL.
  • CreditCardForm-iOS - CreditCardForm is iOS framework that allows developers to create the UI which replicates an actual Credit Card.
  • merchantkit - A modern In-App Purchases management framework for iOS.
  • TipJarViewController - Easy, drop-in tip jar for iOS apps.
  • FramesIos - Payment Form UI and Utilities in Swift.
  • YRPayment - Better payment user experience library with cool animation in Swift.
  • AnimatedCardInput — Easy to use library with customisable components for input of Credit Card data.

back to top

Permissions

  • Proposer - Make permission request easier (Supports Camera, Photos, Microphone, Contacts, Location).
  • ISHPermissionKit - A unified way for iOS apps to request user permissions.
  • ClusterPrePermissions - Reusable pre-permissions utility that lets developers ask users for access in their own dialog, before making the system-based request.
  • Permission - A unified API to ask for permissions on iOS.
  • STLocationRequest - A simple and elegant 3D-Flyover location request screen written Swift.
  • PAPermissions - A unified API to ask for permissions on iOS.
  • AREK - AREK is a clean and easy to use wrapper over any kind of iOS permission.
  • SPPermissions - Ask permissions on Swift. Available List, Dialog & Native interface. Can check state permission.

back to top

Podcasts

back to top

Project setup

  • crafter - CLI that allows you to configure iOS project's template using custom DSL syntax, simple to use and quite powerful.
  • liftoff - Another CLI for creating iOS projects.
  • amaro - iOS Boilerplate full of delights.
  • chairs - Swap around your iOS Simulator Documents.
  • SwiftPlate - Easily generate cross platform Swift framework projects from the command line.
  • xcproj - Read and update Xcode projects.
  • Tuist - A tool to create, maintain and interact with Xcode projects at scale.
  • SwiftKit - Start your next Open-Source Swift Framework.
  • swift5-module-template - A starting point for any Swift 5 module that you want other people to include in their projects.

back to top

Prototyping

back to top

Rapid Development

  • Playgrounds - Playgrounds for Objective-C for extremely fast prototyping / learning.
  • MMBarricade - Runtime configurable local server for iOS apps.
  • STV Framework - Native visual iOS development.
  • swiftmon - swiftmon restarts your swift application in case of any file change.
  • Model2App - Turn your Swift data model into a working CRUD app.

back to top

Reactive Programming

  • RxSwift - Reactive Programming in Swift.
  • RxOptional - RxSwift extensions for Swift optionals and "Occupiable" types.
  • ReactiveTask - Flexible, stream-based abstraction for launching processes.
  • ReactiveCocoa - Streams of values over time.
  • RxMediaPicker - A reactive wrapper built around UIImagePickerController.
  • ReactiveCoreData - ReactiveCoreData (RCD) is an attempt to bring Core Data into the ReactiveCocoa (RAC) world.
  • ReSwift - Unidirectional Data Flow in Swift - Inspired by Redux.
  • ReactiveKit - ReactiveKit is a collection of Swift frameworks for reactive and functional reactive programming.
  • RxPermission - RxSwift bindings for Permissions API in iOS.
  • RxAlamofire - RxSwift wrapper around the elegant HTTP networking in Swift Alamofire.
  • RxRealm - Rx wrapper for Realm's collection types.
  • RxMultipeer - A testable RxSwift wrapper around MultipeerConnectivity.
  • RxBluetoothKit - iOS & macOS Bluetooth library for RxSwift.
  • RxGesture - RxSwift reactive wrapper for view gestures.
  • NSObject-Rx - Handy RxSwift extensions on NSObject, including rx_disposeBag.
  • RxCoreData - RxSwift extensions for Core Data.
  • RxAutomaton - RxSwift + State Machine, inspired by Redux and Elm.
  • ReactiveArray - An array class implemented in Swift that can be observed using ReactiveCocoa's Signals.
  • Interstellar - Simple and lightweight Functional Reactive Coding in Swift for the rest of us.
  • ReduxSwift - Predictable state container for Swift apps too.
  • Aftermath - Stateless message-driven micro-framework in Swift.
  • RxKeyboard - Reactive Keyboard in iOS.
  • JASONETTE-iOS - Native App over HTTP. Create your own native iOS app with nothing but JSON.
  • ReactiveSwift - Streams of values over time by ReactiveCocoa group.
  • Listenable - Swift object that provides an observable platform.
  • Reactor - Unidirectional Data Flow using idiomatic Swift—inspired by Elm and Redux.
  • Snail - An observables framework for Swift.
  • RxWebSocket - Reactive extension over Starscream for websockets.
  • ACKReactiveExtensions - Useful extensions for ReactiveCocoa
  • ReactiveLocation - CoreLocation made reactive
  • Hanson - Lightweight observations and bindings in Swift, with support for KVO and NotificationCenter.
  • Observable - The easiest way to observe values in Swift.
  • SimpleApiClient - A configurable api client based on Alamofire4 and RxSwift4 for iOS.
  • VueFlux - Unidirectional Data Flow State Management Architecture for Swift - Inspired by Vuex and Flux.
  • RxAnimated - Animated RxCocoa bindings.
  • BindKit - Two-way data binding framework for iOS. Only one API to learn.
  • STDevRxExt - STDevRxExt contains some extension functions for RxSwift and RxCocoa which makes our live easy.
  • RxReduce - Lightweight framework that ease the implementation of a state container pattern in a Reactive Programming compliant way.
  • RxCoordinator - Powerful navigation library for iOS based on the coordinator pattern.
  • RxAlamoRecord Combines the power of the AlamoRecord and RxSwift libraries to create a networking layer that makes interacting with API's easier than ever reactively.
  • CwlSignal A Swift framework for reactive programming.
  • LightweightObservable - A lightweight implementation of an observable sequence that you can subscribe to.
  • Bindy - Simple, lightweight swift bindings with KVO support and easy to read syntax.
  • OpenCombine — Open source implementation of Apple's Combine framework for processing values over time.
  • OneWay - A Swift library for state management with unidirectional data flow.
  • Verge - Verge is a faster and scalable state management library for UIKit and SwiftUI

back to top

React-Like

  • Render - Swift and UIKit a la React.
  • Katana - Swift apps a la React and Redux.
  • TemplateKit - React-inspired framework for building component-based user interfaces in Swift.
  • CoreEvents - Simple library with C#-like events.
  • Tokamak - React-like framework providing a declarative API for building native UI components with easy to use one-way data binding.

back to top

Reference

  • Swift Cheat Sheet - A quick reference cheat sheet for common, high level topics in Swift.
  • Objective-C Cheat Sheet - A quick reference cheat sheet for common, high level topics in Objective-C.
  • SwiftSnippets - A collection of Swift snippets to be used in Xcode.
  • App Store Checklist - A checklist of what to look for before submitting your app to the App Store.
  • whats-new-in-swift-4 - An Xcode playground showcasing the new features in Swift 4.0.
  • WWDC-Recap - A collection of session summaries in markdown format, from WWDC 19 & 17.
  • Awesome-ios - A curated list of awesome iOS ecosystem.

back to top

Reflection

  • Reflection - Reflection provides an API for advanced reflection at runtime including dynamic construction of types.
  • Reflect - Reflection, Dict2Model, Model2Dict, Archive.
  • EVReflection - Reflection based JSON encoding and decoding. Including support for NSDictionary, NSCoding, Printable, Hashable and Equatable.
  • JSONNeverDie - Auto reflection tool from JSON to Model, user friendly JSON encoder / decoder, aims to never die.
  • SwiftKVC - Key-Value Coding (KVC) for native Swift classes and structs.
  • Runtime - A Swift Runtime library for viewing type info, and the dynamic getting and setting of properties.

back to top

Regex

  • Regex - A Swift µframework providing an NSRegularExpression-backed Regex type.
  • SwiftRegex - Perl-like Regex =~ operator for Swift.
  • PySwiftyRegex - Easily deal with Regex in Swift in a Pythonic way.
  • Regex - Regular expressions for swift.
  • Regex - Regex class for Swift. Wraps NSRegularExpression.
  • sindresorhus/Regex - Swifty regular expressions, fully tested & documented, and with correct Unicode handling.

back to top

SDK

Official

  • Spotify Spotify iOS SDK.
  • SpotifyLogin Spotify SDK Login in Swift.
  • Facebook Facebook iOS SDK.
  • Google Analytics Google Analytics SDK for iOS.
  • Paypal iOS SDK The PayPal Mobile SDKs enable native apps to easily accept PayPal and credit card payments.
  • Pocket SDK for saving stuff to Pocket.
  • Tumblr Library for easily integrating Tumblr data into your iOS or macOS application.
  • Evernote Evernote SDK for iOS.
  • Box iOS + macOS SDK for the Box API.
  • OneDrive Live SDK for iOS.
  • Stripe Stripe bindings for iOS and macOS.
  • Venmo
  • AWS Amazon Web Services Mobile SDK for iOS.
  • Zendesk Zendesk Mobile SDK for iOS.
  • Dropbox SDKs for Drop-ins and Dropbox Core API.
  • Firebase Mobile (and web) application development platform.
  • ResearchKit ResearchKit is an open source software framework that makes it easy to create apps for medical research or for other research projects.
  • Primer - Easy SDK for creating personalized landing screens, signup, and login flows on a visual editor with built in a/b/n testing and analytics.
  • Azure - Client library for accessing Azure Storage on an iOS device.
  • 1Password - 1Password Extension for iOS Apps.
  • CareKit - CareKit is an open source software framework for creating apps that help people better understand and manage their health. By Apple.
  • Shopify - Shopify’s Mobile Buy SDK makes it simple to sell physical products inside your mobile app.
  • Pinterest - Pinterest iOS SDK.
  • playkit-ios - PlayKit: Kaltura Player SDK for iOS.
  • algoliasearch-client-swift - Algolia Search API Client for Swift.
  • twitter-kit-ios - Twitter Kit is a native SDK to include Twitter content inside mobile apps.
  • rides-ios-sdk - Uber Rides iOS SDK (beta).
  • Apphud - A complete solution to integrate auto-renewable subscriptions and regular in-app purchases in 30 minutes with no server code required.
  • Adapty - Integrate in-app subscriptions and a/b testing for them with 3 lines of code.

back to top

Unofficial

  • STTwitter A stable, mature and comprehensive Objective-C library for Twitter REST API 1.1.
  • FHSTwitterEngine Twitter API for Cocoa developers.
  • Giphy Giphy API client for iOS in Objective-C.
  • UberKit - A simple, easy-to-use Objective-C wrapper for the Uber API.
  • InstagramKit - Instagram iOS SDK.
  • DribbbleSDK - Dribbble iOS SDK.
  • objectiveflickr - ObjectiveFlickr, a Flickr API framework for Objective-C.
  • Easy Social - Twitter & Facebook Integration.
  • das-quadrat - A Swift wrapper for Foursquare API. iOS and macOS.
  • SocialLib - SocialLib handles sharing message to multiple social media.
  • PokemonKit - Pokeapi wrapper, written in Swift.
  • TJDropbox - A Dropbox v2 client library written in Objective-C
  • GitHub.swift - :octocat: Unofficial GitHub API client in Swift
  • CloudRail SI - Abstraction layer / unified API for multiple API providers. Interfaces eg for Cloud Storage (Dropbox, Google, ...), Social Networks (Facebook, Twitter, ...) and more.
  • Medium SDK - Swift - Unofficial Medium API SDK in Swift with sample project.
  • Swifter - 🐦 A Twitter framework for iOS & macOS written in Swift.
  • SlackKit - a Slack client library for iOS and macOS written in Swift.
  • RandomUserSwift - Swift Framework to Generate Random Users - An Unofficial SDK for randomuser.me.
  • PPEventRegistryAPI - Swift 3 Framework for Event Registry API (eventregistry.org).
  • UnsplashKit - Swift client for Unsplash.
  • Swiftly Salesforce - An easy-to-use framework for building iOS apps that integrate with Salesforce, using Swift and promises.
  • Spartan - An Elegant Spotify Web API Library Written in Swift for iOS and macOS.
  • BigBoard - An Elegant Financial Markets Library Written in Swift that makes requests to Yahoo Finance API's under the hood.
  • BittrexApiKit - Simple and complete Swift wrapper for Bittrex Exchange API.
  • SwiftyVK Library for easy interact with VK social network API written in Swift.
  • ARKKit - ARK Ecosystem Cryptocurrency API Framework for iOS & macOS, written purely in Swift 4.0.
  • SwiftInstagram - Swift Client for Instagram API.
  • SwiftyArk - A simple, lightweight, fully-asynchronous cryptocurrency framework for the ARK Ecosystem.
  • PerfectSlackAPIClient - A Slack API Client for the Perfect Server-Side Swift Framework.
  • Mothership - Tunes Connect Library inspired by FastLane.
  • SwiftFlyer - An API wrapper for bitFlyer that supports all providing API.
  • waterwheel.swift - The Waterwheel Swift SDK provides classes to natively connect iOS, macOS, tvOS, and watchOS applications to Drupal 7 and 8.
  • ForecastIO - A Swift library for the Forecast.io Dark Sky API.
  • JamfKit - A JSS communication framework written in Swift.

back to top

Security

  • cocoapods-keys - A key value store for storing environment and application keys.
  • simple-touch - Very simple swift wrapper for Biometric Authentication Services (Touch ID) on iOS.
  • SwiftPasscodeLock - An iOS passcode lock with TouchID authentication written in Swift.
  • Smile-Lock - A library for make a beautiful Passcode Lock View.
  • zxcvbn-ios - A realistic password strength estimator.
  • TPObfuscatedString - Simple String obfuscation using core Swift.
  • LTHPasscodeViewController - An iOS passcode lockscreen replica (from Settings), with TouchID and simple (variable length) / complex support.
  • iOS-App-Security-Class - Simple class to check if iOS app has been cracked, being debugged or enriched with custom dylib and as well detect jailbroken environment.
  • BiometricAuth - Simple framework for biometric authentication (via TouchID) in your application.
  • SAPinViewController - Simple and easy to use default iOS PIN screen. This simple library allows you to draw a fully customisable PIN screen same as the iOS default PIN view. My inspiration to create this library was form THPinViewController, however SAPinViewController is completely implemented in Swift. Also the main purpose of creating this library was to have simple, easy to use and fully customisable PIN screen.
  • TOPasscodeViewController - A modal passcode input and validation view controller for iOS.
  • BiometricAuthentication - Use Apple FaceID or TouchID authentication in your app using BiometricAuthentication.
  • KKPinCodeTextField - A customizable verification code textField for phone verification codes, passwords etc.
  • Virgil SWIFT PFS SDK - An SDK that allows developers to add the Perfect Forward Secrecy (PFS) technologies to their digital solutions to protect previously intercepted traffic from being decrypted even if the main Private Key is compromised.
  • Virgil Security Objective-C/Swift SDK - An SDK which allows developers to add full end-to-end security to their existing digital solutions to become HIPAA and GDPR compliant and more using Virgil API.
  • Vault - Safe place for your encryption keys.
  • SecurePropertyStorage - Helps you define secure storages for your properties using Swift property wrappers.

back to top

Encryption

  • AESCrypt-ObjC - A simple and opinionated AES encrypt / decrypt Objective-C class that just works.
  • IDZSwiftCommonCrypto - A wrapper for Apple's Common Crypto library written in Swift.
  • Arcane - Lightweight wrapper around CommonCrypto in Swift.
  • SwiftMD5 - A pure Swift implementation of MD5.
  • SwiftHash - Hash in Swift.
  • SweetHMAC - A tiny and easy to use Swift class to encrypt strings using HMAC algorithms.
  • SwCrypt - RSA public/private key generation, RSA, AES encryption/decryption, RSA sign/verify in Swift with CommonCrypto in iOS and macOS.
  • SwiftSSL - An Elegant crypto toolkit in Swift.
  • SwiftyRSA - RSA public/private key encryption in Swift.
  • EnigmaKit - Enigma encryption in Swift.
  • Themis - High-level crypto library, providing basic asymmetric encryption, secure messaging with forward secrecy and secure data storage, supports iOS/macOS, Android and different server side platforms.
  • Obfuscator-iOS - Secure your app by obfuscating all the hard-coded security-sensitive strings.
  • swift-sodium - Safe and easy to use crypto for iOS.
  • CryptoSwift - Crypto related functions and helpers for Swift implemented in Swift programming language.
  • SCrypto - Elegant Swift interface to access the CommonCrypto routines.
  • SipHash - Simple and secure hashing in Swift with the SipHash algorithm.
  • RNCryptor - CCCryptor (AES encryption) wrappers for iOS and Mac in Swift. -- For ObjC, see RNCryptor/RNCryptor-objc.
  • CatCrypto - An easy way for hashing and encryption.
  • SecureEnclaveCrypto - Demonstration library for using the Secure Enclave on iOS.
  • RSASwiftGenerator - Util for generation RSA keys on your client and save to keychain or cover into Data.
  • Virgil Security Objective-C/Swift Crypto Library - A high-level cryptographic library that allows to perform all necessary operations for securely storing and transferring data.
  • JOSESwift - A framework for the JOSE standards JWS, JWE, and JWK written in Swift.

back to top

Keychain

  • UICKeyChainStore - UICKeyChainStore is a simple wrapper for Keychain on iOS.
  • Valet - Securely store data in the iOS or macOS Keychain without knowing a thing about how the Keychain works.
  • Locksmith - A powerful, protocol-oriented library for working with the keychain in Swift.
  • KeychainAccess - Simple Swift wrapper for Keychain that works on iOS and macOS.
  • Keychains - Because you should care... about the security... of your shit.
  • Lockbox - Objective-C utility class for storing data securely in the key chain.
  • SAMKeychain - Simple Objective-C wrapper for the keychain that works on Mac and iOS.
  • SwiftKeychainWrapper - A simple wrapper for the iOS Keychain to allow you to use it in a similar fashion to User Defaults.
  • SwiftyKeychainKit - Keychain wrapper with the benefits of static typing and convenient syntax, support for primitive types, Codable, NSCoding.

back to top

Server

Server side projects supporting coroutines, Linux, MacOS, iOS, Apache Modules, Async calls, libuv and more.

  • Perfect - Server-side Swift. The Perfect library, application server, connectors and example apps.
  • Swifter - Tiny http server engine written in Swift programming language.
  • CocoaHTTPServer - A small, lightweight, embeddable HTTP server for macOS or iOS applications.
  • Curassow - Swift HTTP server using the pre-fork worker model.
  • Zewo - Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines.
  • Vapor - Elegant web framework for Swift that works on iOS, macOS, and Ubuntu.
  • swiftra - Sinatra-like DSL for developing web apps in Swift.
  • blackfire - A fast HTTP web server based on Node.js and Express written in Swift.
  • swift-http - HTTP Implementation for Swift on Linux and macOS.
  • Trevi - libuv base Swift web HTTP server framework.
  • Express - Swift Express is a simple, yet unopinionated web application server written in Swift.
  • Taylor - A lightweight library for writing HTTP web servers with Swift.
  • Frank - Frank is a DSL for quickly writing web applications in Swift.
  • Kitura - A Swift Web Framework and HTTP Server.
  • Swifton - A Ruby on Rails inspired Web Framework for Swift that runs on Linux and macOS.
  • Dynamo - High Performance (nearly)100% Swift Web server supporting dynamic content.
  • Redis - Pure-Swift Redis client implemented from the original protocol spec. macOS + Linux compatible.
  • NetworkObjects - Swift backend / server framework (Pure Swift, Supports Linux).
  • Noze.io - Evented I/O streams a.k.a. Node.js for Swift.
  • Lightning - A Swift Multiplatform Web and Networking Framework.
  • SwiftGD - A simple Swift wrapper for libgd.
  • Jobs - A job system for Swift backends.
  • ApacheExpress - Write Apache Modules in Swift!
  • GCDWebServer - Lightweight GCD based HTTP server for macOS & iOS (includes web based uploader & WebDAV server).
  • Embassy - Super lightweight async HTTP server library in pure Swift runs in iOS / MacOS / Linux.
  • smoke-framework - A light-weight server-side service framework written in the Swift programming language.

back to top

Style Guides

back to top

Testing

TDD / BDD

  • Kiwi - A behavior-driven development library for iOS development.
  • Specta - A light-weight TDD / BDD framework for Objective-C & Cocoa.
  • Quick - A behavior-driven development framework for Swift and Objective-C.
  • XcodeCoverage - Code coverage for Xcode projects.
  • OHHTTPStubs - Stub your network requests easily! Test your apps with fake network data and custom response time, response code and headers!
  • Dixie - Dixie is an open source Objective-C testing framework for altering object behaviours.
  • gh-unit - Test Framework for Objective-C.
  • Nimble - A Matcher Framework for Swift and Objective-C
  • Sleipnir - BDD-style framework for Swift.
  • SwiftCheck - QuickCheck for Swift.
  • Spry - A Mac and iOS Playgrounds Unit Testing library based on Nimble.
  • swift-corelibs-xctest - The XCTest Project, A Swift core library for providing unit test support.
  • PlaygroundTDD - Small library to easily run your tests directly within a Playground.

back to top

A/B Testing

  • Switchboard - Switchboard - easy and super light weight A/B testing for your mobile iPhone or android app. This mobile A/B testing framework allows you with minimal servers to run large amounts of mobile users.
  • SkyLab - Multivariate & A/B Testing for iOS and Mac.
  • MSActiveConfig - Remote configuration and A/B Testing framework for iOS.
  • ABKit - AB testing framework for iOS.

back to top

UI Testing

  • appium - Appium is an open source test automation framework for use with native and hybrid mobile apps.
  • robotframework-appiumlibrary - AppiumLibrary is an appium testing library for RobotFramework.
  • Cucumber - Behavior driver development for iOS.
  • Kif - An iOS Functional Testing Framework.
  • Subliminal - An understated approach to iOS integration testing.
  • ios-driver - Test any iOS native, hybrid, or mobile web application using Selenium / WebDriver.
  • Remote - Control your iPhone from inside Xcode for end-to-end testing.
  • LayoutTest-iOS - Write unit tests which test the layout of a view in multiple configurations.
  • EarlGrey - 🍵 iOS UI Automation Test Framework.
  • UI Testing Cheat Sheet - How do I test this with UI Testing?
  • Bluepill - Bluepill is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine.
  • Flawless App - tool for visual quality check of mobile app in a real-time. It compares initial design with the actual implementation right inside iOS simulator.
  • TouchVisualizer - Lightweight touch visualization library in Swift. A single line of code and visualize your touches!
  • UITestHelper - UITest helper library for creating readable and maintainable tests.
  • ViewInspector - Runtime inspection and unit testing of SwiftUI views
  • AutoMate - XCTest extensions for writing UI automation tests.
  • Marathon Runner - Fast, platform-independent test runner focused on performance and stability execute tests.

back to top

Other Testing

  • ETTrace - Locally measure performance of your app, without Xcode or Instruments.
  • NaughtyKeyboard - The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data. This is a keyboard to help you test your app from your iOS device.
  • Fakery - Swift fake data generator.
  • DVR - Network testing for Swift.
  • Cuckoo - First boilerplate-free mocking framework for Swift.
  • Vinyl - Network testing à la VCR in Swift.
  • Mockit - A simple mocking framework for Swift, inspired by the famous Mockito for Java.
  • Cribble - Swifty tool for visual testing iPhone and iPad apps.
  • second_curtain - Upload failing iOS snapshot tests cases to S3.
  • trainer - Convert xcodebuild plist files to JUnit reports.
  • Buildasaur - Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running in minutes.
  • Kakapo - Dynamically Mock server behaviors and responses in Swift.
  • AcceptanceMark Tool to auto-generate Xcode tests classes from Markdown tables.
  • MetovaTestKit - A collection of testing utilities to turn crashing test suites into failing test suites.
  • MirrorDiffKit - Pretty diff between any structs or classes.
  • SnappyTestCase - iOS Simulator type agnostic snapshot testing, built on top of the FBSnapshotTestCase.
  • XCTestExtensions - XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test.
  • OCMock - Mock objects for Objective-C.
  • Mockingjay - An elegant library for stubbing HTTP requests with ease in Swift.
  • PinpointKit - Let your testers and users send feedback with annotated screenshots and logs using a simple gesture.
  • iOS Snapshot Test Case — Snapshot test your UIViews and CALayers on iOS and tvOS.
  • DataFixture - Creation of data model easily, with no headache.
  • SnapshotTesting - Delightful Swift snapshot testing.
  • Mockingbird - Simplify software testing, by easily mocking any system using HTTP/HTTPS, allowing a team to test and develop against a service that is not complete, unstable or just to reproduce planned cases.

back to top

Text

  • Twitter Text Obj - An Objective-C implementation of Twitter's text processing library.
  • Nimbus - Nimbus is a toolkit for experienced iOS software designers.
  • NSStringEmojize - A category on NSString to convert Emoji Cheat Sheet codes to their equivalent Unicode characters.
  • MMMarkdown - An Objective-C static library for converting Markdown to HTML.
  • DTCoreText - Methods to allow using HTML code with CoreText.
  • DTRichTextEditor - A rich-text editor for iOS.
  • NBEmojiSearchView - A searchable emoji dropdown view.
  • Pluralize.swift - Great Swift String Pluralize Extension.
  • RichEditorView - RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing.
  • Money - Swift value types for working with money & currency.
  • PhoneNumberKit - A Swift framework for parsing, formatting and validating international phone numbers. Inspired by Google's libphonenumber.
  • YYText - Powerful text framework for iOS to display and edit rich text.
  • Format - A Swift Formatter Kit.
  • Tribute - Programmatic creation of NSAttributedString doesn't have to be a pain.
  • EmojiKit - Effortless emoji-querying in Swift.
  • Roman - Seamless Roman numeral conversion in Swift.
  • ZSSRichTextEditor - A beautiful rich text WYSIWYG editor for iOS with a syntax highlighted source view.
  • pangu.Objective-C - Paranoid text spacing in Objective-C.
  • SwiftString - A comprehensive, lightweight string extension for Swift.
  • Marklight - Markdown syntax highlighter for iOS.
  • MarkdownTextView - Rich Markdown editing control for iOS.
  • TextAttributes - An easier way to compose attributed strings.
  • Reductio - Automatic summarizer text in Swift.
  • SmarkDown - A Pure Swift implementation of the markdown mark-up language.
  • SwiftyMarkdown - Converts Markdown files and strings into NSAttributedString.
  • SZMentions - Library to help handle mentions.
  • SZMentionsSwift - Library to help handle mentions.
  • Heimdall - Heimdall is a wrapper around the Security framework for simple encryption/decryption operations.
  • NoOptionalInterpolation - Get rid of "Optional(...)" and "nil" in string interpolation. Easy pluralization.
  • Smile Emoji in Swift.
  • ISO8601 Super lightweight ISO8601 Date Formatter in Swift.
  • Translucid - Lightweight library to set an Image as text background.
  • FormatterKit - stringWithFormat: for the sophisticated hacker set.
  • BonMot - Beautiful, easy attributed strings in Swift.
  • SwiftValidators - String validation for iOS developed in Swift. Inspired by validator.js.
  • StringStylizer - Type strict builder class for NSAttributedString.
  • SwiftyAttributes - Swift extensions that make it a breeze to work with attributed strings.
  • MarkdownKit - A simple and customizable Markdown Parser for Swift.
  • CocoaMarkdown - Markdown parsing and rendering for iOS and macOS.
  • Notepad - A fully themeable markdown editor with live syntax highlighting.
  • KKStringValidator - Fast and simple string validation for iOS. With UITextField extension.
  • ISO8859 - Convert ISO8859 1-16 Encoded Text to String in Swift. Supports iOS, tvOS, watchOS and macOS.
  • Emojica - Replace standard emoji in strings with a custom emoji set, such as Twemoji or EmojiOne.
  • SwiftRichString - Elegant & Painless Attributed Strings Management Library in Swift.
  • libPhoneNumber-iOS - iOS port from libphonenumber (Google's phone number handling library).
  • AttributedTextView - Easiest way to create an attributed UITextView with support for multiple links (including hashtags and mentions).
  • StyleDecorator - Design string simply by linking attributes to needed parts.
  • Mustard - Mustard is a Swift library for tokenizing strings when splitting by whitespace doesn't cut it.
  • Input Mask - Pattern-based user input formatter, parser and validator for iOS.
  • Attributed - Modern Swift µframework for attributed strings.
  • Atributika - Easily build NSAttributedString by detecting and styling HTML-like tags, hashtags, mentions, RegExp or NSDataDetector patterns.
  • Guitar - A Cross-Platform String Library Written in Swift.
  • RealTimeCurrencyFormatter - An ObjC international currency formatting utility.
  • Down - Blazing fast Markdown rendering in Swift, built upon cmark.
  • Marky Mark - Highly customizable Markdown parsing and native rendering in Swift.
  • MarkdownView - Markdown View for iOS.
  • Highlighter - Highlight whatever you want! Highlighter will magically find UI objects such as UILabel, UITextView, UITexTfield, UIButton in your UITableViewCell or other Class.
  • Sprinter - A library for formatting strings on iOS and macOS.
  • Highlightr - An iOS & macOS syntax highlighter, supports 176 languages and comes with 79 styles.
  • fuse-swift - A lightweight fuzzy-search library, with zero dependencies.
  • EFMarkdown - A lightweight Markdown library for iOS.
  • Croc - A lightweight Swift library for Emoji parsing and querying.
  • PostalCodeValidator - A validator for postal codes with support for 200+ regions.
  • CodeMirror Swift - A lightweight wrapper of CodeMirror for macOS and iOS. Support Syntax Highlighting & Themes.
  • TwitterTextEditor - A standalone, flexible API that provides a full featured rich text editor for iOS applications.
  • AztecEditor-iOS - Aztec is a Swift library that provides a UITextView subclass with HTML visual-editing capabilities. The plugin API supports customization HTML conversion from/to HTML for compatibility with your needs.

back to top

Font

  • FontBlaster - Programmatically load custom fonts into your iOS app.
  • GoogleMaterialIconFont - Google Material Design Icons for Swift and ObjC project.
  • ios-fontawesome - NSString+FontAwesome.
  • FontAwesome.swift - Use FontAwesome in your Swift projects.
  • SwiftFontName - OS font complements library. Localized font supported.
  • SwiftIconFont - Icons fonts for iOS (FontAwesome, Iconic, Ionicon, Octicon, Themify, MapIcon, MaterialIcon).
  • FontAwesomeKit - Icon font library for iOS. Currently supports Font-Awesome, Foundation icons, Zocial, and ionicons.
  • Iconic - Auto-generated icon font library for iOS, watchOS and tvOS.
  • GoogleMaterialDesignIcons - Google Material Design Icons Font for iOS.
  • OcticonsKit - Use Octicons as UIImage / UIFont in your projects with Swifty manners.
  • IoniconsKit - Use Ionicons as UIImage / UIFont in your projects with Swifty manners.
  • FontAwesomeKit.Swift - A better choice for iOS Developer to use FontAwesome Icon.
  • UIFontComplete - Font management (System & Custom) for iOS and tvOS.
  • Swicon - Use 1600+ icons (and more!) from FontAwesome and Google Material Icons in your swift/iOS project in an easy and space-efficient way!
  • SwiftIcons - A library for using different font icons: dripicons, emoji, font awesome, icofont, ionicons, linear icons, map icons, material icons, open iconic, state, weather. It supports UIImage, UIImageView, UILabel, UIButton, UISegmentedControl, UITabBarItem, UISlider, UIBarButtonItem, UIViewController, UITextfield, UIStepper.
  • Font-Awesome-Swift - Font Awesome swift library for iOS.
  • JQSwiftIcon - Icon Fonts on iOS using string interpolation written in Swift.
  • Money - A precise, type-safe representation of a monetary amount in a given currency.

back to top

UI

  • Motif - A lightweight and customizable JSON stylesheet framework for iOS.
  • Texture - Smooth asynchronous user interfaces for iOS apps.
  • GaugeKit - Customizable gauges. Easy reproduce Apple's style gauges.
  • iCarousel - A simple, highly customisable, data-driven 3D carousel for iOS and Mac OS.
  • HorizontalDial - A horizontal scroll dial like Instagram.
  • ComponentKit - A React-Inspired View Framework for iOS, by Facebook.
  • RKNotificationHub - Make any UIView a full fledged notification center.
  • phone-number-picker - A simple and easy to use view controller enabling you to enter a phone number with a country code similar to WhatsApp written in Swift.
  • BEMCheckBox - Tasteful Checkbox for iOS.
  • MPParallaxView - Apple TV Parallax effect in Swift.
  • Splitflap - A simple split-flap display for your Swift applications.
  • EZSwipeController - UIPageViewController like Snapchat/Tinder/iOS Main Pages.
  • Curry - Curry is a framework built to enhance and compliment Foundation and UIKit.
  • Pages - UIPageViewController made simple.
  • BAFluidView - UIView that simulates a 2D view of a fluid in motion.
  • WZDraggableSwitchHeaderView - Showing status for switching between viewControllers.
  • SCTrelloNavigation - An iOS native implementation of a Trello Animated Navagation.
  • Spots - Spots is a view controller framework that makes your setup and future development blazingly fast.
  • AZExpandableIconListView - An expandable/collapsible view component written in Swift.
  • FlourishUI - A highly configurable and out-of-the-box-pretty UI library.
  • Navigation Stack - Navigation Stack is a stack-modeled navigation controller.
  • UIView-draggable - UIView category that adds dragging capabilities.
  • EPSignature - Signature component for iOS in Swift.
  • EVFaceTracker - Calculate the distance and angle of your device with regards to your face.
  • LeeGo - Declarative, configurable & highly reusable UI development as making Lego bricks.
  • MEVHorizontalContacts - An iOS UICollectionViewLayout subclass to show a list of contacts with configurable expandable menu items.
  • VisualEffectView - UIVisualEffectView subclass with tint color.
  • Cacao - Pure Swift Cross-platform UIKit (Cocoa Touch) implementation (Supports Linux).
  • JDFlipNumberView - Representing analog flip numbers like airport/trainstation displays.
  • DCKit - Set of iOS controls, which have useful IBInspectable properties. Written on Swift.
  • BackgroundVideoiOS - A swift and objective-C object that lets you add a background video to iOS views.
  • NightNight - Elegant way to integrate night mode to swift projects.
  • SwiftTheme - Powerful theme/skin manager for iOS.
  • FDStackView - Use UIStackView directly in iOS.
  • RedBeard - It's a complete framework that takes away much of the pain of getting a beautiful, powerful iOS App crafted.
  • Material - Material is an animation and graphics framework that allows developers to easily create beautiful applications.
  • DistancePicker - Custom control to select a distance with a pan gesture, written in Swift.
  • OAStackView - OAStackView tries to port back the stackview to iOS 7+. OAStackView aims at replicating all the features in UIStackView.
  • PageController - Infinite paging controller, scrolling through contents and title bar scrolls with a delay.
  • StatusProvider - Protocol to handle initial Loadings, Empty Views and Error Handling in a ViewController & views.
  • StackLayout - An alternative to UIStackView for common Auto Layout patterns.
  • NightView - Dazzling Nights on iOS.
  • SwiftVideoBackground - Easy to Use UIView subclass for implementing a video background.
  • ConfettiView - Confetti View lets you create a magnificent confetti view in your app.
  • BouncyPageViewController - Page view controller with bounce effect.
  • LTHRadioButton - A radio button with a pretty fill animation.
  • Macaw-Examples - Various usages of the Macaw library.
  • Reactions - Fully customizable Facebook reactions control.
  • Newly - Newly is a drop in solution to add Twitter/Facebook/Linkedin-style new updates/tweets/posts available button.
  • CardStackController - iOS custom controller used in Jobandtalent app to present new view controllers as cards.
  • Material Components - Google developed UI components that help developers execute Material Design.
  • FAQView - An easy to use FAQ view for iOS written in Swift.
  • LMArticleViewController - UIViewController subclass to beautifully present news articles and blog posts.
  • FSPagerView - FSPagerView is an elegant Screen Slide Library. It is extremely helpful for making Banner、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.
  • ElongationPreview - ElongationPreview is an elegant push-pop style view controller with 3D-Touch support and gestures.
  • Pageboy - A simple, highly informative page view controller.
  • IGColorPicker - A customizable color picker for iOS in Swift.
  • KPActionSheet - A replacement of default action sheet, but has very simple usage.
  • SegmentedProgressBar - Snapchat / Instagram Stories style animated indicator.
  • Magnetic - SpriteKit Floating Bubble Picker (inspired by Apple Music).
  • AmazingBubbles - Apple Music like Bubble Picker using Dynamic Animation.
  • Haptica - Easy Haptic Feedback Generator.
  • GDCheckbox - An easy to use custom checkbox/radio button component for iOS, with support of IBDesign Inspector.
  • HamsterUIKit - A simple and elegant UIKit(Chart) for iOS.
  • AZEmptyState - A UIControl subclass that makes it easy to create empty states.
  • URWeatherView - Show the weather effects onto view.
  • LCUIComponents - A framework supports creating transient views on top of other content onscreen such as popover with a data list.
  • ViewComposer - let lbl: UILabel = [.text("Hello"), .textColor(.red)] - Create views using array literal of enum expressing view attributes.
  • BatteryView - Simple battery shaped UIView.
  • ShadowView - Make shadows management easy on UIView.
  • Pulley - A library to imitate the iOS 10 Maps UI.
  • N8iveKit - A set of frameworks making iOS development more fun.
  • Panda - Create view hierarchies declaratively.
  • NotchKit - A simple way to hide the notch on the iPhone X
  • Overlay - Overlay is a flexible UI framework designed for Swift. It allows you to write CSS like Swift code.
  • SwiftyUI - High performance and lightweight(one class each UI) UIView, UIImage, UIImageView, UIlabel, UIButton, Promise and more.
  • NotchToolkit - A framework for iOS that allow developers use the iPhone X notch in creative ways.
  • PullUpController - Pull up controller with multiple sticky points like in iOS Maps.
  • DrawerKit - DrawerKit lets an UIViewController modally present another UIViewController in a manner similar to the way Apple's Maps app works.
  • Shades - Easily add drop shadows, borders, and round corners to a UIView.
  • ISPageControl - A page control similar to that used in Instagram.
  • Mixin - React.js like Mixin. More powerful Protocol-Oriented Programming.
  • Shiny - Iridescent Effect View (inspired by Apple Pay Cash).
  • StackViewController - A controller that uses a UIStackView and view controller composition to display content in a list.
  • UberSignature - Provides an iOS view controller allowing a user to draw their signature with their finger in a realistic style.
  • SwViewCapture - A nice iOS View Capture Swift Library which can capture all content.
  • HGRippleRadarView - A beautiful radar view to show nearby items (users, restaurants, ...) with ripple animation, fully customizable.
  • GDGauge - Full Customizable, Beautiful, Easy to use gauge view Edit.
  • STAControls - Handy UIControl subclasses. (Think Three20/NimbusKit of UIControls.) Written in Objective-C.
  • ApplyStyleKit - Elegant apply style, using Swift Method Chain.
  • OverlayContainer - A library to develop overlay based interfaces, such as the one presented in the iOS 12 Apple Maps or Stocks apps.
  • ClassicKit - A collection of classic-style UI components for iOS.
  • Sejima - A collection of User Interface components for iOS.
  • UI Fabric by Microsoft - UI framework based on Fluent Design System by Microsoft.
  • Popovers - A library to present popovers. Simple, modern, and highly customizable. Not boring!

back to top

Activity Indicator

  • NVActivityIndicatorView - Collection of nice loading animations.
  • RPLoadingAnimation - Loading animations by using Swift CALayer.
  • LiquidLoader - Spinner loader components with liquid animation.
  • iOS-CircleProgressView - This control will allow a user to use code instantiated or interface builder to create and render a circle progress view.
  • iOS Circle Progress Bar - iOS Circle Progress Bar.
  • LinearProgressBar - Linear Progress Bar (inspired by Google Material Design) for iOS.
  • STLoadingGroup - loading views.
  • ALThreeCircleSpinner - A pulsing spinner view written in swift.
  • MHRadialProgressView - iOS radial animated progress view.
  • Loader - Amazing animated switch activity indicator written in swift.
  • MBProgressHUD - Drop-in class for displays a translucent HUD with an indicator and/or labels while work is being done in a background thread.
  • SVProgressHUD - A clean and lightweight progress HUD for your iOS app.
  • ProgressHUD - ProgressHUD is a lightweight and easy-to-use HUD.
  • M13ProgressSuite - A suite containing many tools to display progress information on iOS.
  • PKHUD - A Swift based reimplementation of the Apple HUD (Volume, Ringer, Rotation,…) for iOS 8 and above.
  • EZLoadingActivity - Lightweight loading activity HUD.
  • FFCircularProgressView - FFCircularProgressView - An iOS 7-inspired blue circular progress view.
  • MRProgress - Collection of iOS drop-in components to visualize progress.
  • BigBrother - Automatically sets the network activity indicator for any performed request.
  • AlamofireNetworkActivityIndicator - Controls the visibility of the network activity indicator on iOS using Alamofire.
  • KDCircularProgress - A circular progress view with gradients written in Swift.
  • DACircularProgress - DACircularProgress is a UIView subclass with circular UIProgressView properties.
  • KYNavigationProgress - Simple extension of UINavigationController to display progress on the UINavigationBar.
  • GearRefreshControl - A custom animation for the UIRefreshControl.
  • NJKWebViewProgress - A progress interface library for UIWebView. You can implement progress bar for your in-app browser using this module.
  • MKRingProgressView - A beautiful ring/circular progress view similar to Activity app on Apple Watch, written in Swift.
  • Hexacon - A new way to display content in your app like the Apple Watch SpringBoard, written in Swift.
  • ParticlesLoadingView - A customizable SpriteKit particles animation on the border of a view.
  • RPCircularProgress - (Swift) Circular progress UIView subclass with UIProgressView properties.
  • MBCircularProgressBar - A circular, animatable & highly customizable progress bar, editable from the Interface Builder using IBDesignable.
  • WSProgressHUD - This is a beautiful hud view for iPhone & iPad.
  • DBMetaballLoading - A metaball loading written in Swift.
  • FillableLoaders - Completely customizable progress based loaders drawn using custom CGPaths written in Swift.
  • VHUD Simple HUD.
  • SwiftSpinner - A beautiful activity indicator and modal alert written in Swift using blur effects, translucency, flat and bold design.
  • SnapTimer - Implementation of Snapchat's stories timer.
  • LLSpinner - An easy way to create a full screen activity indicator.
  • SVUploader - A beautiful uploader progress view that makes things simple and easy.
  • YLProgressBar - UIProgressView replacement with an highly and fully customizable animated progress bar in pure Core Graphics.
  • FlexibleSteppedProgressBar - A beautiful easily customisable stepped progress bar.
  • GradientLoadingBar - An animated gradient loading bar.
  • DSGradientProgressView - A simple and customizable animated progress bar written in Swift.
  • GradientProgressBar - A gradient progress bar (UIProgressView).
  • BPCircleActivityIndicator - A lightweight and awesome Loading Activity Indicator for your iOS app.
  • DottedProgressBar - Simple and customizable animated progress bar with dots for iOS.
  • RSLoadingView - Awesome loading animations using 3D engine written with Swift.
  • SendIndicator - Yet another task indicator.
  • StepProgressView - Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView.
  • BPBlockActivityIndicator - A simple and awesome Loading Activity Indicator(with funny block animation) for your iOS app.
  • JDBreaksLoading - You can easily start up a little breaking game indicator by one line.
  • SkeletonView - An elegant way to show users that something is happening and also prepare them to which contents he is waiting.
  • Windless - Windless makes it easy to implement invisible layout loading view.
  • Skeleton - An easy way to create sliding CAGradientLayer animations! Works great for creating skeleton screens for loading content.
  • StatusBarOverlay - Automatically show/hide a "No Internet Connection" bar when your app loses/gains connection. It supports apps which hide the status bar and "The Notch".
  • RetroProgress - Retro looking progress bar straight from the 90s.
  • LinearProgressBar - Material Linear Progress Bar for your iOS apps.
  • MKProgress - A lightweight ProgressHUD written in Swift. Looks similar to /MBProgressHUD/SVProgressHUD/KVNProgressHUD.
  • RHPlaceholder - Simple library which give you possibility to add Facebook like loading state for your views.
  • IHProgressHUD - Simple HUD, thread safe, supports iOS, tvOS and App Extensions.
  • ActivityIndicatorView - A number of preset loading indicators created with SwiftUI.
  • ProgressIndicatorView - A number of preset progress indicators created with SwiftUI.

back to top

Animation

  • Pop - An extensible iOS and macOS animation library, useful for physics-based interactions.
  • AnimationEngine - Easily build advanced custom animations on iOS.
  • RZTransitions - A library of custom iOS View Controller Animations and Interactions.
  • DCAnimationKit - A collection of animations for iOS. Simple, just add water animations.
  • Spring - A library to simplify iOS animations in Swift.
  • Fluent - Swift animation made easy.
  • Cheetah - Easy animation library on iOS.
  • Pop By Example - A project tutorial in how to use Pop animation framework by example.
  • AppAnimations - Collection of iOS animations to inspire your next project.
  • EasyAnimation - A Swift library to take the power of UIView.animateWithDuration() to a whole new level - layers, springs, chain-able animations, and mixing view/layer animations together.
  • Animo - SpriteKit-like animation builders for CALayers.
  • CurryFire - A framework for creating unique animations.
  • IBAnimatable - Design and prototype UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.
  • CKWaveCollectionViewTransition - Cool wave like transition between two or more UICollectionView.
  • DaisyChain - Easy animation chaining.
  • PulsingHalo - iOS Component for creating a pulsing animation.
  • DKChainableAnimationKit - Chainable animations in Swift.
  • JDAnimationKit - Animate easy and with less code with Swift.
  • Advance - A powerful animation framework for iOS.
  • UIView-Shake - UIView category that adds shake animation.
  • Walker - A new animation engine for your app.
  • Morgan - An animation set for your app.
  • MagicMove - Keynote-style Magic Move transition animations.
  • Shimmer - An easy way to add a simple, shimmering effect to any view in an iOS app.
  • SAConfettiView - Confetti! Who doesn't like confetti?
  • CCMRadarView - CCMRadarView uses the IBDesignable tools to make an easy customizable radar view with animation.
  • Pulsator - Pulse animation for iOS.
  • Interpolate - Swift interpolation for gesture-driven animations.
  • ADPuzzleAnimation - Custom animation for UIView inspired by Fabric - Answers animation.
  • Wave - 🌊 Declarative chainable animations in Swift.
  • Stellar - A fantastic Physical animation library for swift.
  • MotionMachine - A powerful, elegant, and modular animation library for Swift.
  • JRMFloatingAnimation - An Objective-C animation library used to create floating image views.
  • AHKBendableView - UIView subclass that bends its edges when its position changes.
  • FlightAnimator - Advanced Natural Motion Animations, Simple Blocks Based Syntax.
  • ZoomTransitioning - A custom transition with image zooming animation.
  • Ubergang - A tweening engine for iOS written in Swift.
  • JHChainableAnimations - Easy to read and write chainable animations in Objective-C.
  • Popsicle - Delightful, extensible Swift value interpolation framework.
  • WXWaveView - Add a pretty water wave to your view.
  • Twinkle - Swift and easy way to make elements in your iOS and tvOS app twinkle.
  • MotionBlur - MotionBlur allows you to add motion blur effect to iOS animations.
  • RippleEffectView - RippleEffectView - A Neat Rippling View Effect.
  • SwiftyAnimate - Composable animations in Swift.
  • SamuraiTransition - Swift based library providing a collection of ViewController transitions featuring a number of neat “cutting” animations.
  • Lottie - An iOS library for a real time rendering of native vector animations from Adobe After Effects.
  • anim - An animation library for iOS with custom easings and easy to follow API.
  • AnimatedCollectionViewLayout - A UICollectionViewLayout subclass that adds custom transitions/animations to the UICollectionView.
  • Dance - A radical & elegant animation library built for iOS.
  • AKVideoImageView - UIImageView subclass which allows you to display a looped video as a background.
  • Spruce iOS Animation Library - Swift library for choreographing animations on the screen.
  • CircularRevealKit - UI framework that implements the material design's reveal effect.
  • TweenKit - Animation library for iOS in Swift.
  • Water - Simple calculation to render cheap water effects.
  • Pastel - Gradient animation effect like Instagram.
  • YapAnimator - Your fast and friendly physics-based animation system.
  • Bubble - Fruit Animation.
  • Gemini - Gemini is rich scroll based animation framework for iOS, written in Swift.
  • WaterDrops - Simple water drops animation for iOS in Swift.
  • ViewAnimator - ViewAnimator brings your UI to life with just one line.
  • Ease - Animate everything with Ease.
  • Kinieta - An Animation Engine with Custom Bezier Easing, an Intuitive API and perfect Color Intepolation.
  • LSAnimator - Easy to Read and Write Multi-chain Animations Kit in Objective-C and Swift.
  • YetAnotherAnimationLibrary - Designed for gesture-driven animations. Fast, simple, & extensible!
  • Anima - Anima is chainable Layer-Based Animation library for Swift4.
  • MotionAnimation - Lightweight animation library for UIKit.
  • AGInterfaceInteraction - library performs interaction with UI interface.
  • PMTween - An elegant and flexible tweening library for iOS.
  • VariousViewsEffects - Animates views nicely with easy to use extensions.
  • TheAnimation - Type-safe CAAnimation wrapper. It makes preventing to set wrong type values.
  • Poi - Poi makes you use card UI like tinder UI .You can use it like tableview method.
  • Sica - Simple Interface Core Animation. Run type-safe animation sequencially or parallelly.
  • fireworks - Fireworks effect for UIView
  • Disintegrate - Disintegration animation inspired by THAT thing Thanos did at the end of Avengers: Infinity War.
  • Wobbly - Wobbly is a Library of predefined, easy to use iOS animations.
  • LoadingShimmer - An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
  • SPPerspective - Widgets iOS 14 animation with 3D and dynamic shadow. Customisable transform and duration.

back to top

Transition

  • BlurryModalSegue - A custom modal segue for providing a blurred overlay effect.
  • DAExpandAnimation - A custom modal transition that presents a controller with an expanding effect while sliding out the presenter remnants.
  • BubbleTransition - A custom modal transition that presents and dismiss a controller with an expanding bubble effect.
  • RPModalGestureTransition - You can dismiss modal by using gesture.
  • RMPZoomTransitionAnimator - A custom zooming transition animation for UIViewController.
  • ElasticTransition - A UIKit custom transition that simulates an elastic drag. Written in Swift.
  • ElasticTransition-ObjC - A UIKit custom transition that simulates an elastic drag.This is the Objective-C Version of Elastic Transition written in Swift by lkzhao.
  • ZFDragableModalTransition - Custom animation transition for present modal view controller.
  • ZOZolaZoomTransition - Zoom transition that animates the entire view hierarchy. Used extensively in the Zola iOS application.
  • JTMaterialTransition - An iOS transition for controllers based on material design.
  • AnimatedTransitionGallery - Collection of iOS 7 custom animated transitions using UIViewControllerAnimatedTransitioning protocol.
  • TransitionTreasury - Easier way to push your viewController.
  • Presenter - Screen transition with safe and clean code.
  • Kaeru - Switch viewcontroller like iOS task manager.
  • View2ViewTransition - Custom interactive view controller transition from one view to another view.
  • AZTransitions - API to make great custom transitions in one method.
  • Hero - Elegant transition library for iOS & tvOS.
  • Motion - Seamless animations and transitions in Swift.
  • PresenterKit - Swifty view controller presentation for iOS.
  • Transition - Easy interactive interruptible custom ViewController transitions.
  • Gagat - A delightful way to transition between visual styles in your iOS applications.
  • DeckTransition - A library to recreate the iOS Apple Music now playing transition.
  • TransitionableTab - TransitionableTab makes it easy to animate when switching between tab.
  • AlertTransition - AlertTransition is a extensible library for making view controller transitions, especially for alert transitions.
  • SemiModalViewController - Present view / view controller as bottom-half modal.
  • ImageTransition - ImageTransition is a library for smooth animation of images during transitions.
  • LiquidTransition - removes boilerplate code to perform transition, allows backward animations, custom properties animation and much more!
  • SPStorkController - Very similar to the controllers displayed in Apple Music, Podcasts and Mail Apple's applications.
  • AppstoreTransition - Simulates the appstore card animation transition.
  • DropdownTransition - Simple and elegant Dropdown Transition for presenting controllers from top to bottom.
  • NavigationTransitions - Pure SwiftUI Navigation transitions.
  • LiquidSwipe - Liquid navigation animation
  • TBIconTransitionKit - Easy to use icon transition kit that allows to smoothly change from one shape to another.

back to top

Alert & Action Sheet

  • SweetAlert - Live animated Alert View for iOS written in Swift.
  • NYAlertViewController - Highly configurable iOS Alert Views with custom content views.
  • SCLAlertView-Swift - Beautiful animated Alert View, written in Swift.
  • TTGSnackbar - Show simple message and action button on the bottom of the screen with multi kinds of animation.
  • Swift-Prompts - A Swift library to design custom prompts with a great scope of options to choose from.
  • BRYXBanner - A lightweight dropdown notification for iOS 7+, in Swift.
  • LNRSimpleNotifications - Simple Swift in-app notifications. LNRSimpleNotifications is a simplified Swift port of TSMessages.
  • HDNotificationView - Emulates the native Notification Banner UI for any alert.
  • JDStatusBarNotification - Easy, customizable notifications displayed on top of the statusbar.
  • Notie - In-app notification in Swift, with customizable buttons and input text field.
  • EZAlertController - Easy Swift UIAlertController.
  • GSMessages - A simple style messages/notifications for iOS 7+.
  • OEANotification - In-app customizable notification views on top of screen for iOS which is written in Swift 2.1.
  • RKDropdownAlert - Extremely simple UIAlertView alternative.
  • TKSwarmAlert - Animated alert library like Swarm app.
  • SimpleAlert - Customizable simple Alert and simple ActionSheet for Swift.
  • Hokusai - A Swift library to provide a bouncy action sheet.
  • SwiftNotice - SwiftNotice is a GUI library for displaying various popups (HUD) written in pure Swift, fits any scrollview.
  • SwiftOverlays - SwiftOverlays is a Swift GUI library for displaying various popups and notifications.
  • SwiftyDrop - SwiftyDrop is a lightweight pure Swift simple and beautiful dropdown message.
  • LKAlertController - An easy to use UIAlertController builder for swift.
  • DOAlertController - Simple Alert View written in Swift, which can be used as a UIAlertController. (AlertController/AlertView/ActionSheet).
  • CustomizableActionSheet - Action sheet allows including your custom views and buttons.
  • Toast-Swift - A Swift extension that adds toast notifications to the UIView object class.
  • PMAlertController - PMAlertController is a great and customizable substitute to UIAlertController.
  • PopupViewController - UIAlertController drop in replacement with much more customization.
  • AlertViewLoveNotification - A simple and attractive AlertView to ask permission to your users for Push Notification.
  • CRToast - A modern iOS toast view that can fit your notification needs.
  • JLToast - Toast for iOS with very simple interface.
  • CuckooAlert - Multiple use of presentViewController for UIAlertController.
  • KRAlertController - A colored alert view for your iOS.
  • Dodo - A message bar for iOS written in Swift.
  • MaterialActionSheetController - A Google like action sheet for iOS written in Swift.
  • SwiftMessages - A very flexible message bar for iOS written in Swift.
  • FCAlertView - A Flat Customizable AlertView for iOS. (Swift).
  • FCAlertView - A Flat Customizable AlertView for iOS. (Objective-C).
  • CDAlertView - Highly customizable alert/notification/success/error/alarm popup.
  • RMActionController - Present any UIView in an UIAlertController like manner.
  • RMDateSelectionViewController - Select a date using UIDatePicker in a UIAlertController like fashion.
  • RMPickerViewController - Select something using UIPickerView in a UIAlertController like fashion.
  • Jelly - Jelly provides custom view controller transitions with just a few lines of code.
  • Malert - Malert is a simple, easy and custom iOS UIAlertView written in Swift.
  • RAlertView - AlertView, iOS popup window, A pop-up framework, Can be simple and convenient to join your project.
  • NoticeBar - A simple NoticeBar written by Swift 3, similar with QQ notice view.
  • LIHAlert - Advance animated banner alerts for iOS.
  • BPStatusBarAlert - A simple alerts that appear on the status bar and below navigation bar(like Facebook).
  • CFAlertViewController - A library that helps you display and customise alerts and action sheets on iPad and iPhone.
  • NotificationBanner - The easiest way to display highly customizable in app notification banners in iOS.
  • Alertift - Swifty, modern UIAlertController wrapper.
  • PCLBlurEffectAlert - Swift AlertController with UIVisualEffectView.
  • JDropDownAlert - Multi dirction dropdown alert view.
  • BulletinBoard - Generate and Display Bottom Card Interfaces on iOS
  • CFNotify - A customizable framework to create draggable views.
  • StatusAlert - Display Apple system-like self-hiding status alerts without interrupting user flow.
  • Alerts & Pickers - Advanced usage of native UIAlertController with TextField, DatePicker, PickerView, TableView and CollectionView.
  • RMessage - A crisp in-app notification/message banner built in ObjC.
  • InAppNotify - Swift library to manage in-app notification in swift language, like WhatsApp, Telegram, Frind, etc.
  • FloatingActionSheetController - FloatingActionSheetController is a cool design ActionSheetController library written in Swift.
  • TOActionSheet - A custom-designed reimplementation of the UIActionSheet control for iOS
  • XLActionController - Fully customizable and extensible action sheet controller written in Swift.
  • PopMenu - A cool and customizable popup style action sheet 😎
  • NotchyAlert - Use the iPhone X notch space to display creative alerts.
  • Sheet - SHEET helps you easily create a wide variety of action sheets with navigation features used in the Flipboard App
  • ALRT - An easier constructor for UIAlertController. Present an alert from anywhere.
  • CatAlertController - Use UIAlertController like a boss.
  • Loaf - A simple framework for easy iOS Toasts.
  • SPAlert - Native popup from Apple Music & Feedback in AppStore. Contains Done & Heart presets.
  • CleanyModal - Use nice customized alerts and action sheets with ease, API is similar to native UIAlertController.
  • BottomSheet - Powerful Bottom Sheet component with content based size, interactive dismissal and navigation controller support.
  • LCActionSheet - A simple ActionSheet. WeChat, Weibo and QQ all use similar styles. Fully support Swift.

back to top

Badge

  • MIBadgeButton - Notification badge for UIButtons.
  • EasyNotificationBadge - UIView extension that adds a notification badge. [e]
  • swift-badge - Badge view for iOS written in swift
  • BadgeHub - Make any UIView a full fledged animated notification center. It is a way to quickly add a notification badge icon to a UIView.

back to top

Button

  • SSBouncyButton - iOS7-style bouncy button UI component.
  • DOFavoriteButton - Cute Animated Button written in Swift.
  • VBFPopFlatButton - Flat button with 9 different states animated using Facebook POP.
  • HTPressableButton - Flat design pressable button.
  • LiquidFloatingActionButton - Material Design Floating Action Button in liquid state
  • JTFadingInfoView - An UIButton-based view with fade in/out animation features.
  • Floaty - ❤️ Floating Action Button for iOS
  • TVButton - Recreating the cool parallax icons from Apple TV as iOS UIButtons (in Swift).
  • SwiftyButton - Simple and customizable button in Swift
  • AnimatablePlayButton - Animated Play and Pause Button using CALayer, CAKeyframeAnimation.
  • gbkui-button-progress-view - Inspired by Apple’s download progress buttons in the App Store.
  • ZFRippleButton - Custom UIButton effect inspired by Google Material Design
  • JOEmojiableBtn - Emoji selector like Facebook Reactions.
  • EMEmojiableBtn - Option selector that works similar to Reactions by fb. Objective-c version.
  • WYMaterialButton - Interactive and fully animated Material Design button for iOS developers.
  • DynamicButton - Yet another animated flat buttons in Swift
  • OnOffButton - Custom On/Off Animated UIButton, written in Swift. By Creativedash
  • WCLShineButton - This is a UI lib for iOS. Effects like shining.
  • EasySocialButton - An easy way to create beautiful social authentication buttons.
  • NFDownloadButton - Revamped Download Button.
  • LGButton - A fully customisable subclass of the native UIControl which allows you to create beautiful buttons without writing any line of code.
  • MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (Like the camera flash and timer buttons).
  • PMSuperButton - A powerful UIButton with super powers, customizable from Storyboard!
  • JSButton - A fully customisable swift subclass on UIButton which allows you to create beautiful buttons without writing any line of code.
  • TransitionButton - UIButton sublass for loading and transition animation
  • ButtonProgressBar-iOS - A small and flexible UIButton subclass with animated loading progress, and completion animation.
  • SpicyButton - Full-featured IBDesignable UIButton class
  • DesignableButton - UIButton subclass with centralised and reusable styles. View styles and customise in InterfaceBuilder in real time!
  • BEMCheckBox - Tasteful Checkbox for iOS. (Check box)
  • ExpandableButton - Customizable and easy to use expandable button in Swift.
  • TORoundedButton - A high-performance button control with rounded corners.
  • FloatingButton - Easily customizable floating button menu created with SwiftUI.

back to top

Calendar

  • CVCalendar - A custom visual calendar for iOS 8+ written in Swift (2.0).
  • RSDayFlow - iOS 7+ Calendar with Infinite Scrolling.
  • NWCalendarView - An availability calendar implementation for iOS
  • GLCalendarView - A fully customizable calendar view acting as a date range picker
  • JTCalendar - A customizable calendar view for iOS.
  • JTAppleCalendar - The Unofficial Swift Apple Calendar Library. View. Control. for iOS & tvOS
  • Daysquare - An elegant calendar control for iOS.
  • ASCalendar - A calendar control for iOS written in swift with mvvm pattern
  • Calendar - A set of views and controllers for displaying and scheduling events on iOS
  • Koyomi - Simple customizable calendar component in Swift
  • DateTimePicker - A nicer iOS UI component for picking date and time
  • RCalendarPicker - RCalendarPicker A date picker control.
  • CalendarKit - Fully customizable calendar day view.
  • GDPersianCalendar - Customizable and easy to use Persian Calendar component.
  • MBCalendarKit - A calendar framework for iOS built with customization, and localization in mind.
  • PTEventView - An Event View based on Apple's Event Detail View within Calender.Supports ARC, Autolayout and editing via StoryBoard.
  • KDCalendarView - A calendar component for iOS written in Swift 4.0. It features both vertical and horizontal layout (and scrolling) and the display of native calendar events.
  • CalendarPopUp - CalendarPopUp - JTAppleCalendar library.
  • ios_calendar - It's lightweight and simple control with supporting Locale and CalendarIdentifier. There're samples for iPhone and iPad, and also with using a popover. With supporting Persian calendar
  • FSCalendar - A fully customizable iOS calendar library, compatible with Objective-C and Swift.
  • ElegantCalendar - The elegant full-screen calendar missed in SwiftUI.

back to top

Cards

Card based UI's, pan gestures, flip and swipe animations

  • MDCSwipeToChoose - Swipe to "like" or "dislike" any view, just like Tinder.app. Build a flashcard app, a photo viewer, and more, in minutes, not hours!
  • TisprCardStack - Library that allows to have cards UI.
  • CardAnimation - Card flip animation by pan gesture.
  • Koloda - KolodaView is a class designed to simplify the implementation of Tinder like cards on iOS.
  • KVCardSelectionVC - Awesome looking Dial like card selection ViewController.
  • DMSwipeCards - Tinder like card stack that supports lazy loading and generics
  • TimelineCards - Presenting timelines as cards, single or bundled in scrollable feed!.
  • Cards - Awesome iOS 11 AppStore's Card Views.
  • MMCardView - Custom CollectionView like Wallet App
  • CardsLayout - Nice card-designed custom collection view layout.
  • CardParts - A reactive, card-based UI framework built on UIKit.
  • VerticalCardSwiper - A marriage between the Shazam Discover UI and Tinder, built with UICollectionView in Swift.
  • Shuffle - A multi-directional card swiping library inspired by Tinder.

back to top

Form & Settings

Input validators, form helpers and form builders.

  • Form - The most flexible and powerful way to build a form on iOS
  • XLForm - XLForm is the most flexible and powerful iOS library to create dynamic table-view forms. Fully compatible with Swift & Obj-C.
  • Eureka - Elegant iOS form builder in Swift.
  • YALField - Custom Field component with validation for creating easier form-like UI from interface builder.
  • Former - Former is a fully customizable Swift2 library for easy creating UITableView based form.
  • SwiftForms - A small and lightweight library written in Swift that allows you to easily create forms.
  • Formalist - Declarative form building framework for iOS
  • SwiftyFORM - SwiftyFORM is a form framework for iOS written in Swift
  • SwiftValidator - A rule-based validation library for Swift
  • GenericPasswordRow - A row for Eureka to implement password validations.
  • formvalidator-swift - A framework to validate inputs of text fields and text views in a convenient way.
  • ValidationToolkit - Lightweight framework for input validation written in Swift.
  • ATGValidator - Rule based validation framework with form and card validation support for iOS.
  • ValidatedPropertyKit - Easily validate your Properties with Property Wrappers.
  • FDTextFieldTableViewCell - Adds a UITextField to the cell and places it correctly.

back to top

Keyboard

  • RSKKeyboardAnimationObserver - Showing / dismissing keyboard animation in simple UIViewController category.
  • RFKeyboardToolbar - This is a flexible UIView and UIButton subclass to add customized buttons and toolbars to your UITextFields/UITextViews.
  • IQKeyboardManager - Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.
  • NgKeyboardTracker - Objective-C library for tracking keyboard in iOS apps.
  • MMNumberKeyboard - A simple keyboard to use with numbers and, optionally, a decimal point.
  • KeyboardObserver - For less complicated keyboard event handling.
  • TPKeyboardAvoiding - A drop-in universal solution for moving text fields out of the way of the keyboard in iOS
  • YYKeyboardManager - iOS utility class allows you to access keyboard view and track keyboard animation.
  • KeyboardMan - KeyboardMan helps you make keyboard animation.
  • MakemojiSDK - Emoji Keyboard SDK (iOS)
  • Typist - Small, drop-in Swift UIKit keyboard manager for iOS apps-helps manage keyboard's screen presence and behavior without notification center.
  • KeyboardHideManager - Codeless manager to hide keyboard by tapping on views for iOS written in Swift
  • Toolbar - Awesome autolayout Toolbar.
  • IHKeyboardAvoiding - A drop-in universal solution for keeping any UIView visible when the keyboard is being shown - no more UIScrollViews!
  • NumPad - Number Pad (inspired by Square's design).
  • Ribbon - A simple cross-platform toolbar/custom input accessory view library for iOS & macOS.
  • ISEmojiView - Emoji Keyboard for iOS

back to top

Label

  • LTMorphingLabel - Graceful morphing effects for UILabel written in Swift.
  • ActiveLabel.swift - UILabel drop-in replacement supporting Hashtags (#), Mentions (@) and URLs (http://) written in Swift
  • MZTimerLabel - A handy class for iOS to use UILabel as a countdown timer or stopwatch just like in Apple Clock App.
  • CountdownLabel - Simple countdown UILabel with morphing animation, and some useful function.
  • IncrementableLabel - Incrementable label for iOS, macOS, and tvOS.
  • TTTAttributedLabel - A drop-in replacement for UILabel that supports attributes, data detectors, links, and more
  • NumberMorphView - A label view for displaying numbers which can transition or animate using a technique called number tweening or number morphing.
  • GlitchLabel - Glitching UILabel for iOS.
  • TOMSMorphingLabel - Configurable morphing transitions between text values of a label.
  • THLabel - UILabel subclass, which additionally allows shadow blur, inner shadow, stroke text and fill gradient.
  • RQShineLabel - Secret app like text animation
  • ZCAnimatedLabel - UILabel replacement with fine-grain appear/disappear animation
  • TriLabelView - A triangle shaped corner label view for iOS written in Swift.
  • Preloader.Ophiuchus - Custom Label to apply animations on whole text or letters.
  • MTLLinkLabel - MTLLinkLabel is linkable UILabel. Written in Swift.
  • UICountingLabel - Adds animated counting support to UILabel.
  • SlidingText - Swift UIView for sliding text with page indicator.
  • NumericAnimatedLabel - Swift UIView for showing numeric label with incremental and decremental step animation while changing value. Useful for scenarios like displaying currency.
  • JSLabel - A simple designable subclass on UILabel with extra IBDesignable and Blinking features.
  • AnimatedMaskLabel - Animated Mask Label is a nice gradient animated label. This is an easy way to add a shimmering effect to any view in your app.
  • STULabel - A label view that's faster than UILabel and supports asynchronous rendering, links with UIDragInteraction, very flexible text truncation, Auto Layout, UIAccessibility and more.

back to top

Login

  • LFLoginController - Customizable login screen, written in Swift.
  • LoginKit - LoginKit is a quick and easy way to add a Login/Signup UX to your iOS app.
  • Cely - Plug-n-Play login framework written in Swift.

back to top

Menu

  • ENSwiftSideMenu - A simple side menu for iOS 7/8 written in Swift.
  • RESideMenu - iOS 7/8 style side menu with parallax effect inspired by Dribbble shots.
  • SSASideMenu - A Swift implementation of RESideMenu. A iOS 7/8 style side menu with parallax effect.
  • RadialMenu - RadialMenu is a custom control for providing a touch context menu (like iMessage recording in iOS 8) built with Swift & POP
  • cariocamenu - The fastest zero-tap iOS menu.
  • VLDContextSheet - Context menu similar to the one in the Pinterest iOS app
  • GuillotineMenu - Our Guillotine Menu Transitioning Animation implemented in Swift reminds a bit of a notorious killing machine.
  • MediumMenu - A menu based on Medium iOS app.
  • SwiftySideMenu - SwiftySideMenu is a lightweight and easy to use side menu controller to add left menu and center view controllers with scale animation based on Pop framework.
  • LLSlideMenu - This is a spring slide menu for iOS apps
  • Swift-Slide-Menu - A Slide Menu, written in Swift, inspired by Slide Menu Material Design.
  • MenuItemKit - UIMenuItem with image and block(closure)
  • BTNavigationDropdownMenu - The elegant dropdown menu, written in Swift, appears underneath navigation bar to display a list of related items when a user click on the navigation title.
  • ALRadialMenu - A radial/circular menu featuring spring animations. Written in swift
  • AZDropdownMenu - An easy to use dropdown menu that supports images.
  • CircleMenu - An animated, multi-option menu button.
  • SlideMenuControllerSwift - iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure Swift.
  • SideMenu - Simple side menu control in Swift inspired by Facebook. Right and Left sides. Lots of customization and animation options. Can be implemented in Storyboard with no code.
  • CategorySliderView - slider view for choosing categories. add any UIView type as category item view. Fully customisable
  • MKDropdownMenu - A Dropdown Menu for iOS with many customizable parameters to suit any needs.
  • ExpandingMenu - ExpandingMenu is menu button for iOS written in Swift.
  • PageMenu - A paging menu controller built from other view controllers placed inside a scroll view (like Spotify, Windows Phone, Instagram)
  • XXXRoundMenuButton - A simple circle style menu.
  • IGCMenu - Grid and Circular menu with animation.Easy to customise.
  • EEJSelectMenu - Single selection menu with cool animations, responsive with all screen sizes.
  • IGLDropDownMenu - An iOS drop down menu with pretty animation and easy to customize.
  • Side-Menu.iOS - Animated side menu with customizable UI
  • PopMenu - PopMenu is pop animation menu inspired by Sina weibo / NetEase app.
  • FlowingMenu - Interactive view transition to display menus with flowing and bouncing effects in Swift
  • Persei - Animated top menu for UITableView / UICollectionView / UIScrollView written in Swift
  • DropDown - A Material Design drop down for iOS
  • KYGooeyMenu - A not bad gooey effects menu.
  • SideMenuController - A side menu controller written in Swift
  • Context-Menu.iOS - You can easily add awesome animated context menu to your app.
  • ViewDeck - An implementation of the sliding functionality found in the Path 2.0 or Facebook iOS apps.
  • FrostedSidebar - Hamburger Menu using Swift and iOS 8 API's
  • VHBoomMenuButton - A menu which can ... BOOM!
  • DropDownMenuKit - A simple, modular and highly customizable UIKit menu, that can be attached to the navigation bar or toolbar, written in Swift.
  • RevealMenuController - Expandable item groups, custom position and appearance animation. Similar to ActionSheet style.
  • RHSideButtons - Library provides easy to implement variation of Android (Material Design) Floating Action Button for iOS. You can use it as your app small side menu.
  • Swift-CircleMenu - Rotating circle menu written in Swift 3.
  • AKSideMenu - Beautiful iOS side menu library with parallax effect.
  • InteractiveSideMenu - Customizable iOS Interactive Side Menu written in Swift 3.
  • YNDropDownMenu - Adorable iOS drop down menu with Swift3.
  • KWDrawerController - Drawer view controller that easy to use!
  • JNDropDownMenu - Easy to use tableview style drop down menu with multi-column support written in Swift3.
  • FanMenu - Menu with a circular layout based on Macaw.
  • AirBar - UIScrollView driven expandable menu written in Swift 3.
  • FAPanels - FAPanels for transition
  • SwipeMenuViewController - Swipable tab and menu View and ViewController.
  • DTPagerController - A fully customizable container view controller to display set of ViewControllers in horizontal scroller
  • PagingKit - PagingKit provides customizable menu UI It has more flexible layout and design than the other libraries.
  • Dropdowns - 💧 Dropdown in Swift
  • Parchment - A paging view controller with a highly customizable menu. Built on UICollectionView, with support for custom layouts and infinite data sources.
  • ContextMenu - An iOS context menu UI inspired by Things 3.
  • Panels - Panels is a framework to easily add sliding panels to your application.
  • UIMenuScroll - Creating the horizontal swiping navigation how on Facebook Messenger.
  • CircleBar - 🔶 A fun, easy-to-use tab bar navigation controller for iOS.
  • SPLarkController - Settings screen with buttons and switches.
  • SwiftyMenu - A Simple and Elegant DropDown menu for iOS 🔥💥

back to top

Navigation Bar

  • HidingNavigationBar - Easily hide and show a view controller's navigation bar (and tab bar) as a user scrolls
  • KMNavigationBarTransition - A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations.
  • LTNavigationBar - UINavigationBar Category which allows you to change its appearance dynamically
  • BusyNavigationBar - A UINavigationBar extension to show loading effects
  • KDInteractiveNavigationController - A UINavigationController subclass that support pop interactive UINavigationbar with hidden or show.
  • AMScrollingNavbar - Scrollable UINavigationBar that follows the scrolling of a UIScrollView
  • NavKit - Simple and integrated way to customize navigation bar experience on iOS app.
  • RainbowNavigation - An easy way to change backgroundColor of UINavigationBar when Push & Pop
  • TONavigationBar - A simple subclass that adds the ability to set the navigation bar background to 'clear' and gradually transition it visibly back in, similar to the effect in the iOS Music app.

back to top

PickerView

  • ActionSheetPicker-3.0 - Quickly reproduce the dropdown UIPickerView / ActionSheet functionality on iOS.
  • PickerView - A customizable alternative to UIPickerView in Swift.
  • DatePickerDialog - Date picker dialog for iOS
  • CZPicker - A picker view shown as a popup for iOS.
  • AIDatePickerController - 📅 UIDatePicker modally presented with iOS 7 custom transitions.
  • CountryPicker - 📅 UIPickerView with Country names flags and phoneCodes
  • McPicker - A customizable, closure driven UIPickerView drop-in solution with animations that is rotation ready.
  • Mandoline - An iOS picker view to serve all your "picking" needs
  • D2PDatePicker - Elegant and Easy-to-Use iOS Swift Date Picker
  • CountryPickerView- A simple, customizable view for efficiently collecting country information in iOS apps
  • planet - A country picker
  • MICountryPicker - Swift country picker with search option.
  • ADDatePicker - A fully customizable iOS Horizontal PickerView library, written in pure swift.
  • SKCountryPicker - A simple, customizable Country picker for picking country or dialing code.

back to top

Popup

  • MMPopupView - Pop-up based view(e.g. alert sheet), can easily customize.
  • STPopup - STPopup provides a UINavigationController in popup style, for both iPhone and iPad.
  • NMPopUpView - Simple iOS class for showing nice popup windows. Swift and Objective-C versions available.
  • PopupController - A customizable controller for showing temporary popup view.
  • SubscriptionPrompt - Subscription View Controller like the Tinder uses
  • Presentr - Wrapper for custom ViewController presentations in iOS 8+
  • PopupDialog - A simple, customizable popup dialog for iOS written in Swift. Replaces UIAlertControllers alert style.
  • SelectionDialog - Simple selection dialog.
  • AZDialogViewController - A highly customizable alert dialog controller that mimics Snapchat's alert dialog.
  • MIBlurPopup - MIBlurPopup let you create amazing popups with a blurred background.
  • LNPopupController - a framework for presenting view controllers as popups of other view controllers, much like the Apple Music and Podcasts apps.
  • PopupWindow - PopupWindow is a simple Popup using another UIWindow in Swift.
  • SHPopup - SHPopup is a simple lightweight library for popup view.
  • Popover - Popover is a balloon library like Facebook app. It is written in pure swift.
  • SwiftEntryKit - A highly customizable popups, alerts and banners presenter for iOS. It offers various presets and is written in pure Swift.
  • FFPopup - ⛩FFPopup is a lightweight library for presenting custom views as a popup.
  • PopupView - Toasts and popups library written with SwiftUI.
  • MijickPopupView - Popups presentation made simple with SwiftUI.

back to top

ProgressView

back to top

Pull to Refresh

back to top

Rating Stars

  • FloatRatingView - Whole, half or floating point ratings control written in Swift
  • TTGEmojiRate - An emoji-liked rating view for iOS, implemented in Swift.
  • StarryStars - StarryStars is iOS GUI library for displaying and editing ratings
  • Cosmos - A star rating control for iOS / Swift
  • HCSStarRatingView - Simple star rating view for iOS written in Objective-C
  • MBRateApp - A groovy app rate stars screen for iOS written in Swift
  • RPInteraction - Review page interaction - handy and pretty way to ask for review.

back to top

ScrollView

  • ScrollingFollowView - ScrollingFollowView is a simple view which follows UIScrollView scrolling.
  • UIScrollView-InfiniteScroll - UIScrollView infinite scroll category.
  • GoAutoSlideView - GoAutoSlideView extends UIScrollView by featuring infinitely and automatically slide.
  • AppStoreStyleHorizontalScrollView - App store style horizontal scroll view.
  • PullToDismiss - You can dismiss modal viewcontroller by pulling scrollview or navigationbar in Swift.
  • SpreadsheetView - Full configurable spreadsheet view user interfaces for iOS applications. With this framework, you can easily create complex layouts like schedule, Gantt chart or timetable as if you are using Excel.
  • VegaScroll - VegaScroll is a lightweight animation flowlayout for UICollectionView completely written in Swift 4, compatible with iOS 11 and Xcode 9
  • ShelfView-iOS - iOS custom view to display books on shelf
  • SlideController - SlideController is simple and flexible UI component completely written in Swift. It is a nice alternative for UIPageViewController built using power of generic types.
  • CrownControl - Inspired by the Apple Watch Digital Crown, CrownControl is a tiny accessory view that enables scrolling through scrollable content without lifting your thumb.
  • SegementSlide - Multi-tier UIScrollView nested scrolling solution.

back to top

Segmented Control

back to top

Slider

  • VolumeControl - Custom volume control for iPhone featuring a well-designed round slider.
  • WESlider - Simple and light weight slider with chapter management
  • IntervalSlider - IntervalSlider is a slider library like ReutersTV app. written in pure swift.
  • RangeSlider - A simple range slider made in Swift
  • CircleSlider - CircleSlider is a Circular slider library. written in pure Swift.
  • MARKRangeSlider - A custom reusable slider control with 2 thumbs (range slider).
  • ASValueTrackingSlider - A UISlider subclass that displays the slider value in a popup view
  • TTRangeSlider - A slider, similar in style to UISlider, but which allows you to pick a minimum and maximum range.
  • MMSegmentSlider - Customizable animated slider for iOS.
  • StepSlider - StepSlider its custom implementation of slider such as UISlider for preset integer values.
  • JDSlider - An iOS Slider written in Swift.
  • SnappingSlider - A beautiful slider control for iOS built purely upon Swift
  • MTCircularSlider - A feature-rich circular slider control.
  • VerticalSlider - VerticalSlider is a vertical implementation of the UISlider slider control.
  • CircularSlider - A powerful Circular Slider. It's written in Swift, it's 100% IBDesignable and all parameters are IBInspectable.
  • HGCircularSlider - A custom reusable circular slider control for iOS application.
  • RangeSeekSlider - A customizable range slider for iOS.
  • SectionedSlider - Control Center Slider.
  • MultiSlider - UISlider clone with multiple thumbs and values, optional snap intervals, optional value labels.
  • AGCircularPicker - AGCircularPicker is helpful component for creating a controller aimed to manage any calculated parameter.
  • Fluid Slider - A slider widget with a popup bubble displaying the precise value selected.

back to top

Splash View

  • CBZSplashView - Twitter style Splash Screen View. Grows to reveal the Initial view behind.
  • SKSplashView - Create custom animated splash views similar to the ones in the Twitter, Uber and Ping iOS app.
  • RevealingSplashView - A Splash view that animates and reveals its content, inspired by Twitter splash

back to top

Status Bar

  • Bartinter - Status bar tint depending on content behind, updates dynamically.

back to top

Stepper

  • PFStepper - May be the most elegant stepper you have ever had!
  • ValueStepper - A Stepper object that displays its value.
  • GMStepper - A stepper with a sliding label in the middle.
  • barceloneta - The right way to increment/decrement values with a simple gesture on iOS.
  • SnappingStepper - An elegant alternative to the UIStepper written in Swift
  • SMNumberWheel - A custom control written in Swift, which is ideal for picking numbers very fast but yet very accurate using a rotating wheel

back to top

Switch

  • AnimatedSwitch - UISwitch which paints over the parent view with the color in Swift.
  • ViralSwitch - A UISwitch that infects its superview with its tint color.
  • JTMaterialSwitch - A customizable switch UI with ripple effect and bounce animations, inspired from Google's Material Design.
  • TKSwitcherCollection - An animate switch collection
  • SevenSwitch - iOS7 style drop in replacement for UISwitch.
  • PMZSwitch - Yet another animated toggle
  • Switcher - Swift - Custom UISwitcher with animation when change status
  • RAMPaperSwitch - RAMPaperSwitch is a Swift module which paints over the parent view when the switch is turned on.
  • AIFlatSwitch - A flat component alternative to UISwitch on iOS
  • Switch - An iOS switch control implemented in Swift with full Interface Builder support.

back to top

Tab Bar

  • ESTabBarController - A tab bar controller for iOS that allows highlighting buttons and setting custom actions to them.
  • GooeyTabbar - A gooey effect tabbar
  • animated-tab-bar - RAMAnimatedTabBarController is a Swift module for adding animation to tabbar items.
  • FoldingTabBar.iOS - Folding Tab Bar and Tab Bar Controller
  • GGTabBar - Another UITabBar & UITabBarController (iOS Tab Bar) replacement, but uses Auto Layout for arranging it's views hierarchy.
  • adaptive-tab-bar - AdaptiveController is a 'Progressive Reduction' Swift module for adding custom states to Native or Custom iOS UI elements
  • Pager - Easily create sliding tabs with Pager
  • XLPagerTabStrip - Android PagerTabStrip for iOS.
  • TabPageViewController - Paging view controller and scroll tab view.
  • TabDrawer - Customizable TabBar UI element that allows you to run a block of code upon TabBarItem selection, written in Swift
  • SwipeViewController - SwipeViewController is a Swift modification of RKSwipeBetweenViewControllers - navigate between pages / ViewControllers
  • ColorMatchTabs - Interesting way to display tabs
  • BATabBarController - A TabBarController with a unique animation for selection
  • ScrollPager - A scroll pager that displays a list of tabs (segments) and manages paging between given views
  • Segmentio - Animated top/bottom segmented control written in Swift.
  • KYWheelTabController - KYWheelTabController is a subclass of UITabBarController.It displays the circular menu instead of UITabBar.
  • SuperBadges - Add emojis and colored dots as badges for your Tab Bar buttons
  • AZTabBarController - A custom tab bar controller for iOS written in Swift 3.0
  • MiniTabBar - A clean simple alternative to the UITabBar
  • SwipeableTabBarController - UITabBarController with swipe interaction between its tabs.
  • SMSwipeableTabView - Swipeable Views with Tabs (Like Android SwipeView With Tabs Layout)
  • Tabman - A powerful paging view controller with indicator bar for iOS.
  • WormTabStrip Beatiful ViewPager For iOS written in Swift (inspired by Android SmartTabLayout)
  • SSCustomTabMenu Simple customizable iOS bottom menu with Tabbar.
  • SmoothTab - Smooth customizable tabs for iOS apps.
  • ExpandedTabBar - Very creative designed solution for "more" items in UITabBarController
  • BEKCurveTabbar - compatible with XCode +10 and fully customizable via Interface_Builder panel. BEKCurveTabBar derived UITabBar class and compatible with every iOS devices.
  • AnimatedTabBar - A tabbar with number of preset animations. Written with SwiftUI.

back to top

Table View / Collection View

Table View

  • MGSwipeTableCell - UITableViewCell subclass that allows to display swippable buttons with a variety of transitions.
  • YXTPageView - A PageView, which supporting scrolling to transition between a UIView and a UITableView.
  • ConfigurableTableViewController - Typed, yet Flexible Table View Controller https://holko.pl/2016/01/05/typed-table-view-controller/
  • Lightning-Table - A declarative api for working with UITableView.
  • Static - Simple static table views for iOS in Swift.
  • AMWaveTransition - Custom transition between viewcontrollers holding tableviews.
  • SWTableViewCell - An easy-to-use UITableViewCell subclass that implements a swippable content view which exposes utility buttons (similar to iOS 7 Mail Application)
  • ZYThumbnailTableView - a TableView have thumbnail cell only, and you can use gesture let it expands other expansionView, all diy
  • BWSwipeRevealCell - A Swift library for swipeable table cells
  • preview-transition - PreviewTransition is a simple preview gallery controller
  • QuickTableViewController - A simple way to create a UITableView for settings in Swift.
  • TableKit - Type-safe declarative table views with Swift
  • VBPiledView - Simple and beautiful stacked UIView to use as a replacement for an UITableView, UIImageView or as a menu
  • VTMagic - VTMagic is a page container library for iOS.
  • MCSwipeTableViewCell - 👆 Convenient UITableViewCell subclass that implements a swippable content to trigger actions (similar to the Mailbox app).
  • MYTableViewIndex - A pixel perfect replacement for UITableView section index, written in Swift
  • ios-dragable-table-cells - Support for drag-n-drop of UITableViewCells in a navigation hierarchy of view controllers. You drag cells by tapping and holding them.
  • Bohr - Bohr allows you to set up a settings screen for your app with three principles in mind: ease, customization and extensibility.
  • SwiftReorder - Add drag-and-drop reordering to any table view with just a few lines of code. Robust, lightweight, and completely customizable. [e]
  • HoverConversion - HoverConversion realized vertical paging with UITableView. UIViewController will be paging when reaching top or bottom of UITableView contentOffset.
  • TableViewDragger - A cells of UITableView can be rearranged by drag and drop.
  • FlexibleTableViewController - Swift library of generic table view controller with external data processing of functionality, like determine cell's reuseIdentifier related to indexPath, configuration of requested cell for display and cell selection handler
  • CascadingTableDelegate - A no-nonsense way to write cleaner UITableViewDelegate and UITableViewDataSource in Swift.
  • TimelineTableViewCell - Simple timeline view implemented by UITableViewCell written in Swift 3.0.
  • RHPreviewCell - I envied so much Spotify iOS app this great playlist preview cell. Now you can give your users ability to quick check "what content is hidden under your UITableViewCell".
  • TORoundedTableView - A subclass of UITableView that styles it like Settings.app on iPad
  • TableFlip - A simpler way to do cool UITableView animations! (╯°□°)╯︵ ┻━┻
  • DTTableViewManager - Protocol-oriented UITableView management, powered by generics and associated types.
  • SwipeCellKit - Swipeable UITableViewCell based on the stock Mail.app, implemented in Swift.
  • ReverseExtension - A UITableView extension that enables cell insertion from the bottom of a table view.
  • SelectionList - Simple single-selection or multiple-selection checklist, based on UITableView.
  • AZTableViewController - Elegant and easy way to integrate pagination with dummy views.
  • SAInboxViewController - UIViewController subclass inspired by "Inbox by google" animated transitioning.
  • StaticTableViewController - Dynamically hide / show cells of static UITableViewController.
  • OKTableViewLiaison - Framework to help you better manage UITableView configuration.
  • ThunderTable - A simple declarative approach to UITableViewController management using a protocol-based approach.

back to top

Collection View

  • Dwifft - Swift Diff
  • MEVFloatingButton - An iOS drop-in UITableView, UICollectionView and UIScrollView superclass category for showing a customizable floating button on top of it.
  • Preheat - Automates prefetching of content in UITableView and UICollectionView
  • DisplaySwitcher - Custom transition between two collection view layouts
  • Reusable - A Swift mixin for UITableViewCells and UICollectionViewCells
  • Sapporo - Cellmodel-driven collectionview manager
  • StickyCollectionView-Swift - UICollectionView layout for presenting of the overlapping cells.
  • TLIndexPathTools - TLIndexPathTools is a small set of classes that can greatly simplify your table and collection views.
  • IGListKit - A data-driven UICollectionView framework for building fast and flexible lists.
  • FlexibleCollectionViewController - Swift library of generic collection view controller with external data processing of functionality, like determine cell's reuseIdentifier related to indexPath, configuration of requested cell for display and cell selection handler etc
  • ASCollectionView - A Swift collection view inspired by Airbnb.
  • GLTableCollectionView - Netflix and App Store like UITableView with UICollectionView
  • EditDistance - Incremental update tool for UITableView and UICollectionView
  • SwiftSpreadSheet - Spreadsheet CollectionViewLayout in Swift. Fully customizable.
  • GenericDataSource - A generic small reusable components for data source implementation for UITableView/UICollectionView in Swift.
  • PagingView - Infinite paging, Smart auto layout, Interface of similar to UIKit.
  • PJFDataSource - PJFDataSource is a small library that provides a simple, clean architecture for your app to manage its data sources while providing a consistent user interface for common content states (i.e. loading, loaded, empty, and error).
  • DataSources - Type-safe data-driven List-UI Framework. (We can also use ASCollectionNode)
  • KDDragAndDropCollectionView - Dragging & Dropping data across multiple UICollectionViews.
  • SectionScrubber - A component to quickly scroll between collection view sections
  • CollectionKit - A modern Swift framework for building reusable data-driven collection components.
  • AZCollectionViewController - Easy way to integrate pagination with dummy views in CollectionView, make Instagram Discover within minutes.
  • CampcotCollectionView - CampcotCollectionView is a custom UICollectionView written in Swift that allows to expand and collapse sections. It provides a simple API to manage collection view appearance.
  • Stefan - A guy that helps you manage collections and placeholders in easy way.
  • Parade - Parallax Scroll-Jacking Effects Engine for iOS / tvOS.
  • MSPeekCollectionViewDelegateImplementation - A custom paging behavior that peeks the previous and next items in a collection view.
  • SimpleSource - Easy and type-safe iOS table and collection views in Swift.
  • Conv - Conv smart represent UICollectionView data structure more than UIKit.
  • Carbon - 🚴 A declarative library for building component-based user interfaces in UITableView and UICollectionView.
  • ThunderCollection - A simple declarative approach to UICollectionViewController management using a protocol-based approach.
  • DiffableDataSources - A library for backporting UITableView/UICollectionViewDiffableDataSource.
  • StableCollectionViewLayout - This layout adjusts a content offset if the collection view is updated. You can insert, delete or reload items and StableCollectionViewLayout will take care of the content offset.
  • IQListKit - Model driven UITableView/UICollectionView.

back to top

Expandable Cell

  • folding-cell - FoldingCell is an expanding content cell inspired by folding paper material
  • AEAccordion - UITableViewController with accordion effect (expand / collapse cells).
  • ThreeLevelAccordian - This is a customisable three level accordian with options for adding images and accessories images.
  • YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS.
  • Savory - A swift accordion view implementation.
  • ExpyTableView - Make your table view expandable just by implementing one method.
  • FTFoldingPaper - Emulates paper folding effect. Can be integrated with UITableView or used with other UI components.
  • CollapsibleTableSectionViewController - A swift library to support collapsible sections in a table view.
  • ExpandableCell - Fully refactored YNExapnadableCell with more concise, bug free. Awesome expandable, collapsible tableview cell for iOS.
  • expanding-collection - ExpandingCollection is a card peek/pop controller.

back to top

Header

  • ParallaxTableViewHeader - Parallax scrolling effect on UITableView header view when a tableView is scrolled.
  • CSStickyHeaderFlowLayout - UICollectionView replacement of UITableView. Do even more like Parallax Header, Sticky Section Header.
  • GSKStretchyHeaderView - Configurable yet easy to use stretchy header view for UITableView and UICollectionView.

back to top

Placeholder

  • DZNEmptyDataSet - A drop-in UITableView/UICollectionView superclass category for showing empty datasets whenever the view has no content to display.
  • HGPlaceholders - Nice library to show and create placeholders and Empty States for any UITableView/UICollectionView in your project
  • ListPlaceholder - ListPlaceholder is a swift library allows you to easily add facebook style animated loading placeholder to your tableviews or collection views
  • WLEmptyState - A component that lets you customize the view when the dataset of UITableView is empty.

back to top

Collection View Layout

  • CHTCollectionViewWaterfallLayout - The waterfall (i.e., Pinterest-like) layout for UICollectionView.
  • FMMosaicLayout - A drop-in mosaic collection view layout with a focus on simple customizations.
  • mosaic-layout - A mosaic collection view layout inspired by Lightbox's Algorithm, written in Swift
  • TLLayoutTransitioning - Enhanced transitioning between UICollectionView layouts in iOS.
  • CenteredCollectionView - A lightweight UICollectionViewLayout that 'pages' and centers it's cells 🎡 written in Swift.
  • CollectionViewSlantedLayout - UICollectionViewLayout with slanted content
  • SquareMosaicLayout - An extandable mosaic UICollectionViewLayout with a focus on extremely flexible customizations
  • BouncyLayout - BouncyLayout is a collection view layout that makes your cells bounce.
  • AZSafariCollectionViewLayout - AZSafariCollectionViewLayout is replica of safari browser history page layout. very easy to use, IBInspectable are given for easy integration.
  • Blueprints - A framework that is meant to make your life easier when working with collection view flow layouts.
  • UICollectionViewSplitLayout - UICollectionViewSplitLayout makes collection view more responsive.
  • Swinflate - A bunch of layouts providing light and seamless experiences in your CollectionView.

back to top

Tag

  • PARTagPicker - This pod provides a view controller for choosing and creating tags in the style of wordpress or tumblr.
  • AMTagListView - UIScrollView subclass that allows to add a list of highly customizable tags.
  • TagCellLayout - UICollectionView layout for Tags with Left, Center & Right alignments.
  • TTGTagCollectionView - Show simple text tags or custom tag views in a vertical scrollable view.
  • TagListView - Simple and highly customizable iOS tag list view, in Swift.
  • RKTagsView - Highly customizable iOS tags view (like NSTokenField). Supports editing, multiple selection, Auto Layout and much more.
  • WSTagsField - An iOS text field that represents different Tags.
  • AKMaskField - AKMaskField is UITextField subclass which allows enter data in the fixed quantity and in the certain format.
  • YNSearch - Awesome fully customizable search view like Pinterest written in Swift 3.
  • SFFocusViewLayout - UICollectionViewLayout with focused content.

back to top

TextField & TextView

  • JVFloatLabeledTextField - UITextField subclass with floating labels.
  • ARAutocompleteTextView - subclass of UITextView that automatically displays text suggestions in real-time. Perfect for email Textviews.
  • IQDropDownTextField - TextField with DropDown support using UIPickerView.
  • UITextField-Shake - UITextField category that adds shake animation. Also with Swift version
  • HTYTextField - A UITextField with bouncy placeholder.
  • MVAutocompletePlaceSearchTextField - A drop-in Autocompletion control for Place Search like Google Places, Uber, etc.
  • AutocompleteField - Add word completion to your UITextFields.
  • RSKGrowingTextView - A light-weight UITextView subclass that automatically grows and shrinks.
  • RSKPlaceholderTextView - A light-weight UITextView subclass that adds support for placeholder.
  • StatefulViewController - Placeholder views based on content, loading, error or empty states.
  • MBAutoGrowingTextView - An auto-layout base UITextView subclass which automatically grows with user input and can be constrained by maximal and minimal height - all without a single line of code.
  • TextFieldEffects - Custom UITextFields effects inspired by Codrops, built using Swift.
  • Reel Search - RAMReel is a controller that allows you to choose options from a list.
  • MLPAutoCompleteTextField - a subclass of UITextField that behaves like a typical UITextField with one notable exception: it manages a drop down table of autocomplete suggestions that update as the user types.
  • SkyFloatingLabelTextField - A beautiful and flexible text field control implementation of "Float Label Pattern". Written in Swift.
  • VMaskTextField - VMaskTextField is a library which create an input mask for iOS.
  • TJTextField - UITextField with underline and left image.
  • NextGrowingTextView - The next in the generations of 'growing textviews' optimized for iOS 7 and above.
  • RPFloatingPlaceholders - UITextField and UITextView subclasses with placeholders that change into floating labels when the fields are populated with text.
  • CurrencyTextField - UITextField that automatically formats text to display in the currency format.
  • UITextField-Navigation - UITextField-Navigation adds next, previous and done buttons to the keyboard for your UITextFields.
  • AutoCompleteTextField - Auto complete with suggestion textfield.
  • PLCurrencyTextField - UITextField that support currency in the right way.
  • PasswordTextField - A custom TextField with a switchable icon which shows or hides the password and enforce good password policies.
  • AnimatedTextInput - Animated UITextField and UITextView replacement for iOS.
  • KMPlaceholderTextView - A UITextView subclass that adds support for multiline placeholder written in Swift.
  • NxEnabled - Library which allows you binding enabled property of button with textable elements (TextView, TextField).
  • AwesomeTextField - Awesome TextField is a nice and simple library for iOS. It's highly customisable and easy-to-use tool. Works perfectly for any registration or login forms in your app.
  • ModernSearchBar - The famous iOS search bar with auto completion feature implemented.
  • SelectableTextView - A text view that supports selection and expansion.
  • CBPinEntryView - A customisable view written in Swift 4.2 for any pin, code or password entry. Supports one time codes in iOS 12.
  • GrowingTextView - An UITextView in Swift3 and Swift2.3. Support auto growing, placeholder and length limit.
  • DTTextField - DTTextField is a custom textfield with floating placeholder and error label in Swift3.0.
  • TextFieldCounter - UITextField character counter with lovable UX.
  • RSFloatInputView - A Float Input View with smooth animation and supporting icon and seperator written with Swift.
  • TaniwhaTextField - TaniwhaTextField is a lightweight and beautiful swift textfield framework. It has float label pattern, and also you can highly customise it.
  • InstantSearch iOS - A library of widgets and helpers to build instant-search applications on iOS.
  • SearchTextField - UITextField subclass with autocompletion suggestions list.
  • PYSearch - An elegant search controller which replaces the UISearchController for iOS (iPhone & iPad).
  • styled-text - Declarative text styles and streamlined Dynamic Type support for iOS.
  • TweeTextField - Lightweight set of text fields with nice animation and functionality.
  • MeasurementTextField - UITextField-based control for (NS)Measurement values input.
  • VENTokenField - Easy-to-use token field that is used in the Venmo app.
  • ALTextInputBar - An auto growing text input bar for messaging apps.
  • Tagging - TextView that provides easy to use tagging feature for Mention or Hashtag.
  • InputBarAccessoryView - A simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments.
  • CocoaTextField - UITextField created according to the Material.IO guidelines of 2019.
  • CHIOTPField - A set of textfields that can be used for One-time passwords, SMS codes, PIN codes, etc.
  • Streamoji - Custom emoji rendering library with support for GIFs and images, UITextView extension.

back to top

UIPageControl

  • PageControl - A nice, animated UIPageControl alternative.
  • PageControls - This is a selection of custom page controls to replace UIPageControl, inspired by a dribbble found here.
  • CHIPageControl - A set of cool animated page controls to replace boring UIPageControl.
  • Page-Control - Beautiful, animated and highly customizable UIPageControl alternative.
  • TKRubberIndicator - Rubber Indicator in Swift.

back to top

Web View

  • Otafuku - Otafuku provides utility classes to use WKWebView in Swift.
  • SwiftWebVC - A drop-in inline browser for your Swift iOS app.
  • SVWebViewController - A drop-in inline browser for your iOS app.
  • PTPopupWebView - PTPopupWebView is a simple and useful WebView for iOS, which can be popup and has many of the customized item.

back to top

Utility

  • Underscore.m - A DSL for Data Manipulation.
  • XExtensionItem - Easier sharing of structured data between iOS applications and share extensions.
  • ReflectableEnum - Reflection for enumerations in Objective-C.
  • ObjectiveSugar - ObjectiveC additions for humans. Ruby style.
  • OpinionatedC - Because Objective-C should have inherited more from Smalltalk.
  • SwiftRandom - Generator for random data.
  • RandomKit - Random data generation in Swift.
  • YOLOKit - Getting square objects down round holes.
  • EZSwiftExtensions - 😏 How Swift standard types and classes were supposed to work.
  • Pantry - The missing light persistence layer for Swift.
  • SwiftParsec - A parser combinator library written in the Swift programming language.
  • OrderedSet - A Swift collection of unique, ordered objects.
  • Datez - Swift library for dealing with NSDate, NSCalendar, and NSDateComponents.
  • BFKit - An Objective-C collection of useful classes to develop Apps faster.
  • BFKit-Swift - A Swift collection of useful classes to develop Apps faster.
  • Scale - Unit converter in Swift (available via CocoaPods).
  • Standard Template Protocols - Protocols for your every day iOS needs.
  • TimeLord - Easy DateTime (NSDate) management in Swift.
  • AppVersionMonitor - Monitor iOS app version easily.
  • Sugar - Something sweet that goes great with your Cocoa.
  • Then - ✨ Super sweet syntactic sugar for Swift initializers.
  • Kvitto - App Store Receipt Validation.
  • Notificationz - Helping you own NSNotificationCenter in Swift.
  • SwiftFoundation - Cross-Platform, Protocol-Oriented Programming base library to complement the Swift Standard Library. (Pure Swift, Supports Linux).
  • libextobjc - A Cocoa library to extend the Objective-C programming language.
  • VersionTrackerSwift - Track which versions of your app a user has previously installed..
  • DeviceGuru - DeviceGuru is a simple lib (Swift) to know the exact type of the device, e.g. iPhone 6 or iPhone 6s.
  • AEAppVersion - Simple and Lightweight App Version Tracking for iOS written in Swift.
  • BlocksKit - The Objective-C block utilities you always wish you had.
  • SwiftyUtils - All the reusable code that we need in each project.
  • RateLimit - Simple utility for only executing code every so often.
  • Outlets - Utility functions for validating IBOutlet and IBAction connections.
  • EasyAbout - A way to easily add CocoaPods licenses and App Version to your iOS App using the Settings Bundle.
  • Validated - A Swift μ-Library for Somewhat Dependent Types.
  • Cent - Extensions for Swift Standard Types and Classes.
  • AssistantKit - Easy way to detect iOS device properties, OS versions and work with screen sizes. Powered by Swift.
  • SwiftLinkPreview - It makes a preview from an url, grabbing all the information such as title, relevant texts and images.
  • BundleInfos - Simple getter for Bundle informations. like short version from bundle.
  • YAML.framework - Proper YAML support for Objective-C based on LibYAML.
  • ReadabilityKit - Metadata extractor for news, articles and full-texts in Swift.
  • MissionControl-iOS - Super powerful remote config utility written in Swift (iOS, watchOS, tvOS, macOS).
  • SwiftTweaks - Tweak your iOS app without recompiling!
  • UnsupportedOSVersionAlert - Alerts users with a popup if they use an app with an unsupported version of iOS (e.g. iOS betas).
  • SwiftSortUtils - This library takes a shot at making sorting in Swift more pleasant. It also allows you to reuse your old NSSortDescriptor instances in Swift.
  • Retry - Haven't you wished for try to sometimes try a little harder? Meet retry .
  • ObjectiveKit - Swift-friendly API for Objective C runtime functions.
  • MoyaSugar - Syntactic sugar for Moya.
  • SwifterSwift - A handy collection of more than 400 native Swift 4 extensions to boost your productivity.
  • Eject - An eject button for Interface Builder to generate swift code.
  • ContactsWrapper - Easy to use wrapper for both contacts and contacts group with Objective-C.
  • XestiMonitors - An extensible monitoring framework written in Swift.
  • OpenSourceController - The simplest way to display the libraries licences used in your application.
  • App-Update-Tracker - Easily detect and run code upon app installation or update.
  • ExtensionalSwift - Useful swift extensions in one place.
  • InAppSettingsKit - This iOS framework allows settings to be in-app in addition to or instead of being in the Settings app.
  • MMWormhole - Message passing between iOS apps and extensions.
  • DefaultStringConvertible - A default CustomStringConvertible implementation for Swift types.
  • FluxCapacitor - FluxCapacitor makes implementing Flux design pattern easily with protocols and typealias.
  • VTAcknowledgementsViewController - Ready to use “Acknowledgements”/“Licenses”/“Credits” view controller for CocoaPods.
  • Closures - Swifty closures for UIKit and Foundation.
  • WhatsNew - Showcase new features after an app update similar to Pages, Numbers and Keynote.
  • MKUnits - Unit conversion library for Swift.
  • ActionClosurable - Extensions which helps to convert objc-style target/action to swifty closures.
  • ios_system - Drop-in replacement for system() in iOS programs.
  • SwiftProvisioningProfile - Parse provisioning profiles into Swift models.
  • Once - Minimalist library to manage one-off operations.
  • ZamzamKit - A collection of micro utilities and extensions for Standard Library, Foundation and UIKit.
  • DuctTape - KeyPath dynamicMemberLookup based syntax sugar for swift.
  • ReviewKit - A framework which helps gatekeep review prompt requests – using SKStoreReviewController – to users who have had a good time using your app by logging positive and negative actions.
  • SwiftBoost - Collection of Swift-extensions to boost development process.

back to top

User Consent

  • SmartlookConsentSDK - Open source SDK which provides a configurable control panel where user can select their privacy options and store the user preferences for the app.
  • PrivacyFlash Pro - Generate a privacy policy for your iOS app from its code

back to top

VR

  • VR Toolkit iOS - A sample project that provides the basics to create an interactive VR experience on iOS.
  • 360 VR Player - A open source, ad-free, native and universal 360 degree panorama video player for iOS.
  • simple360player - Free & ad-free 360 VR Video Player. Flat or Stereoscopic. In Swift 2.
  • Swifty360Player - iOS 360-degree video player streaming from an AVPlayer with Swift.

back to top

Walkthrough / Intro / Tutorial

  • Onboard - Easily create a beautiful and engaging onboarding experience with only a few lines of code.
  • EAIntroView - Highly customizable drop-in solution for introduction views.
  • MYBlurIntroductionView - A super-charged version of MYIntroductionView for building custom app introductions and tutorials.
  • BWWalkthrough - A class to build custom walkthroughs for your iOS App.
  • GHWalkThrough - A UICollectionView backed drop-in component for introduction views.
  • ICETutorial - A nice tutorial like the one introduced in the Path 3.X App.
  • JazzHands - Jazz Hands is a simple keyframe-based animation framework for UIKit. Animations can be controlled via gestures, scroll views, KVO, or ReactiveCocoa.
  • RazzleDazzle - A simple keyframe-based animation framework for iOS, written in Swift. Perfect for scrolling app intros.
  • Instructions - Easily add customizable coach marks into you iOS project.
  • SwiftyWalkthrough - The easiest way to create a great walkthrough experience in your apps, powered by Swift.
  • Gecco - Spotlight view for iOS.
  • VideoSplashKit - VideoSplashKit - UIViewController library for creating easy intro pages with background videos.
  • Presentation - Presentation helps you to make tutorials, release notes and animated pages.
  • AMPopTip - An animated popover that pops out a given frame, great for subtle UI tips and onboarding.
  • AlertOnboarding - A simple and handsome AlertView for onboard your users in your amazing world.
  • EasyTipView - Fully customisable tooltip view in Swift.
  • paper-onboarding - PaperOnboarding is a material design slider.
  • InfoView - Swift based simple information view with pointed arrow.
  • Intro - An iOS framework to easily create simple animated walkthrough, written in Swift.
  • AwesomeSpotlightView - Tool to create awesome tutorials or educate user to use application. Or just highlight something on screen. Written in Swift.
  • SwiftyOnboard - A simple way to add onboarding to your project.
  • WVWalkthroughView - Utility to easily create walkthroughs to help with user onboarding.
  • SwiftyOverlay - Easy and quick way to show intro / instructions over app UI without any additional images in real-time!
  • SwiftyOnboardVC - Lightweight walkthrough controller thats uses view controllers as its subviews making the customization endless.
  • Minamo - Simple coach mark library written in Swift.
  • Material Showcase iOS - An elegant and beautiful showcase for iOS apps.
  • WhatsNewKit - Showcase your awesome new app features.
  • OnboardKit - Customisable user onboarding for your iOS app.
  • ConcentricOnboarding - SwiftUI library for a walkthrough or onboarding flow with tap actions.

back to top

Websites

back to top

WebSocket

  • SocketRocket - A conforming Objective-C WebSocket client library.
  • socket.io-client-swift - Socket.IO-client for iOS/macOS.
  • SwiftWebSocket - High performance WebSocket client library for Swift, iOS and macOS.
  • Starscream - Websockets in swift for iOS and macOS.
  • SwiftSocket - simple socket library for apple swift lang.
  • Socks - Pure-Swift Sockets: TCP, UDP; Client, Server; Linux, macOS.
  • SwifterSockets - A collection of socket utilities in Swift for OS-X and iOS.
  • Swift-ActionCableClient - ActionCable is a new WebSocket server being released with Rails 5 which makes it easy to add real-time features to your app.
  • DNWebSocket - Object-Oriented, Swift-style WebSocket Library (RFC 6455) for Swift-compatible Platforms.

back to top

Tools

  • Shark - Swift Script that transforms the .xcassets folder into a type safe enum.
  • SBConstants - Generate a constants file by grabbing identifiers from storyboards in a project.
  • R.swift - Tool to get strong typed, autocompleted resources like images, cells and segues in your Swift project.
  • SwiftGen - A collection of Swift tools to generate Swift code (enums for your assets, storyboards, Localizable.strings and UIColors).
  • Blade - Generate Xcode image catalogs for iOS / macOS app icons, universal images, and more.
  • Retini - A super simple retina (2x, 3x) image converter.
  • Jazzy - Soulful docs for Swift & Objective-C.
  • appledoc - ObjectiveC code Apple style documentation set generator.
  • Laurine - Laurine - Localization code generator written in Swift. Sweet!
  • StoryboardMerge - Xcode storyboards diff and merge tool.
  • ai2app - Creating AppIcon sets from Adobe Illustrator (all supported formats).
  • ViewMonitor - ViewMonitor can measure view positions with accuracy.
  • abandoned-strings - Command line program that detects unused resource strings in an iOS or macOS application.
  • swiftenv - swiftenv allows you to easily install, and switch between multiple versions of Swift.
  • Misen - Script to support easily using Xcode Asset Catalog in Swift.
  • git-xcp - A Git plugin for versioning workflow of real-world Xcode project. fastlane's best friend.
  • WatchdogInspector - Shows your current framerate (fps) in the status bar of your iOS app.
  • Cichlid - automatically delete the current project's DerivedData directories.
  • Delta - Managing state is hard. Delta aims to make it simple.
  • SwiftLintXcode - An Xcode plug-in to format your code using SwiftLint.
  • XCSwiftr - An Xcode Plugin to convert Objective-C to Swift.
  • SwiftKitten - Swift autocompleter for Sublime Text, via the adorable SourceKitten framework.
  • Kin - Have you ever found yourself undoing a merge due to a broken Xcode build? Then Kin is your tool. It will parse your project configuration file and detect errors.
  • AVXCAssets-Generator - AVXCAssets Generator takes path for your assets images and creates appiconset and imageset for you in just one click.
  • Peek - Take a Peek at your application.
  • SourceKitten - An adorable little framework and command line tool for interacting with SourceKit.
  • xcbuild - Xcode-compatible build tool.
  • XcodeIssueGenerator - An executable that can be placed in a Run Script Build Phase that marks comments like // TODO: or // SERIOUS: as warnings or errors so they display in the Xcode Issue Navigator.
  • SwiftCompilationPerformanceReporter - Generate automated reports for slow Swift compilation paths in specific targets.
  • BuildTimeAnalyzer - Build Time Analyzer for Swift.
  • Duration - A simple Swift package for measuring and reporting the time taken for operations.
  • Benchmark - The Benchmark module provides methods to measure and report the time used to execute Swift code.
  • MBAssetsImporter - Import assets from Panoramio or from your macOS file system with their metadata to your iOS simulator (Swift 2.0).
  • Realm Browser - Realm Browser is a macOS utility to open and modify realm database files.
  • SuperDelegate – SuperDelegate provides a clean application delegate interface and protects you from bugs in the application lifecycle.
  • fastlane-plugin-appicon - Generate required icon sizes and iconset from a master application icon.
  • infer - A static analyzer for Java, C and Objective-C.
  • PlayNow - Small app that creates empty Swift playground files and opens them with Xcode.
  • Xtrace - Trace Objective-C method calls by class or instance.
  • xcenv - Groom your Xcode environment.
  • playgroundbook - Tool for Swift Playground books.
  • Ecno - Ecno is a task state manager built on top of UserDefaults in pure Swift 3.
  • ipanema - ipanema analyzes and prints useful information from .ipa file.
  • pxctest - Parallel XCTest - Execute XCTest suites in parallel on multiple iOS Simulators.
  • IBM Swift Sandbox - The IBM Swift Sandbox is an interactive website that lets you write Swift code and execute it in a server environment – on top of Linux!
  • FBSimulatorControl - A macOS library for managing and manipulating iOS Simulators
  • Nomad - Suite of command line utilities & libraries for sending APNs, create & distribute .ipa, verify In-App-Purchase receipt and more.
  • Cookiecutter - A template for new Swift iOS / tvOS / watchOS / macOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file.
  • Sourcery - A tool that brings meta-programming to Swift, allowing you to code generate Swift code.
  • AssetChecker 👮 - Keeps your Assets.xcassets files clean and emits warnings when something is suspicious.
  • PlayAlways - Create Xcode playgrounds from your menu bar
  • GDPerformanceView-Swift - Shows FPS, CPU usage, app and iOS versions above the status bar and report FPS and CPU usage via delegate.
  • Traits - Library for a real-time design and behavior modification of native iOS apps without recompiling (code and interface builder changes are supported).
  • Struct - A tool for iOS and Mac developers to automate the creation and management of Xcode projects.
  • Nori - Easier to apply code based style guide to storyboard.
  • Attabench - Microbenchmarking app for Swift with nice log-log plots.
  • Gluten - Nano library to unify XIB and it's code.
  • LicensePlist - A license list generator of all your dependencies for iOS applications.
  • AppDevKit - AppDevKit is an iOS development library that provides developers with useful features to fulfill their everyday iOS app development needs.
  • Tweaks - An easy way to fine-tune, and adjust parameters for iOS apps in development.
  • FengNiao - A command line tool for cleaning unused resources in Xcode.
  • LifetimeTracker - Find retain cycles / memory leaks sooner.
  • Plank - A tool for generating immutable model objects.
  • Lona - A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, images, and other artifacts.
  • XcodeGen - Command line tool that generates your Xcode project from a spec file and your folder structure.
  • iSimulator - iSimulator is a GUI utility to control the Simulator, and manage the app installed on the simulator.
  • Natalie - Storyboard Code Generator.
  • Transformer - Easy Online Attributed String Creator. This tool lets you format a string directly in the browser and then copy/paste the attributed string code into your app.
  • ProvisionQL - Quick Look plugin for apps and provisioning profile files.
  • xib2Storyboard - A tool to convert Xcode .xib to .storyboard files.
  • Zolang - A programming language for sharing logic between iOS, Android and Tools.
  • xavtool - Command-line utility to automatically increase iOS / Android applications version.
  • Cutter - A tool to generate iOS Launch Images (Splash Screens) for all screen sizes starting from a single template.
  • nef - A set of command line tools for Xcode Playground: lets you have compile-time verification of your documentation written as Xcode Playgrounds, generates markdown files, integration with Jekyll for building microsites and Carbon to export code snippets.
  • Pecker - CodePecker is a tool to detect unused code.
  • Speculid - generate Image Sets and App Icons from SVG, PNG, and JPEG files
  • SkrybaMD - Markdown Documentation generator. If your team needs an easy way to maintain and create documentation, this generator is for you.
  • Storyboard -> SwiftUI Converter - Storyboard -> SwiftUI Converter is a converter to convert .storyboard and .xib to SwiftUI.
  • Swift Package Index - Swift packages list with many information about quality and compatiblity of package.
  • Xcodes.app - The easiest way to install and switch between multiple versions of Xcode.
  • Respresso Image Converter - Multiplatform image converter for iOS, Android, and Web that supports pdf, svg, vector drawable, jpg, png, and webp formats.
  • Rugby - 🏈 Cache CocoaPods for faster rebuild and indexing Xcode project.
  • GetUniversal.link - Free Universal Link & Apple App Site Association testing tool.

back to top

Tutorials and Keynotes

back to top

UI Templates

back to top

Xcode

Extensions

  • CleanClosureXcode - An Xcode Source Editor extension to clean the closure syntax.
  • xTextHandler - Xcode Source Editor Extension Toolset (Plugins for Xcode 8).
  • SwiftInitializerGenerator - Xcode 8 Source Code Extension to Generate Swift Initializers.
  • XcodeEquatableGenerator - Xcode 8 Source Code Extension will generate conformance to Swift Equatable protocol based on type and fields selection.
  • Import - Xcode extension for adding imports from anywhere in the code.
  • Mark - Xcode extension for generating MARK comments.
  • XShared - Xcode extension which allows you copying the code with special formatting quotes for social (Slack, Telegram).
  • XGist - Xcode extension which allows you to send your text selection or entire file to GitHub's Gist and automatically copy the Gist URL into your Clipboard.
  • Swiftify - Objective-C to Swift online code converter and Xcode extension.
  • DocumenterXcode - Attempt to give a new life for VVDocumenter-Xcode as source editor extension.
  • Snowonder - Magical import declarations formatter for Xcode.
  • XVim2 - Vim key-bindings for Xcode 9.
  • Comment Spell Checker - Xcode extension for spell checking and auto correcting code comments.
  • nef - This Xcode extension enables you to make a code selection and export it to a snippets. Available on Mac AppStore.

back to top

Themes

back to top

Other Xcode

  • awesome-xcode-scripts - A curated list of useful xcode scripts.
  • Synx - A command-line tool that reorganizes your Xcode project folder to match your Xcode groups.
  • dsnip - Tool to generate (native) Xcode code snippets from all protocols/delegate methods of UIKit (UITableView, ...)
  • SBShortcutMenuSimulator - 3D Touch shortcuts in the Simulator.
  • awesome-gitignore-templates - A collection of swift, objective-c, android and many more langugages .gitignore templates.
  • swift-project-template - Template for iOS Swift project generation.
  • Swift-VIPER-Module - Xcode template for create modules with VIPER Architecture written in Swift 3.
  • ViperC - Xcode template for VIPER Architecture for both Objective-C and Swift.
  • XcodeCodeSnippets - A set of code snippets for iOS development, includes code and comments snippets.
  • Xcode Keymap for Visual Studio Code - This extension ports popular Xcode keyboard shortcuts to Visual Studio Code.
  • Xcode Template Manager - Xcode Template Manager is a Swift command line tool that helps you manage your Xcode project templates.
  • VIPER Module Template - Xcode Template of VIPER Module which generates all layers of VIPER.
  • Xcode Developer Disk Images - Xcode Developer Disk Images is needed when you want to put your build to the device, however sometimes your Xcode is not updated with the latest Disk Images, you could find them here for convenience.
  • Swift Macros 🚀 - A curated list of community-created Macros and associated learning resources.

back to top

 from https://github.com/vsouza/awesome-ios

-------------------------------

Open-Source iOS Apps

A collaborative list of open-source iOS, iPadOS, watchOS, tvOS and visionOS apps, your contribution is welcome 😄

Jump to

Apple TV

back to top

Apple Vision

back to top

Apple Watch

back to top

Browser

back to top

Calculator

back to top

Calendar

back to top

Color

back to top

Clock

back to top

Clone

back to top

Communication

back to top

Developer

back to top

GitHub

back to top

Terminal

back to top

Education

back to top

Emulator

back to top

Event

back to top

Extension

back to top

Content Blocking

back to top

Safari Extension

back to top

Today

Today Extensions or Widgets — back to top

Widget

Widget (iOS 14) — back to top

File

File Management — back to top

Finance

back to top

Cryptocurrency

back to top

Game

back to top

Cocos2d

https://cocos2d.org/back to top

SpriteKit

https://developer.apple.com/reference/spritekitback to top

Health

back to top

Contact Tracing

back to top

Contact Tracing Reference

back to top

  • ExposureNotificationApp: Inform people when they may have been exposed to COVID-19, using Apple's ExposureNotification framework
  • OpenCovidTrace: Uses own open-source framework for exposure tracing
    • 2020 swift
    • 20
  • TCN: Reference implementation of the TCN protocol (Temporary Contact Numbers)
    • 2021 swift
    • 16
  • TracePrivately: Uses Apple's Privacy-preserving ExposureNotification framework

Fitness

back to top

ResearchKit

https://www.apple.com/researchkit/back to top

Home

back to top

Location

back to top

Media

Image, video, audio, reading — back to top

Animoji

back to top

  • Animoji Studio: Make Animoji videos with unlimited duration and share anywhere
    • 2020 objc iphonex
    • 1177
  • SBSAnimoji: Uses Apple's private framework AvatarKit

Audio

back to top

Content

back to top

GIF

Mostly using https://giphy.com/back to top

Photo

back to top

Video

back to top

News

back to top

Hacker News

https://news.ycombinator.com/back to top

News API

https://newsapi.org/back to top

RSS

back to top

Official

back to top

Sample

back to top

Scan

back to top

Security

back to top

Password

back to top

Shopping

back to top

Social

back to top

Mastodon

https://joinmastodon.orgback to top

Tasks

back to top

Text

back to top

Notes

back to top

Timer

back to top

Travel

back to top

Weather

back to top

Misc

back to top

Appcelerator

back to top

Core Data

back to top

Firebase

https://firebase.google.com/back to top

Flutter

https://flutter.devback to top

GraphQL

back to top

Ionic

https://ionicframework.com/back to top

macOS

Cross platform projects — back to top

React Native

https://facebook.github.io/react-native/back to top

ReactiveCocoa

https://github.com/ReactiveCocoa/ReactiveCocoaback to top

Realm

https://realm.io/back to top

RxSwift

https://github.com/ReactiveX/RxSwiftback to top

SwiftUI

back to top

VIPER

https://www.objc.io/issues/13-architecture/viper/back to top

Xamarin

https://www.xamarin.com/back to top

Bonus

back to top

Thanks

This list was inspired by awesome-ios and awesome-swift

from https://github.com/dkhamsing/open-source-ios-apps

 -------

A collaborative list of awesome Swift libraries and resources.

In parternship with:

Codemotion

Contents

Guides

An awesome list of Swift related guides.

Newsletter

back to top

Official Guides

back to top

Style Guides

back to top

  • Airbnb - Airbnb's Official Style Guide.
  • Google - This style guide is based on Apple’s excellent Swift standard library style and also incorporates feedback from usage across multiple Swift projects within Google.
  • LinkedIn - LinkedIn's Official Style Guide.
  • Raywenderlich - Raywenderlich guide, a must read.

Third party Guides

back to top

Boilerplates

  • iOS project template - iOS project template with fastlane lanes, Travis CI jobs and GitHub integrations of Codecov, HoundCI for SwiftLint and Danger.
  • Model-View-Presenter template - A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern.
  • Swift Module Template - An opinionated starting point for awesome, reusable modules.

REPL

Editor Support

Support for your favorite editors.

Emacs

back to top

  • swift-mode - Emacs support, including partial flycheck error support.

Google Colaboratory

back to top

Vim

back to top

Benchmark

  • xcprofiler - Command line utility to profile compilation time.

Converters

  • Swiftify - Objective-C to Swift online code converter and Xcode extension.
  • Zolang 🐧 - A DSL for generating code in multiple programming languages.

Other Awesome Lists

Check out apps on these projects:

  • Awesome iOS Interview - List of the questions that helps you to prepare for the interview.
  • awesome-macOS - A curated list of awesome applications, softwares, tools and shiny things for macOS.
  • example-ios-apps - An amazing list for people who are beginners and learning ios development and for ios developers who need any example app or feature.
  • open-source-ios-apps - A collaborative list of open-source iOS Apps.
  • open-source-mac-os-apps - Awesome list of open source applications for macOS.

Dependency Managers

Dependency manager software for Swift.

  • Accio - A SwiftPM based dependency manager for iOS & Co. with improvements over Carthage.
  • Carthage - A new dependency manager.
  • CocoaPods - The most used dependency manager.
  • Mint - A package manager that installs and runs Swift command line tools.
  • swift-package-manager - SPM is the Package Manager for the Swift Programming Language.

Patterns

  • App Architecture - A sample Code of the App Architecture Book.
  • CleanArchitectureRxSwift - Example of Clean Architecture of iOS app using RxSwift.
  • Design-Patterns-In-Swift - Design Patterns.
  • GoodReactor - ⚛️ GoodReactor is a Redux-inspired Reactor framework for communication between the View Model, View Controller, and Coordinator.
  • Reactant - Reactant is a reactive architecture for iOS.
  • ReduxUI - Redux framework for easy use with SwiftUI.
  • SimplexArchitecture - A Simple architecture that decouples state changes from SwiftUI's View
  • Spin - Provides a versatile Feedback Loop implementation working with RxSwift, ReactiveSwift and Combine.
  • StateViewController - Stateful UIVIewController composition — the MVC cure for Massive View Controllers.
  • SwiftUI Atom Properties - A Reactive Data-Binding and Dependency Injection Library for SwiftUI x Concurrency.
  • The Composable Architecture - A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
  • Viperit - Viper Framework for iOS.

Misc

Miscellaneous Swift related projects

  • Beak - A command line interface for your Swift scripts.
  • BetterCodable - Level up your Codable structs through property wrappers. The goal of these property wrappers is to avoid implementing a custom init(from decoder: Decoder) throws and suffer through boilerplate.
  • CodableWrappers - A Collection of PropertyWrappers to make custom Serialization of Codable Types easy.
  • Fugen - A command line tool for exporting resources and generating code from your Figma files.
  • MemberwiseInit - @MemberwiseInit is a Swift Macro that can more often provide your intended init, while following the same safe-by-default semantics of Swift’s memberwise initializers.
  • Model2App - Turn your data model into a working CRUD app.
  • Surmagic - Create XCFrameworks with ease! A Command Line Tool to create XCFramework for multiple platforms at one shot! iOS, Mac Catalyst, tvOS, macOS, and watchOS.
  • SwagGen 🐧 - A command line tool for generating a REST API from a Swagger spec based off Stencil templates.
  • Swiftbrew - Homebrew for Swift packages.
  • SwiftGen - A suite of tools to auto-generate code for various assets of your project.
  • SwiftKit - Start your next Open-Source Swift Framework 📦.
  • SwiftPlate - Easily generate cross platform framework projects from the command line.
  • Toybox - Xcode Playground management made easy.
  • Tuist - An open source command line tool to create, maintain and interact with your Xcode projects at scale.
  • xc - A tool to open the Xcode project file by the specified version.
  • xcbeautify - Little beautifier tool for xcodebuild.
  • XcodeGen - Tool for generating Xcode projects from a YAML file and your project directory.
  • xcodeproj - A library to read, update and write Xcode projects and workspaces.

Libs

Here you can find a list of snippets and libs for your Swift projects.

Accessibility

back to top

  • Capable - Keep track of accessibility settings, leverage high contrast colors, and use scalable fonts to enable users with disabilities to use your app.

AI

Libs for AI based projects (Machine Learning, Neural Networks etc). back to top

  • CoreML-Models - A collection of unique Core ML Models.
  • DL4S - Automatic differentiation, fast tensor operations and dynamic neural networks from CNNs and RNNs to transformers.
  • OpenAI - Swift package for OpenAI public API.

Algorithm

back to top

  • Algorithm - A toolset for writing algorithms and probability models.
  • BTree - Fast sorted collections for Swift using in-memory B-trees.
  • swift-algorithm-club - Algorithms and data structures, with explanations.
  • SwiftLCS 🐧 - implementation of the longest common subsequence (LCS) algorithm.

Analytics

Analytics related libraries to easily track your app usage back to top

  • Aptabase - Open Source, Privacy-First and Simple Analytics for Swift Apps.
  • Tracker Aggregator - Versatile analytics abstraction layer.
  • Umbrella - Analytics abstraction layer.

Animation

Libs to help with animation back to top

  • Advance - A powerful animation framework for iOS, tvOS, and OS X.
  • AnimatedGradient - Animated linear gradient library written with SwiftUI
  • ChainPageCollectionView - Fancy two-level collection view layout and animation.
  • CocoaSprings - Interactive spring animations for iOS/macOS.
  • Comets - Animating Particles.
  • Ease - Animate everything with Ease.
  • EasyAnimation - A library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level.
  • Elephant - Elegant SVG animation kit.
  • FlightAnimator - Natural Blocks Based Core Animation Framework.
  • Gemini - Gemini is rich scroll based animation framework.
  • IBAnimatable - Design and prototype UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.
  • Interpolate - Interpolation framework for creating interactive gesture-driven animations.
  • lottie-ios - An iOS library to natively render After Effects vector animations.
  • Pastel - Gradient animation effect like Instagram.
  • Poi - Poi makes you use card UI like tinder UI .You can use it like tableview method.
  • Presentation - A library to help you to make tutorials, release notes and animated pages.
  • Pulsator - Pulse animation for iOS.
  • Sica - Simple Interface Core Animation. Run type-safe animation sequencially or parallelly.
  • Spring - A library to simplify iOS animations.
  • SpriteKitEasingSwift - Better Easing for SpriteKit.
  • spruce-ios - Choreograph animations on the screen.
  • Stellar - A Physical animation library.
  • TheAnimation - Type-safe CAAnimation wrapper. It makes preventing to set wrong type values.
  • ViewAnimator - Brings your UI to life with just one line.
  • YapAnimator - Your fast and friendly physics-based animation system.

API

Quick libs to get access to third party API services back to top

App Routing

Internal app routing systems. back to top

  • Appz - Launch external apps and deeplink with ease.
  • Crossroad - 🚍 Crossroad is an URL router focused on handling Custom URL Schemes.
  • LightRoute - Routing between VIPER modules.
  • Linker - Lightweight way to handle internal and external deeplinks for iOS.
  • MonarchRouter - Declarative state- and URL-based router. Complex automatic View Controllers hierarchy transitions. Time-tested server-side conventions.
  • RxFlow - RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
  • SwiftCurrent - Manage complex workflows wherever Swift can be built. It comes with built-in support for UIKit, Storyboards, and SwiftUI.
  • SwiftRouter - A URL Router for iOS.
  • URLNavigator - Elegant URL Routing.

App Store

Libs to help with apple app store, in app purchases and receipt validation. back to top

  • Apphud - Lightweight library to easily handle auto-renewable subscriptions with no backend required.
  • AppReview - A tiny library to request review on the AppStore via SKStoreReviewController.
  • InAppPurchase - A Simple, Lightweight and Safe framework for In App Purchase.
  • merchantkit - A modern In-App Purchases management framework for iOS.
  • SwiftyStoreKit - Lightweight In App Purchases framework.

Audio

Libs to work with audio back to top

  • AudioKit - Powerful audio synthesis, processing and analysis, without the steep learning curve.
  • AudioPlayer - A wrapper around AVPlayer with some cool features.
  • AudioPlayerSwift - AudioPlayer is a simple class for playing audio (basic and advanced usage) in iOS, OS X and tvOS apps.
  • Beethoven - An audio processing library for pitch detection of musical signals.
  • FDSoundActivatedRecorder - Start recording when the user speaks.
  • FDWaveformView - An easy way to display an audio waveform in your app.
  • ModernAVPlayer - Persistence AVPlayer to resume playback after bad network connection even in background mode.
  • MusicKit - A framework for composing and transforming music.
  • Soundable - Soundable allows you to play sounds, single and in sequence, in a very easy way.
  • SwiftAudioPlayer - Simple audio player for iOS that streams and performs realtime audio manipulations with AVAudioEngine.
  • SwiftySound - Simple library that lets you play sounds with a single line of code.
  • voice-overlay-ios - An overlay that gets your user’s voice permission and input as text in a customizable UI.

Augmented Reality

back to top

  • ARHeadsetKit - High-level framework for using $5 Google Cardboard to replicate Microsoft Hololens.
  • ARKit-CoreLocation - Combines the high accuracy of AR with the scale of GPS data.
  • ARKit-Navigation - Navigation in augmented reality with MapKit.
  • ARVideoKit - Capture & record ARKit videos, photos, Live Photos, and GIFs.

Authentication

Easy way to manage auth in your apps. back to top

  • Cely - A Plug-n-Play login framework.
  • LinkedInSignIn - Simple view controller to log in and retrieve an access token from LinkedIn.
  • LoginKit - LoginKit is a quick and easy way to add a Login/Signup UX to your iOS app.
  • ReCaptcha - [In]visible ReCaptcha for iOS.
  • SpotifyLogin - Authenticate with the Spotify API.

Bots

Libs to build bot back to top

  • Telegram Bot SDK 🐧 - Unofficial SDK.
  • Telegrammer 🐧 - Open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO which help to demonstrate excellent performance.

Cache

back to top

  • AwesomeCache - Manage cache easy.
  • Cache - Nothing but Cache.
  • CachyKit - A Caching Library that can cache JSON, Image, Zip or AnyObject with expiry date/TTYL and force refresh.
  • Cachyr - A small key-value data cache for iOS, macOS and tvOS.
  • Carlos - A simple but flexible cache.
  • EVURLCache - If you want to make your app still works when it's offline.
  • MemoryCache - Type-safe memory cache.

Chart

back to top

  • Charts - Beautiful charts for iOS/tvOS/OSX (port of MPAndroidChart).
  • ChartView - Swift package for displaying beautiful charts effortlessly
  • FLCharts - Easy to use and highly customizable charts library for iOS.
  • ScrollableGraphView - Adaptive scrollable graph view for iOS to visualise simple discrete datasets.
  • SwiftChart - A simple line and area charting library for iOS. Supports multiple series, partially filled series and touch events.
  • SwiftCharts - Highly customizable charts for iOS.
  • SwiftUICharts - A charts / plotting library for SwiftUI. Works on macOS, iOS, watchOS, and tvOS and has accessibility and Localization features built in.
  • TKRadarChart - A customizable radar chart.

Chat

Libs to get access to build chat app back to top

  • Chatto - A lightweight framework to build chat applications.
  • ExyteChat - SwiftUI Chat UI framework with fully customizable message cells, input view, and a built-in media picker
  • InputBarAccessoryView - A simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments.
  • MessageKit - A community-driven replacement for JSQMessagesViewController.
  • MessengerKit - A UI framework for building messenger interfaces.
  • Real-time Chat with Firebase - Functional real-time chat app with Firebase Firestore using MessageKit.

Colors

Interesting snippets related to color management and utility. back to top

  • ChromaColorPicker - An intuitive and fun iOS color picker.
  • ColorKit - Advanced color manipulation for iOS.
  • DynamicColor - An extension to manipulate colors easily.
  • Gradients - A curated collection of splendid 180+ gradients.
  • Hue - Hue is the all-in-one coloring utility that you'll ever need.
  • PrettyColors - Styles and colors text in the Terminal with ANSI escape codes. Conforms to ECMA Standard 48.
  • SheetyColors - An action sheet styled color picker for iOS.
  • SwiftGen-Colors - A tool to auto-generate enums for your UIColor constants.
  • SwiftHEXColors - HEX color handling as an extension for UIColor.
  • UIColor-Hex-Swift - Hex to UIColor converter.
  • UIGradient - A simple and powerful library for using gradient layer, image, color.

Command Line

Create command line applications. back to top

  • Ashen - A framework for writing terminal applications in Swift. Based on The Elm Architecture.
  • Commander 🐧 - Compose beautiful command line interfaces.
  • Guaka 🐧 - The smart and beautiful (POSIX compliant) command line framework.
  • LineNoise 🐧 - A zero-dependency replacement for readline.
  • nef - A set of command line tools that lets you have compile time verification of your documentation written as Xcode Playground.
  • Progress.swift 🐧 - Add beautiful progress bars to your command line.
  • Swift Argument Parser - Straightforward, type-safe argument parsing for Swift.
  • SwiftCLI 🐧 - A powerful framework that can be used to develop a CLI.
  • Swiftline - A set of tools to help you create command line applications.
  • SwiftShell - A library for creating command-line applications and running shell commands.
  • SwiftyTextTable 🐧 - A lightweight library to generate text tables.

Concurrency

Easier ways to work with concurrency. back to top

  • async+ 🐧 - A chainable interface for Swift 5.5's async/await.
  • AsyncNinja - A complete set of concurrency and reactive programming primitives.
  • Futures 🐧 - Lightweight promises for iOS, macOS, tvOS, watchOS, and server-side.
  • GroupWork 🐧 - Easy concurrent, asynchronous tasks.
  • Hydra - Promises & Await - Write better async code.
  • Queuer 🐧 - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
  • SwiftCoroutine 🐧 - Coroutines for iOS, macOS and Linux.
  • Throttler - Throttle massive number of asynchronous inputs in a single drop of one line API.
  • Venice 🐧 - Communicating sequential processes (CSP), Linux ready.

Currency

back to top

Data Management

back to top

CBOR

Concise Binary Object Representation. back to top

  • CBORCoding 🐧 - Easy CBOR encoding and decoding for iOS, macOS, tvOS and watchOS.

Core Data

No more pain with Core Data, here are some interesting libs to handle data management. back to top

  • AERecord - Super awesome Core Data wrapper library for iOS.
  • CloudCore - Robust CloudKit synchronization: offline editing, relationships, shared and public databases, and more.
  • CoreStore - simple and elegant way to handle Core Data.
  • DataKernel - DataKernel is a minimalistic wrapper around Core Data stack to ease persistence operations. No external dependencies.
  • Graph - An elegant data-driven framework for Core Data.
  • JSQCoreDataKit - A swifter Core Data stack.
  • JustPersist - Easiest and safest way to do persistence on iOS with Core Data support out of the box.
  • QueryKit - An easy way to play with Core Data filtering.
  • Skopelos - A minimalistic, thread safe, non-boilerplate and super easy to use version of Active Record on Core Data.
  • SugarRecord - Helps with Core Data and Realm.

CSV

Helpful libraries to parse from and serialize to comma-separated value representations. back to top

  • CodableCSV 🐧 - Read and write CSV files row-by-row or through Swift's Codable interface.
  • CSVParser 🐧 - Fast parser for CSV.

Firebase

back to top

  • Ballcap - Ballcap is a database schema design framework for Cloud Firestore.

GraphQL

back to top

JSON

Struggling using json data? Here are some interesting ways to handle it. back to top

  • AlamofireObjectMapper - An Alamofire extension which converts JSON response data into objects using ObjectMapper.
  • Alembic - Functional JSON parsing, mapping to objects, and serialize to JSON.
  • Argo - JSON parsing library.
  • Arrow - Elegant JSON Parsing.
  • Decodable 🐧 - JSON parsing.
  • Elevate - JSON parsing framework that makes parsing simple, reliable and composable.
  • EVReflection - Reflection based JSON encoding and decoding. Including support for NSDictionary, NSCoding, Printable, Hashable and Equatable.
  • HandyJSON - A handy JSON-object serialization/deserialization library.
  • Himotoki - A type-safe JSON decoding library.
  • JASON - JSON parsing with outstanding performances and convenient operators.
  • JSONHelper - Lightning fast JSON deserialization and value conversion library for iOS & OS X.
  • JSONNeverDie - Auto reflection tool from JSON to Model, user friendly JSON encoder / decoder, aims to never die.
  • ObjectMapper - JSON object mapper.
  • PMJSON - JSON encoding/decoding library.
  • Sextant 🐧 - High performance JSONPath queries
  • SwiftyJSON - A lib for JSON with error handling.
  • SwiftyJSONAccelerator - macOS app to generate Swift 5 models for JSON (with Codeable).

Key Value Store

back to top

  • Default - Modern interface to UserDefaults + Codable support.
  • Defaults - Strongly-typed UserDefaults with support for Codable and key observation.
  • DefaultsKit - Simple, Strongly Typed UserDefaults for iOS, macOS and tvOS.
  • Prephirences - Manage application preferences, NSUserDefaults, iCloud, Keychain and more.
  • SecureDefaults - A lightweight wrapper over UserDefaults & NSUserDefaults with an extra AES-256 encryption layer.
  • Storez - Safe, statically-typed, store-agnostic key-value storage.
  • SwiftStore - A Key-Value store backed by LevelDB.
  • SwiftyUserDefaults - Cleaner, nicer syntax for NSUserDefaults.
  • Zephyr - Effortlessly synchronize NSUserDefaults over iCloud.

MongoDB

back to top

  • MongoKitten 🐧 - MongoDB Connector.
  • Perfect-MongoDB 🐧 - A stand-alone wrapper around the mongo-c client library, enabling access to MongoDB servers.

Multi Database

Data management layers that involve multiple sources. back to top

  • ModelAssistant - Elegant library to manage the interactions between view and model.
  • PersistenceKit - Store and retrieve Codable objects to various persistence layers, in a couple lines of code!
  • Shallows - Your lightweight persistence toolbox.

ORM

back to top

  • fluent 🐧 - Simple ActiveRecord implementation.
  • Perfect-CRUD 🐧 - CRUD is an object-relational mapping (ORM) system using Codable protocol.

Other Data

Other ways to persist data back to top

  • CoreXLSX - Excel spreadsheet (XLSX) format support.
  • Disk - Delightful framework for iOS to easily persist structs, images, and data.
  • EVCloudKitDao - Simplified access to CloudKit with support for subscriptions and local caching.
  • KeyPathKit - KeyPathKit provides a seamless syntax to manipulate data using typed keypaths.
  • LeetCode-Swift - Solutions to LeetCode interview questions.
  • Pencil - Write any value to file.
  • StorageManager - Safe and easy way to use FileManager as Database.

Realm

back to top

  • Realm - Realm is a mobile database: a replacement for Core Data & SQLite.
  • RealmWrapper - Safe and easy wrappers for RealmSwift.
  • Unrealm - Unrealm enables you to easily store Swift native Classes, Structs and Enums into Realm.

SQL drivers

back to top

  • MySQL Swift 🐧 - MySQL client library.
  • Perfect-MySQL 🐧 - A stand-alone wrapper around the MySQL client library, enabling access to MySQL servers.
  • Perfect-PostgreSQL 🐧 - A stand-alone wrapper around the libpq client library, enabling access to PostgreSQL servers.

SQLite

Are you interested in storing your app data using SQLite? Here are some interesting resources. back to top

TOML

Tom's Obvious, Minimal Language. back to top

XML

If you prefer to manage XML data formatted entries, here are some helpful libs back to top

  • AEXML - xml wrapper.
  • CheatyXML - A powerful framework designed to manage XML easily.
  • SwiftyXML - The most swifty way to deal with XML.
  • SWXMLHash - Simple XML parsing.
  • XMLCoder - XMLEncoder & XMLDecoder based on Codable protocols from the standard library.
  • XMLMapper - A simple way to map XML to Objects.

YAML

back to top

  • YamlSwift - Load YAML and JSON documents.
  • Yams 🐧 - Sweet YAML parser.

ZIP

back to top

  • Zip - Framework for zipping and unzipping files.
  • Zip Foundation - A library to create, read and modify ZIP archive files.

Date

Handle date formatting easily. back to top

  • AnyDate - Date & Time API inspired from Java 8 DateTime API.
  • Chronology - Building a better date/time library.
  • DateHelper - Simple date helper.
  • Datez - Library for dealing with NSDate, NSCalendar, NSDateComponents, and NSTimeInterval.
  • Datify - Easypeasy date functions.
  • NVDate - Date extension library.
  • SwiftDate - Easy NSDate Management.
  • Time - Type-safe time calculations, powered by generics.
  • Timepiece - Intuitive NSDate extensions.
  • TrueTime.swift - Get the true current time impervious to device clock time changes (NTP library).
  • TypedDate - Enhancing Date handling by enabling type-level customization of date components

Dependency Injection

Dependency injection libs back to top

  • Cleanse - A Lightweight Dependency Injection Framework by Square.
  • Corridor - A Coreader-like Dependency Injection μFramework.
  • Deli - Deli is an easy-to-use Dependency Injection(DI).
  • DIKit - Dependency Injection Framework for Swift, inspired by KOIN.
  • Dip - A simple Dependency Injection Container.
  • DITranquillity - Dependency injection framework with tranquility.
  • Locatable - A micro-framework that leverages Property Wrappers to implement the Service Locator pattern.
  • Pure - A way to do a dependency injection without a DI container.
  • Swinject - A dependency injection framework.
  • Typhoon - Dependency injection toolkit.
  • Weaver - A declarative, easy-to-use and safe Dependency Injection framework.

Device

A collection of libs to recognize your device. back to top

  • Device - Light weight tool for detecting the current device and screen size.
  • Device.swift - Super-lightweight library to detect used device.
  • DeviceKit - DeviceKit is a value-type replacement of UIDevice.
  • Deviice - Swift library to easily check the current device and some more info about it.
  • Luminous - Get everything you need to know about the device.
  • Thingy - A modern device detection and querying library.
  • UIDeviceComplete - UIDevice extensions that fill in the missing pieces.

Documentation

Generate documentation for Swift code back to top

  • jazzy - Soulful docs.
  • SourceDocs - Generate Markdown reference documentation that lives with your code.

Email

back to top

Embedded Systems

Build your embedded Linux projects on a RaspberryPi, BeagleBone, C.H.I.P. and other boards. back to top

  • SwiftyGPIO 🐧 - Interact with Linux GPIO/SPI/PWM on ARM.

Peripherals

Interact with specific external peripherals. back to top

Events

Alternatives to NSNotificationCenter, Key-Value-Observation, or delegation. back to top

  • Bond - Binding framework.
  • Combinative - UI event handling using Apple's combine framework.
  • EmitterKit - Implementation of event emitters and listeners.
  • FutureKit - Future/Promises Library.
  • Katana - Write apps a la React and Redux.
  • LightweightObservable - A lightweight implementation of an observable sequence that you can subscribe to.
  • NoticeObserveKit - NoticeObserveKit is type-safe NotificationCenter wrapper that associates notice type with info type.
  • Notificationz - Helping you own NSNotificationCenter by providing a simple, customizable adapter.
  • Observable - The easiest way to observe values.
  • OneWay - State management with unidirectional data flow.
  • OpenCombine - Open source implementation of Apple's Combine framework for processing values over time.
  • PMKVObserver - Modern thread-safe and type-safe key-value observing.
  • PromiseKit - Async promise programming lib.
  • ReactiveCocoa - ReactiveCocoa (RAC) is a Cocoa framework inspired by Functional Reactive Programming. It provides APIs for composing and transforming streams of values over time.
  • ReactorKit - A framework for reactive and unidirectional application architecture.
  • ReSwift - Unidirectional Data Flow.
  • RxSwift - Microsoft Reactive Extensions (Rx).
  • Signals - Replaces delegates and notifications.
  • SwiftEventBus - A publish/subscribe event bus optimized for iOS.
  • Tempura - A holistic approach to iOS development, inspired by Redux and MVVM.
  • Tokamak - React-like declarative API for building native UI components with easy to use one-way data binding.
  • Tomorrowland - Lightweight Promises.
  • TopicEventBus - Publish–subscribe design pattern implementation framework, with ability to publish events by topic.
  • VueFlux - Unidirectional Data Flow State Management Architecture - Inspired by Vuex and Flux.
  • When - A lightweight implementation of Promises.

Files

back to top

  • ExtendedAttributes - Manage extended attributes for files and folders.
  • FileKit - Simple and expressive file management.
  • FileProvider - FileManager replacement for Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive/SMB2) files for iOS/tvOS and macOS.
  • KZFileWatchers - A micro-framework for observing file changes, both local and remote.
  • PathKit 🐧 - Effortless path operations.
  • Pathos 🐧 - Efficient Unix file management.

Fonts

A collection of font related snippets. back to top

  • FontAwesome.swift - Use FontAwesome in your projects.
  • FontBlaster - Programmatically load custom fonts into your iOS app.
  • Inkwell - An inkwell to use custom fonts on the fly.
  • IoniconsKit - Use ionicons as UIImage / UIFont in your projects.
  • OcticonsKit - Use Octicons as UIImage / UIFont in your projects.
  • SwiftIconFont - Fontawesome, Iconic, Ionicons, Octicon ports.
  • SwiftIcons - Library for Font Icons: dripicons, emoji, font awesome, icofont, ionicons, linear icons, map icons, material icons, open iconic, state, weather.
  • SwiftUI-FontIcon - Font icons for SwiftUI: font awesome, ionicons, material icons.
  • SYSymbol - All the SFSymbols at your fingertips.
  • UIFontComplete - Font management (System & Custom) for iOS and tvOS.

Game Engine

back to top

  • glide engine - SpriteKit and GameplayKit based engine for making 2d games, with practical examples and tutorials.
  • Raylib for Swift 🐧 - A Cross-Platform Swift package for Raylib. Builds Raylib from source so no need to fiddle with libraries. Just add as a dependency in you game package and go!

2D

back to top

Games

back to top

Gesture

back to top

  • ShowTime - Show off your iOS taps and gestures for demos and videos with just one line of code.
  • SwiftyGestureRecognition - UIGestureRecognizers in Xcode Playgrounds.
  • SwipyCell - UITableViewCell implementing swiping to trigger actions (known from the Mailbox App).
  • Tactile - A safer and more idiomatic way to respond to gestures and control events.

Hardware

A category dedicated to hardware related libs back to top

3D Touch

Easy handle new 3D Touch / Force Touch feature thanks to these libs. back to top

Bluetooth

Wrappers around CoreBluetooth back to top

  • BlueCap - Wrapper around CoreBluetooth and much more.
  • Bluejay - A simple framework for building reliable Bluetooth LE apps.
  • BluetoothKit - Easily communicate between iOS/OSX devices using BLE.
  • RxBluetoothKit - iOS & OSX Bluetooth library for RxSwift.
  • SwiftyBluetooth - Simple and reliable closure based wrapper around CoreBluetooth.

Camera

Awesome camera libs back to top

  • CameraBackground - Show camera layer as a background to any UIView.
  • CameraKit-iOS - Massively increase camera performance and ease of use in your next project.
  • FDTake - Easily take a photo or video or choose from library.
  • Fusuma - Instagram-like photo browser and a camera feature.
  • MediaPicker - SwiftUI customizable media picker - supports camera and gallery with albums
  • NextLevel - Rad Media Capture.
Barcode

Barcode, QR-code, other code readers back to top

Haptic Feedback

Libraries that involve the use of Haptic Feedback back to top

  • Haptica - Easy Haptic Feedback Generator.

iBeacon

Interested in using iBeacon in your Swift project? Here some interesting resources. back to top

Sensors

Manage your device sensors in a faster and easier way back to top

Images

An interesting list of image related libs.. back to top

  • Agrume - A lemony fresh iOS image viewer.
  • AlamofireImage - AlamofireImage is an image component library for Alamofire.
  • APNGKit - High performance and delightful way to play with APNG format in iOS.
  • ATGMediaBrowser - Image slide-show viewer with multiple predefined transition styles, and with ability to create new transitions with ease.
  • AXPhotoViewer - An iPhone/iPad photo gallery viewer, useful for viewing a large (or small!) number of photos.
  • BlockiesSwift - Unique blocky identicons/profile picture generator.
  • Brightroom - An image editor and engine using CoreImage.
  • CTPanoramaView - A library that displays spherical or cylindrical panoramas with touch or motion based controls.
  • DTPhotoViewerController - A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer.
  • FacebookImagePicker - Facebook album photo picker.
  • FaceCrop - Detect and center faces in your images using Apple’s Vision Framework.
  • FlexibleImage - A simple way to play with images.
  • FMPhotoPicker - A modern, simple and zero-dependency photo picker with an elegant and customizable image editor.
  • gifu - Highly performant animated GIF support for iOS.
  • GPUImage 2 - GPUImage 2 is a BSD-licensed framework for GPU-accelerated video and image processing.
  • GPUImage 3 - GPUImage 3 is a BSD-licensed framework for GPU-accelerated video and image processing using Metal.
  • HanekeSwift - A lightweight generic cache for iOS with extra love for images.
  • Harbeth - Metal API for GPU accelerated Graphics and Video and Camera filter framework.
  • ImageDetect - Detect and crop faces, barcodes and texts in image with iOS 11 Vision API.
  • ImageLoader - A lightweight and fast image loader for iOS.
  • ImageScout - Implementation of fastimage - supports PNG, GIF, and JPEG.
  • ImageViewer - An image viewer à la Twitter.
  • ImgixSwift - Easily update image urls to be fast and responsive.
  • JLStickerTextView - A UIImageView allow you to add multiple Label (multiple line text support) on it, you can edit, rotate, resize the Label as you want with one finger ,then render the text on Image.
  • Kanvas - A iOS library for adding effects, drawings, text, stickers, and making GIFs from existing media or the camera.
  • Kingfisher - Image download and caching.
  • LetterAvatarKit - A UIImage extension that generates letter-based avatars.
  • Lightbox - A convenient and easy to use image viewer for your iOS app.
  • MapleBacon - Image download and caching library.
  • MCScratchImageView - A custom ImageView that is used to cover the surface of other view like a scratch card, user can swipe the mulch to see the view below.
  • Moa - An image download extension of the image view for iOS, tvOS and macOS.
  • Nuke - Advanced framework for loading, caching, processing, displaying and preheating images.
  • PassportScanner - Scan the MRZ code of a passport and extract the first name, last name, passport number, nationality, date of birth, expiration date and personal number.
  • Rough - Rough lets you draw in a sketchy, hand-drawn-like, style.
  • Sharaku - Image filtering UI library like Instagram.
  • Snowflake - Work with SVG.
  • SwiftDraw - Library that converts SVG images to UIImage, NSImage and generates CoreGraphics source code.
  • SwiftGen-Assets - A tool to auto-generate enums for all your UIImages from your Assets Catalogs.
  • SwiftSVG - A single pass SVG parser with multiple interface options (String, NS/UIBezierPath, CAShapeLayer, and NS/UIView).
  • SwiftWebImage - 🚀SwiftUI Image downloader with performant LRU mem/disk cache.
  • SwiftyGif - High performance GIF engine.
  • TinyCrayon - A smart and easy-to-use image masking and cutout SDK for mobile apps.
  • Toucan - Image processing api.
  • UIImageColors - iTunes style color fetcher for UIImage.
  • YPImagePicker - Instagram-like image picker & filters for iOS.
  • ZImageCropper - Crop image in any shape.

Key Value Coding

Libraries for key-value coding back to top

Keyboard

Do you want to create your own customized keyboard? Here are some interesting resources back to top

  • IHKeyboardAvoiding - An elegant solution for keeping any UIView visible when the keyboard is being shown. No UIScrollView required.
  • IQKeyboardManager - Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.
  • ISEmojiView - Emoji Keyboard for iOS
  • KeyboardHideManager - Codeless manager to hide keyboard by tapping on views for iOS.
  • KeyboardShortcuts - Add user-customizable global keyboard shortcuts to your macOS app. Includes a Cocoa and SwiftUI component.
  • Ribbon - 🎀 A simple cross-platform toolbar/custom input accessory view library for iOS & macOS.
  • Typist - Small, drop-in UIKit keyboard manager for iOS apps-helps manage keyboard's screen presence and behavior without notification center.

Kit

Libraries for coding with a simplified API back to top

  • BFKit-Swift 🐧 - A collection of useful classes, structs and extensions to develop Apps faster.
  • C4iOS - Harnesses the power of native iOS programming with a simplified API.
  • ContactsChangeNotifier - Which contacts changed outside your app? Better CNContactStoreDidChange notification: Get real changes, without the noise.

Layout

Libs to help you with layout. back to top

  • AnimatedTabBar - A tabbar with a number of preset animations.
  • BrickKit - Create complex and responsive layouts in a simple way.
  • CGLayout 🐧 - Powerful autolayout framework, that can manage UIView(NSView), CALayer, not rendered views and etc. Provides placeholders.
  • FlexLayout - Nice and clean interface to the highly optimized Facebook yoga Flexbox implementation.
  • FrameLayoutKit - This framework supports complex layouts, including chaining and nesting layout with simple and intuitive operand & DSL syntax.
  • Grid - The most powerful Grid container missed in SwiftUI.
  • LayoutLess - Write less UI Code.
  • Neon - A powerful programmatic UI layout framework.
  • PinLayout - Fast Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. [iOS/macOS/tvOS]
  • Scaling Header Scroll View - A scroll view with a sticky header which shrinks as you scroll. Written with SwiftUI.
  • Static - A simple static table views for iOS.
  • Stevia - Elegant view layout for iOS.

Auto Layout

Bored of using storyboard? Give a try to declarative auto layout libs. back to top

  • Bamboo - Auto Layout (and manual layout) in one line.
  • Cartography - Declarative auto layout lib for your project.
  • Cassowary - A linear constraint solving library using the same algorithm as AutoLayout.
  • Cupcake - An easy way to create and layout UI components for iOS.
  • DeviceLayout - AutoLayout can be set differently for each device.
  • EasyPeasy - Auto Layout made easy.
  • EasySwiftLayout - Lightweight Swift framework for Apple's Auto-Layout.
  • EZLayout - An easier and faster way to code Autolayout.
  • FixFlex - Declarative autolayout based on NSLayoutAnchor, swifty reimagination of VFL, alternative to UIStackView.
  • HypeUI - 🌺 HypeUI is a implementation of Apple's SwiftUI DSL style based on UIKit
  • KVConstraintKit - An Impressive Autolayout DSL for iOS, tvOS & OSX.
  • MisterFusion - DSL for AutoLayout, supports Size Class.
  • Mortar - A concise but flexible DSL for creating Auto Layout constraints and adding subviews.
  • NorthLayout - Fast path to layout using Visual Format Language (VFL) with extended syntax.
  • PureLayout - The ultimate API for iOS & OS X Auto Layout.
  • SnapKit - Autolayout DSL for iOS & OS X.
  • Swiftstraints - Powerful auto-layout framework that lets you write constraints in one line of code.
  • TinyConstraints - TinyConstraints is the syntactic sugar that makes Auto Layout sweeter for human use.

Localization

Frameworks that helps with localizing your app back to top

  • BartyCrouch - Incrementally update/translate your Strings files from Code and Storyboards/XIBs.
  • CrowdinSDK - Delivers all new translations from Crowdin project to the application immediately.
  • IBLocalizable - Localize your views directly in Interface Builder with IBLocalizable.
  • L10n-swift - Localization of an application with ability to change language "on the fly" and support for plural forms in any language.
  • LocalizationKit - Realtime dynamic localization of your app with remote management so you can manage maintain and deploy translations without resubmitting app.
  • Localize - Localize apps using e.g. regular expressions in Localizable.strings.
  • Localize-Swift - Localize apps using e.g. regular expressions in Localizable.strings.
  • Locheck - Validate .strings and .stringsdict files for errors
  • StringSwitch - Easily convert iOS .strings files to Android strings.xml format and vice versa.
  • SwiftGen-L10n - A tool to auto-generate enums for all your Localizable.strings keys (with appropriate associated values if those strings contains printf-format placeholders like %@).
  • Translatio - Super lightweight library that helps you to localize strings, even directly in storyboards.

Location

back to top

  • AsyncLocationKit - Wrapper for Apple CoreLocation framework with Modern Concurrency Swift (async/await).
  • STLocationRequest - An elegant and simple 3D Flyover Location Request Screen.

Logging

Utilities for writing to and reading from the device log back to top

  • AEConsole - Customizable Console UI overlay with debug log on top of your iOS App.
  • CleanroomLogger - Configurable and extensible high-level logging API that is simple, lightweight and performant.
  • Duration 🐧 - Lightweight logging library focused on reporting timings for operations.
  • Gedatsu - Provide readable format about AutoLayout error console log.
  • HeliumLogger 🐧 - IBM's lightweight logging framework.
  • Printer - A fancy logger for your next app.
  • Puppy 🐧 - A flexible logging library that supports multiple transports and platforms.
  • QorumLogs - Logging Utility for Xcode & Google Docs.
  • Rainbow 🐧 - Delightful console output.
  • SwiftyBeaver 🐧 - Multi-platform logging during development & release.
  • TinyConsole - A tiny log console to display information while using your iOS app.
  • TraceLog 🐧 - Dead Simple: logging the way it's meant to be! Runs on iOS, macOS, and Linux.
  • Watchdog - Utility for logging excessive blocking on the main thread.
  • WatchdogInspector - A logging tool to show the current framerate (fps) in the status bar of your iOS app.
  • Willow - Willow is a powerful, yet lightweight logging library.
  • XCGLogger - Full featured & Configurable logging utility with log levels, timestamps, and line numbers.

Maps

back to top

  • Cluster - Easy Map Annotation Clustering.
  • FlyoverKit - FlyoverKit enables you to present stunning 360° flyover views on your MKMapView with zero effort while maintaining full configuration possibilities.
  • GEOSwift - Make it easier to work with geographic models and calculate intersections, overlapping, projections etc.
  • LocoKit - A location and activity recording framework for iOS.

Math

back to top

  • Arithmosophi - Set of protocols for Arithmetic and Logical operations.
  • BigInt - Arbitrary-precision arithmetic.
  • DDMathParser - DDMathParser makes it easy to parse a String and evaluate it as a mathematical expression.
  • SigmaSwiftStatistics - A collection of functions for statistical calculation.
  • Upsurge - Simple and fast matrix and vector math.

Natural Language Processing

back to top

Network

A list of libs that allow you to decrease the amount of time spent dealing with http requests. back to top

  • Alamofire 🐧 - Elegant networking.
  • APIKit - Library for building type-safe web API client.
  • Ciao - Publish and discover services using mDNS (Bonjour, Zeroconf).
  • CodyFire - Powerful Codable API requests builder and manager for iOS. Based on Alamofire.
  • Conduit - Robust networking for web APIs.
  • Connectivity - 🌐 Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access.
  • Dots - Lightweight Concurrent Networking Framework.
  • GoodNetworking - 📡 GoodNetworking simplifies HTTP networking.
  • Heimdallr.swift - Easy to use OAuth 2 library for iOS.
  • Just 🐧 - HTTP for Humans (a python-requests style HTTP library).
  • Malibu - A networking library built on promises.
  • Moya - Network abstraction layer.
  • MultiPeer - A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices.
  • Netfox - A lightweight, one line setup, network debugging library.
  • Netswift - A type-safe, high-level networking solution.
  • OAuth2 - oauth2 auth lib.
  • OAuthSwift - OAuth library for iOS.
  • Pitaya 🐧 - HTTP / HTTPS networking library just incidentally execute on machines.
  • PMHTTP - HTTP framework with a focus on REST and JSON.
  • Postal - Framework providing simple access to common email providers.
  • Reachability.swift - A replacement for Apple's Reachability with closures.
  • ReactiveAPI - Write clean, concise and declarative network code relying on URLSession, with the power of RxSwift. Inspired by Retrofit.
  • ResponseDetective - A non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and server for debugging purposes.
  • RxNetworks - Network API With RxSwift + Moya + HandyJSON + Plugins.
  • ShadowsocksX-NG - A fast tunnel proxy that helps you bypass firewalls.
  • Siesta - Elegant abstraction for REST APIs that untangles stateful messes. An alternative to callback- and delegate-based networking.
  • SolarNetwork - Elegant network abstraction layer.
  • SwiftHTTP - NSURLSession wrapper.
  • SwiftyOAuth - A small OAuth library with a built-in set of providers.
  • TermiNetwork - 🌏 A zero-dependency networking solution for building modern and secure iOS, watchOS, macOS and tvOS applications.
  • TRON - Lightweight network abstraction layer, written on top of Alamofire.
  • Wormholy - iOS network debugging, like a wizard 🧙‍.

HTML

Need to manipulate contents from html easily? back to top

  • Fuzi - A fast & lightweight XML/HTML parser with XPath & CSS support.
  • Kanna - Another XML/HTML parser.
  • SwiftSoup 🐧 - HTML Parser, with best of DOM, CSS, and jquery.
  • WKZombie - Headless browser.

Messaging Protocol

back to top

SOAP

back to top

  • SOAPEngine - Generic SOAP client to access SOAP Web Services using iOS, Mac OS X, and Apple TV.

Socket

back to top

Webserver

Would you like host a webserver in your device? Here you can find how to do it. back to top

  • Ambassador - Super lightweight web framework based on SWSGI.
  • Curassow 🐧 - HTTP server using the pre-fork worker model.
  • Embassy 🐧 - Super lightweight async HTTP server library.
  • Kitura 🐧 - IBM's web framework and server for web services.
  • Lightning 🐧 - Multiplatform Single-threaded Non-blocking Web and Networking Framework.
  • Noze.io 🐧 - Evented I/O streams like Node.js.
  • Perfect 🐧 - Server-side Swift. The Perfect library, application server, connectors and example apps.
  • swifter 🐧 - Http server with routing handler.
  • Vapor 🐧 - Elegant web framework that works on iOS, OS X, and Ubuntu.
  • Zewo 🐧 - Server-Side Swift.

OCR

back to top

  • SwiftOCR - Neural Network based OCR lib.

Optimization

back to top

PDF

back to top

  • PDFGenerator - A simple Generator of PDF. Generate PDF from view(s) or image(s).
  • SimplePDF - Create a simple PDF effortlessly.
  • UXMPDFKit - A PDF viewer and annotator that can be embedded in iOS applications.

Quality

back to top

  • AnyLint 🐧 - Lint anything by combining the power of Swift & regular expressions.
  • IBLinter - A linter tool for Interface Builder.
  • L10nLint - A linter tool for Localizable.strings.
  • swift-mod - A tool for Swift code modification intermediating between code generation and formatting.
  • SwiftCop - A validation library which inspired by the clarity of Ruby On Rails Active Record validations.
  • SwiftFormat - A code library and command-line formatting tool for reformatting Swift code.
  • SwiftLint - A tool to enforce coding conventions.
  • Swimat - Xcode plugin to format code.
  • Tailor 🐧 - Cross-platform static analyzer that helps you to write cleaner code and avoid bugs.

Scripting

back to top

SDK

back to top

Security

back to top

  • SecurePropertyStorage - Helps you define secure storages for your properties using Swift property wrappers.

Cryptography

Deal with cryptography method easily back to top

  • BlueCryptor - IBM's Cross Platform Crypto library.
  • BlueRSA - IBM's Cross Platform RSA Crypto library.
  • CryptoSwift 🐧 - Crypto related functions and helpers.
  • IDZSwiftCommonCrypto - A wrapper for Apple's Common Crypto library.
  • JOSESwift - A framework for the JOSE standards JWS, JWE, and JWK.
  • RNCryptor - CCCryptor (Apple's AES encryption) wrappers for iOS and Mac.
  • SCrypto - Elegant interface to access the CommonCrypto routines.
  • Siphash - Simple and secure hashing with the SipHash algorithm.
  • Swift-Sodium - Interface to the Sodium library for common crypto operations for iOS and OS X.
  • Themis - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.

Keychain

back to top

  • GoodPersistence - 💾 GoodPersistence simplifies caching data in keychain and UserDefaults. Using a property wrappers.
  • keychain-swift - Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.
  • KeychainAccess - Simple wrapper for Keychain that works on iOS and OS X.
  • Latch - A simple Keychain Wrapper for iOS.
  • SwiftKeychainWrapper - Simple static wrapper for the iOS Keychain to allow you to use it in a similar fashion to user defaults.

Streaming

back to top

  • HaishinKit - Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
  • Live - Demonstrate how to build a live broadcast app.

Styling

back to top

  • Stylist - Define UI styles in a hot-loadable external yaml or json file.
  • SwiftTheme - Powerful theme/skin manager for iOS 8+.
  • Themes - Theme management.

SVG

back to top

  • SVGView - SVG parser and renderer written in SwiftUI.

System

back to top

  • BlueSignals - IBM's Cross Platform OS signal handling library.
  • LaunchAtLogin - Easily add 'Launch at Login' functionality to your sandboxed macOS app.
  • SystemKit - OS X system library.

Testing

A collection of testing frameworks. back to top

  • DVR - A simple network testing framework.
  • Erik - An headless browser to access and manipulate webpages using javascript allowing to run functional tests.
  • Fakery - Fake data generator.
  • Mussel - A framework for easily testing Push Notifications, Universal Links and Routing in XCUITests.
  • Nimble - A matcher framework.
  • OHHTTPStubs - A testing library designed to stub your network requests easily.
  • Quick 🐧 - Quick is a behavior-driven development framework.
  • SBTUITestTunnel - UI testing library for interact with network requests, stub CLLocationManager and UNUserNotificationCenter, and fine grain scrolling in table/collection/scroll views
  • Sizes - Test your app on different device and font sizes.
  • SnapshotTest - Snapshot testing tool for iOS and tvOS.
  • Spectre 🐧 - BDD Framework.
  • SwiftCheck - A testing library that automatically generates random data for testing program properties.
  • UI Testing Cheat Sheet - Answers to common "How do I test this with UI Testing?" questions with a working example app.
  • XCTest - The XCTest Project, A Swift core library for providing unit test support.

Mock

back to top

  • AutoMockable - A framework that leverages the type system to let you easily create mocked instances of your data types.
  • Cuckoo - First boilerplate-free mocking framework.
  • Mocker - Mock Alamofire and URLSession requests without touching your code implementation
  • Mockingbird - Simplify software testing, by easily mocking any system using HTTP/HTTPS, allowing a team to test and develop against a service that is not complete, unstable or just to reproduce planned cases.
  • Mockingjay - An elegant library for stubbing HTTP requests with ease.
  • Mockit - A simple mocking framework, inspired by the famous Mockito for Java.
  • MockSwift - Mock Framework that uses the power of property wrappers.

Text

A collection of text projects. back to top

  • Attributed - Modern µframework for attributed strings.
  • AttributedTextView - Easiest way to create an attributed UITextView with support for multiple links, hashtags and mentions.
  • BonMot - Beautiful, easy attributed strings for iOS.
  • Croc - A lightweight Emoji parsing and querying library.
  • edhita - Fully open source text editor for iOS.
  • MarkdownKit - A simple and customizable Markdown Parser.
  • MarkdownView - iOS Markdown view.
  • MarkyMark - Converts Markdown into native views or attributed strings.
  • Notepad - A fully themeable markdown editor with live syntax highlighting.
  • OEMentions - An easy way to add mentions to uitextview like Facebook and Instagram.
  • Parsey - Parser combinator framework that supports source location tracking, backtracking prevention, and rich error messages.
  • Pluralize.swift - Great String Pluralize Extension.
  • PredicateFlow - PredicateFlow is a builder that allows you to write amazing, strong-typed and easy-to-read NSPredicate.
  • PrediKit - An NSPredicate DSL for iOS & OS X inspired by SnapKit.
  • Regex by crossroadlabs 🐧 - Very easy to use Regular Expressions library with rich functionality. Features both operator =~ and method based APIs. Unit tests covered.
  • Regex by sindresorhus - Swifty regular expressions, fully tested & documented, and with correct Unicode handling.
  • RichEditorView - RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing.
  • Sprinter - A library for formatting strings.
  • SwiftRichString - Elegant & Painless Attributed Strings Management Library.
  • SwiftVerbalExpressions - VerbalExpressions porting.
  • SwiftyAttributes - Extensions that make it a breeze to work with attributed strings.
  • Tagging - A TextView that provides easy to use tagging feature for Mention or Hashtag.
  • Texstyle - Texstyle allows you to format attributed strings easily.
  • TextAttributes - An easier way to compose attributed strings.
  • TextBuilder - Like a SwiftUI ViewBuilder, but for Text.
  • TwitterTextEditor - A standalone, flexible API that provides a full featured rich text editor for iOS applications.
  • VEditorKit - Lightweight and Powerful Editor Kit.

Thread

Threading, task-based or asynchronous programming, Grand Central Dispatch (GCD) wrapper back to top

  • Async - Syntactic sugar for Grand Central Dispatch.
  • AwaitKit - The ES7 Async/Await control flow.
  • Each - Each is a NSTimer bridge library.
  • GCDTimer - A well-tested GCD timer.
  • Schedule 🐧 - A missing lightweight task scheduler with an incredibly human-friendly syntax.
  • SwiftyTimer - API for NSTimer.

UI

A collection of pre-packaged transitions & cool ui stuffs. back to top

  • ActivityIndicatorView - A number of preset loading indicators created with SwiftUI.
  • AECoreDataUI - Core Data driven UI.
  • AGCircularPicker - Helpful component for creating a controller aimed to manage any calculated parameter.
  • AMScrollingNavbar - Scrollable UINavigationBar that follows the scrolling of a UIScrollView.
  • Arale - A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView support for content reloading.
  • BadgeHub - Make any UIView a full fledged animated notification center. It is a way to quickly add a notification badge icon to a UIView.
  • BatteryView - Simple battery shaped UIView.
  • BetterSafariView - A better way to present a SFSafariViewController or start a ASWebAuthenticationSession in SwiftUI.
  • BottomSheet - Powerful Bottom Sheet component with content based size, interactive dismissal and navigation controller support.
  • BreakOutToRefresh - A playable pull to refresh view using SpriteKit.
  • BulletinBoard - Generates and manages contextual cards displayed at the bottom of the screen.
  • CapturePreventionKit - Provides Label and ImageView for screen capture prevention.
  • CircularProgress - Circular progress indicator for your macOS app.
  • ClassicKit - A collection of classic-style UI components.
  • ContainerController - UI Component. This is a copy swipe-panel from app: Apple Maps, Stocks
  • CountryPickerView - A simple, customizable view for efficiently collecting country information in iOS apps.
  • CustomSegue - Custom segue for OSX Storyboards with slide and cross fade effects.
  • DeckTransition - A library to recreate the iOS 10 Apple Music now playing transition.
  • DockProgress - Show progress in your macOS app's Dock icon.
  • Dodo - A message bar for iOS.
  • Doric Design System Foundation - Protocol oriented, type safe, scalable design system foundation framework for iOS.
  • DropDown - A Material Design drop down for iOS.
  • Elissa - Displays a notification on top of a UITabBarItem or any UIView anchor view to reveal additional information.
  • EstMusicIndicator - Music play indicator like iTunes.
  • Family - A child view controller framework that makes setting up your parent controllers as easy as pie.
  • FAQView - An easy to use FAQ view for iOS.
  • Fashion - Fashion accessories and beauty tools to share and reuse UI styles.
  • FlagKit - Beautiful flag icons for usage in apps and on the web.
  • FlexibleHeader - A container view that responds to scrolling of UIScrollView.
  • FloatRatingView - Floating rating system.
  • Fluid Slider - A slider widget with a popup bubble displaying the precise value selected.
  • GaugeKit - Customizable gauges. Easy reproduce Apple's style gauges.
  • GMStepper - A stepper with a sliding label in the middle.
  • GradientProgressBar - An animated gradient progress bar.
  • GRMustache - Flexible Mustache templates.
  • GrowingTextView - UITextView that supports auto growing, placeholder and length limit.
  • HGCircularSlider - A custom reusable circular slider control for iOS application.
  • HidesNavigationBarWhenPushed - A library, which adds the ability to hide navigation bar when view controller is pushed via hidesNavigationBarWhenPushed flag.
  • HorizontalDial - A horizontal scroll dial like Instagram.
  • HPParallaxHeader - Simple parallax header for UIScrollView.
  • IGColorPicker - A customizable color picker for iOS.
  • InstantSearch iOS - A library of widgets and helpers to build instant-search features on iOS.
  • KALoader - Beautiful animated placeholders for showing loading of data.
  • KMNavigationBarTransition - A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations.
  • KMPlaceholderTextView - A UITextView subclass that adds support for multiline placeholder.
  • LeeGo - Declarative, configurable & highly reusable UI development as making Lego bricks.
  • LicensePlist - A command-line tool that automatically generates a Plist of all your dependencies.
  • LiquidLoader - Spinner loader components with liquid animation.
  • LoadingShimmer - An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
  • Macaw - Powerful and easy-to-use vector graphics library with SVG support.
  • Magnetic - SpriteKit Floating Bubble Picker (inspired by Apple Music).
  • Mandoline - An iOS picker view to serve all your 'picking' needs.
  • MantleModal - A simple modal resource that uses a UIScrollView to allow the user to close the modal by dragging it down.
  • Material - Express your creativity with Material, an animation and graphics framework for Google's Material Design and Apple's Flat UI.
  • Material Components for iOS - Modular and customizable Material Design UI components.
  • MaterialKit - Material design components.
  • MediaBrowser - Simple iOS photo and video browser with optional grid view, captions and selections.
  • MPParallaxView - Apple TV Parallax effect.
  • MultiSelectSegmentedControl - UISegmentedControl remake that supports selecting multiple segments, vertical stacking, combining text and images.
  • MultiSlider - UISlider clone with multiple thumbs and values, range highlight, optional snap intervals, optional value labels, either vertical or horizontal.
  • MXParallaxHeader - Simple parallax header for UIScrollView.
  • MZFormSheetPresentationController - Provides an alternative to the native iOS UIModalPresentationFormSheet, adding support for iPhone and additional opportunities to setup controller size and feel form sheet.
  • NeumorphismKit - Neumorphism framework for UIKit.
  • NextGrowingTextView - The next in the generations of 'growing textviews' optimized for iOS 7 and above.
  • NVActivityIndicatorView - Collection of nice loading animations.
  • OverlayContainer - OverlayContainer makes it easier to develop overlay based interfaces, such as the one presented in the Apple Maps or Stocks apps.
  • Partition Kit - A SwiftUI Library for creating resizable partitions for View Content.
  • Popovers - A library to present popovers. Simple, modern, and highly customizable. Not boring!
  • Preferences - Add a preferences window to your macOS app in minutes.
  • ProgressIndicatorView - A progress indicator view library written in SwiftUI.
  • PullToDismiss - You can dismiss modal viewcontroller by pulling scrollview or navigationbar.
  • RangeSeekSlider - A customizable range slider like a UISlider for iOS.
  • Reel search - Option list managed as a reel.
  • ResizingTokenField - A UICollectionView-based token field which provides intrinsic content height.
  • RetroProgress - Retro looking progress bar straight from the 90s.
  • SectionedSlider - Control Center Slider.
  • SelectionDialog - Simple selection dialog.
  • ShadowView - Make shadows management easy on UIView.
  • Shiny - Iridescent Effect View (inspired by Apple Pay Cash).
  • ShowSomeProgress - Animated Progress and Activity Indicators for iOS apps.
  • SkeletonView - An elegant way to show users that something is happening and also prepare them to which contents he is waiting.
  • SKPhotoBrowser - Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers.
  • Spots - Spots is a view controller framework that makes your setup and future development blazingly fast.
  • SpreadsheetView - Full configurable spreadsheet view user interfaces for iOS applications.
  • StarryStars - Display & edit ratings, fully customizable from interface builder.
  • StatefulViewController - Placeholder views based on content, loading, error or empty states.
  • StepProgressView - Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView.
  • SweetCurtain - Really sweet and easy bottom pullable sheet implementation. You can find a similar implementation in applications like Apple Maps, Find My, Stocks, etc.
  • SwiftyUI - High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton and more.
  • TagListView - Simple but highly customizable iOS tag list view.
  • Toaster - Notification toasts.
  • Twinkle - Easy way to make elements in your iOS app twinkle.
  • UIPheonix - Easy, flexible, dynamic and highly scalable UI framework + concept for reusable component/control-driven apps.
  • UltraDrawerView - Lightweight, fast and customizable Drawer View implementation identical to Apple Maps, Stocks and etc.
  • URLEmbeddedView - Automatically caches the object that is confirmed the Open Graph Protocol, and displays it as URL embedded card.
  • Wallet - A replica of the Apple's Wallet interface. Add, delete or present your cards and passes.
  • Windless - Windless makes it easy to implement invisible layout loading view.
  • WSTagsField - An iOS text field that represents different Tags.
  • YMTreeMap - Treemap / Heatmap layout engine, based on Squarified.
  • YNSearch - Awesome fully customizable search view like Pinterest.

Alert

Libs to display alert, action sheet, notification, popup. back to top

  • Alertift - Modern, easy UIAlertController wrapper.
  • Alerts Pickers - Advanced usage of UIAlertController with TextField, DatePicker, PickerView, TableView and CollectionView.
  • ALRT - An easier constructor for UIAlertController. Present an alert from anywhere.
  • AwaitToast - 🍞 An async waiting toast with basic toast. Inspired by facebook posting toast.
  • CDAlertView - Highly customizable alert/notification/success/error/alarm popup.
  • CFNotify - A customizable framework to create draggable alert views.
  • EZAlertController - Easy UIAlertController.
  • FullscreenPopup - Present any popup above NavigationBar in SwiftUI
  • GSMessage - A simple style messages/notifications for iOS 7+.
  • Kamagari - Simple UIAlertController builder class.
  • Loaf - A simple framework for easy iOS Toasts.
  • MijickPopupView - Present any popup in no time. Keep your code clean.
  • NotificationBanner - The easiest way to display highly customizable in app notification banners in iOS.
  • PMAlertController - PMAlertController is a great and customizable substitute to UIAlertController.
  • PopupDialog - A simple, customizable popup dialog. Replaces UIAlertController alert style.
  • PopupView - Toasts and popups library written with SwiftUI.
  • SCLAlertView - Animated Alert view.
  • Sheet - Actionsheet with navigation features such as the Flipboard App.
  • SPAlert - Native popup from Apple Music & Feedback in AppStore. Contains Done & Heart presets.
  • StatusAlert - Display Apple system-like self-hiding status alerts without interrupting user flow.
  • SweetAlert - Alert system.
  • Swift-Prompts - Design custom prompts with a great scope of options to choose from.
  • SwiftEntryKit - A simple and versatile pop-up presenter.
  • SwiftMessages - A very flexible message bar for iOS.
  • SwiftOverlays - various popups and notifications.
  • Toast-Swift - An easy to use library to create iOS 14 and newer style toasts.
  • XLActionController - Fully customizable and extensible action sheet controller.
  • Zingle - An alert will display underneath your UINavigationBar.

Blur

back to top

Button

back to top

  • AHDownloadButton - Customizable download button with progress and transition animations. It is based on Apple's App Store download button.
  • DOFavoriteButton - Cute Animated Button.
  • ExpandableButton - Customizable and easy to use expandable button.
  • FloatingButton - Easily customizable floating button menu created with SwiftUI.
  • Floaty - Floating Action Button for iOS.
  • IGStoryButtonKit - Easy-to-use button with rich animation inspired by instagram stories.
  • LGButton - A fully customisable subclass of the native UIControl which allows you to create beautiful buttons without writing any line of code.
  • LTHRadioButton - A radio button with a pretty animation.
  • MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (like the camera flash and timer buttons).
  • NFDownloadButton - Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button.
  • PMSuperButton - A powerful UIButton with super powers, customizable from Storyboard.
  • RadioGroup - The missing iOS radio buttons group.
  • SwiftShareBubbles - Animated social share buttons control for iOS.
  • TransitionButton - UIButton subclass for loading and transition animation.

Calendar

back to top

  • CalendarKit - Fully customizable calendar day view.
  • CalendarView - Calendar Component, It features both vertical and horizontal layout (and scrolling) and the display of native calendar events.
  • DateTimePicker - A nicer iOS UI component for picking date and time.
  • ElegantCalendar - The elegant full screen calendar missed in SwiftUI.
  • HorizonCalendar - A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured calendar apps.
  • JTAppleCalendar - UI calendar handler.
  • KVKCalendar - A most fully customization calendar for Apple platforms 📅
  • Workaholic - A GitHub-like work contribution timeline.

Cards

back to top

  • CardNavigation - A navigation controller that displays its view controllers as an interactive stack of cards.
  • CardParts - A reactive, card-based UI framework built on UIKit for iOS developers.
  • VerticalCardSwiper - A marriage between the Shazam Discover UI and Tinder, built with UICollectionView.

Form

back to top

  • Carbon - 🚴 A declarative library for building component-based user interfaces in UITableView and UICollectionView.
  • Eureka - Elegant iOS form builder.
  • FDBarGauge - Simulate the level indicator on an audio mixing board
  • Former - A fully customizable library for easy creating UITableView based form.
  • ObjectForm - A simple yet powerful library to build form for your class models.
  • SwiftyFORM - Forms that can be validated.

HUD

back to top

Label

back to top

  • ActiveLabel - UILabel drop-in replacement supporting Hashtags (#), Mentions (@) and URLs (http://).
  • Atributika - TConvert text with HTML tags, links, hashtags, mentions into NSAttributedString. Make them clickable with UILabel drop-in replacement.
  • CountdownLabel - Simple countdown UILabel with morphing animation, and some useful function.
  • GlitchLabel - Glitching UILabel for iOS.
  • IncrementableLabel - An UILabel subclass to (de)increment numbers in an UILabel.
  • KDEDateLabel - An UILabel subclass that updates itself to make time ago's format easier.
  • LTMorphingLabel - Graceful morphing effects for UILabel.
  • Nantes - TTTAttributedLabel replacement.
  • TriLabelView - A triangle shaped corner label view for iOS.

Menu

back to top

  • AKSwiftSlideMenu - Slide Menu (Drawer).
  • CircleMenu - CircleMenu is a simple, elegant UI menu with a circular layout and material design animations.
  • ENSwiftSideMenu - Sliding side menu.
  • FanMenu - Menu with a circular layout based on Macaw.
  • FlowingMenu - Interactive view transition to display menus with flowing and bouncing effects.
  • GuillotineMenu - Guillotine style menu.
  • HHFloatingView - An easy to use and setup floating view for your app.
  • InteractiveSideMenu - Customizable iOS Interactive Side Menu.
  • KWDrawerController - Drawer view controller that easy to use.
  • MenuItemKit - UIMenuItem with image and block (closure) support.
  • Pagemenu - Pagination enabled view controller.
  • PagingKit - PagingKit provides customizable menu UI.
  • Panels - Panels is a framework to easily add sliding panels to your application.
  • Parchment - A paging view controller with a highly customizable menu, built on UICollectionView.
  • PopMenu - 😎 A cool and customizable popup style action sheet for iOS.
  • SegmentIO - Animated top/bottom segmented menu for iOS.
  • SideMenu - Simple side menu control for iOS inspired by Facebook. Right and Left sides. No coding required.
  • SlideMenuControllerSwift - iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app.
  • SwipeMenuViewController - Swipable tab and menu View and ViewController.
  • XLPagerTabStrip - Android PagerTabStrip for iOS.
  • YNDropDownMenu - Adorable iOS drop down menu.

Pagination

back to top

  • CHIPageControl - A set of cool animated page controls to replace boring UIPageControl.
  • FlexiblePageControl - A flexible UIPageControl like Instagram.
  • iPages - Quickly implement swipable page views in SwiftUI 📝.
  • Pageboy - A simple, highly informative page view controller.
  • PageController - Infinite paging controller.
  • SlideController - It is a nice alternative for UIPageViewController built using power of generic types. Swipe between pages with an interactive title navigation control. Configure horizontal or vertical chains for unlimited pages amount.

Payment

back to top

  • AnimatedCardInput - Customisable and easy to use Credit Card UI.
  • Caishen - A Payment Card UI & Validator for iOS.
  • iCard - Bank Card Generator using SnapKit DSL.
  • MFCard - Easily integrate Credit Card payments in iOS App.
  • TPInAppReceipt - A lightweight, pure-Swift library for reading and validating Apple In App Purchase Receipt locally.

Permissions

back to top

  • AREK - AREK is a clean and easy to use wrapper over any kind of iOS permission.
  • Permission - A unified API to ask for permissions on iOS.
  • SPPermission - Simple request permission with native UI and interactive animation.

Scroll Bars

back to top

  • DMScrollBar - Best in class customizable ScrollBar for any type of ScrollView with Decelerating, Bounce & Rubber band mechanisms and many many more.

StackView

back to top

Switch

back to top

  • MJMaterialSwitch - A Customizable Switch UI for iOS, Inspired from Google's Material Design.
  • paper-switch - RAMPaperSwitch is a material design UI module which paints over the parent view when the switch is turned on.
  • Switch - A switch control with full Interface Builder support.

Tab

back to top

  • Adaptive Tab Bar - Adaptive tab bar.
  • Animated Tab Bar - RAMAnimatedTabBarController is a module for adding animation to tab bar items.
  • CardTabBar - Adding animation to iOS tabbar items.
  • CircleBar - A fun, easy-to-use tab bar navigation controller for iOS.
  • ColorMatchTabs - Interesting way to display tabs.
  • DTPagerController - Container view controller to display a set of ViewControllers in a horizontal scroll view.
  • ESTabBarController - A highly customizable TabBarController component, which is inherited from UITabBarController.
  • HHTabBarView - A lightweight customized tab bar view.
  • PolioPager - A flexible TabBarController with search tab like SNKRS.
  • SwiftUIMaterialTabs - Material 3-style tabs and Sticky Headers rolled into one SwiftUI library
  • TabBar - Highly customizable tab bar for SwiftUI applications.
  • Tabman - A powerful paging view controller with indicator bar.
  • TabPageViewController - Paging view controller and scroll tab view.

Template

back to top

  • Stencil - Simple and powerful template language.
  • SwiftCssParser - Extensible CSS parser.
  • Temple - 🗂️ Most advanced project and file templates.

TextField

back to top

  • CBPinEntryView - Easy to use, very customisable pin entry.
  • CHIOTPField - A set of textfields that can be used for One-time passwords, SMS codes, PIN codes, etc.
  • DTTextField - DTTextField is a custom textfield with floating placeholder and error label.
  • FloatingLabelTextFieldSwiftUI - FloatingLabelTextFieldSwiftUI is a small and lightweight SwiftUI framework written in completely SwiftUI (not using UIViewRepresentable) that allows to create beautiful and customisable floating label textfield!
  • HTYTextField - A UITextField with bouncy placeholder.
  • iTextField ⌨️ - A fully-wrapped UITextField that works entirely in SwiftUI 🦅.
  • PasswordTextField - A custom TextField with a switchable icon which shows or hides the password and enforces good password policies.
  • SkyFloatingLabelTextField - A beautiful and flexible text field control implementation of "Float Label Pattern".
  • StyledTextKit - Declarative building and fast rendering attributed string library.
  • TextFieldCounter - UITextField character counter with lovable UX.
  • TextFieldEffects - Several ready to use effects for UITextFields.
  • UITextField-Navigation - UITextField-Navigation adds next, previous and done buttons to the keyboard for your UITextFields. Highly customizable.
  • VKPinCodeView - Simple and elegant UI component for input PIN.

Transition

back to top

  • BubbleTransition - Bubble transition in an easy way.
  • Cards XI - Awesome iOS 11 AppStore's Card Views.
  • EasyTransitions - A simple way to create custom interactive UIViewController transitions.
  • Hero - Elegant transition library for iOS.
  • ImageTransition - ImageTransition is a library for smooth animation of images during transitions.
  • Jelly - Jelly provides custom view controller transitions with just a few lines of code.
  • LiquidSwipe - Liquid navigation animation
  • MijickNavigattie - Easy navigation with SwiftUI.
  • MusicPlayerTransition - Custom interactive transition like Apple Music iOS App.
  • NavigationTransitions - Pure SwiftUI Navigation transitions.
  • PanSlip - Use PanGesture to dismiss view on UIViewController and UIView.
  • PinterestSwift - Pinterest style transition.
  • RevealingSplashView - A Splash view that animates and reveals its content, inspired by the Twitter splash.
  • SamuraiTransition - Swift based library providing a collection of ViewController transitions featuring a number of neat cutting animations.
  • SPLarkController - Custom transition between two controller. Translate to top.
  • SPStorkController - Now playing controller from Apple Music. Customisable height.
  • StarWars.iOS - Transition animation to crumble view-controller into tiny pieces.
  • Transition - Easy interactive interruptible custom ViewController transitions.

3D

back to top

  • Insert3D - The fastest 🚀 way to embed a 3D model.

UICollectionView

back to top

  • ASCollectionView - Lightweight custom collection view inspired by Airbnb.
  • AZCollectionViewController - Easy way to integrate pagination with dummy views in CollectionView, make Instagram Discover withing minutes.
  • Blueprints - A framework that is meant to make your life easier when working with collection view flow layouts.
  • BouncyLayout - Collection view layout that makes your cells bounce.
  • CardsLayout - Nice card-designed custom CollectionView layout.
  • CenteredCollectionView - A lightweight UICollectionViewLayout that pages and centers it's cells.
  • CheckmarkCollectionViewCell - UICollectionViewCell with checkbox when it isSelected and empty circle when not - like Photos.app 'Select' mode.
  • CollectionViewShelfLayout - A UICollectionViewLayout subclass displays its items as rows of items similar to the App Store Feature tab without a nested UITableView/UICollectionView hack.
  • CollectionViewSlantedLayout - UICollectionViewLayout to show slanted content.
  • Drag and Drop UICollectionView - Dragging and Dropping data across multiple UICollectionViews.
  • FSPagerView - Elegant Screen Slide Library. It is extremely helpful for making Banner View、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.
  • Gliding Collection - Gliding Collection is a smooth, flowing, customizable decision for a UICollectionView Controller.
  • GoodProvider - 🚀 UITableView and UICollectionView provider to simplify basic scenarios of showing the data.
  • GravitySlider - Beautiful alternative to the standard UICollectionView flow layout.
  • ShelfView-iOS - iOS custom view to display books on shelf.
  • SimpleSource - Easy and type-safe iOS table and collection views.
  • SwiftSpreadsheet - Fully customizable spreadsheet CollectionViewLayout.
  • TagCellLayout - UICollectionView layout for Tags with Left, Center & Right alignments.
  • UICollectionViewSplitLayout - UICollectionViewSplitLayout makes collection view more responsive.
  • VegaScroll - Lightweight animation flowlayout for UICollectionView.

UITableView

back to top

  • AZTableViewController - Elegant and easy way to integrate pagination with placeholder views.
  • CollapsibleTableSectionViewController - A library to support collapsible sections in a table view.
  • DGElasticPullToRefresh - Elastic pull to refresh.
  • DiffableDataSources - 💾 A library for backporting UITableView/UICollectionViewDiffableDataSource.
  • DTTableViewManager - Protocol-oriented UITableView management, powered by generics and associated types.
  • ExpandableCell - Fully refactored YNExapnadableCell with more concise, bug free. Easiest usage of expandable & collapsible cell for iOS. You can customize expandable UITableViewCell whatever you like. ExpandableCell is made because insertRows and deleteRows is hard to use. Just inheirt ExpandableDelegate.
  • FDTextFieldTableViewCell - Adds a UITextField to the cell and places it correctly.
  • folding-cell - Folding cell transition.
  • GridView - Can be customized as a time table, spreadsheet, paging and more.
  • HGPlaceholders - Nice library to show placeholders and Empty States for any UITableView/UICollectionView in your project.
  • OKTableViewLiaison - Framework to help you better manage UITableViews.
  • ParallaxHeader - Simple way to add parallax header to UIScrollView/UITableView.
  • Persei - Animated top menu for UITableView / UICollectionView / UIScrollView.
  • PullToRefreshSwift - PullToRefresh library.
  • QuickTableViewController - A simple way to create a UITableView for settings.
  • ReverseExtension - UITableView extension that enables the insertion of cells the from bottom of a table view.
  • SelectionList - Simple single-selection or multiple-selection checklist, based on UITableView.
  • Shoyu - Easier way to represent the structure of UITableView.
  • SwiftyComments - Nested hierarchy of expandable/collapsible cells to easily build elegant discussion threads.
  • SwipeCellKit - Swipeable UITableViewCell based on the stock Mail.app.
  • WLEmptyState - A component that lets you customize the view when the dataset of UITableView is empty.
  • YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS.

Walkthrough

back to top

  • AwesomeSpotlightView - Create tutorial or coach tour.
  • BWWalkthrough - A class to build custom walkthroughs for your iOS App.
  • ConcentricOnboarding - SwiftUI library for a walkthrough or onboarding flow with tap actions.
  • Gecco - Spotlight view for iOS.
  • Instructions - A library to create app walkthroughs and guided tours.
  • OnboardKit - Customisable user onboarding for your iOS app.
  • PaperOnboarding - PaperOnboarding is a material design UI slider.
  • SuggestionsKit - Library for educating users about features in app.
  • SwiftyOnboard - An iOS framework that allows developers to create beautiful onboarding experiences.
  • SwiftyWalkthrough - The easiest way to create a great walkthrough experience in your apps.

Utility

Some interesting utilities to help you in your projects back to top

  • AlexaSkillsKit - Develop custom Alexa Skills.
  • ApplyStyleKit - Elegantly, Apply style to UIKit using Method Chain.
  • Basis - Pure Declarative Programming.
  • Bow - Companion library for Typed Functional Programming.
  • CallbackURLKit - Implementation of x-callback-url (Inter app communication).
  • Closures - Swifty closures for UIKit and Foundation.
  • Codextended - Extensions giving Codable API type inference super powers.
  • Curry - Function currying.
  • Delegated - Closure-based delegation without memory leaks.
  • DifferenceKit - 💻 A fast and flexible O(n) difference algorithm framework.
  • Differific - A fast and convenient diffing framework.
  • Dollar - Similar to Lo-Dash or Underscore in Javascript.
  • DuctTape - 📦 KeyPath dynamicMemberLookup based syntax sugar for Swift.
  • EtherWalletKit - Ethereum Wallet Toolkit for iOS - You can implement Ethereum wallet without a server and blockchain knowledge.
  • ExceptionCatcher - Catch Objective-C exceptions.
  • EZSwiftExtensions - How standard types and classes were supposed to work.
  • FlagAndCountryCode - FlagAndCountryCode provides phone codes and flags for every country. Works on UIKit and SwiftUI
  • FluentQuery 🐧 - Powerful and easy to use Query Builder.
  • GoodExtensions-iOS - 📑 GoodExtensions is a collection of useful and frequently used extensions.
  • GoodUIKit - 📑 GoodUIKit is an extensions library filled with reusable UI snippets for faster and more efficient development.
  • Highlighter - Highlight whatever you want! Highlighter will magically find UI objects such as UILabel, UITextView, UITexTfield, UIButton in your UITableViewCell or other Class.
  • LifetimeTracker - Surface retain cycle / memory issues right as you develop your application.
  • Lumos - An easy-to-use API for Objective-C runtime functions.
  • ObjectiveKit - API for Objective C runtime functions.
  • OpenSourceController - The simplest way to display the librarie's licences used in your application.
  • Percentage - Make percentages more readable and type-safe.
  • Periphery - A tool to identify unused code in Swift projects.
  • Playbook - 📘A library for isolated developing UI components and automatically snapshots of them.
  • PrivacyFlash Pro - Generate a privacy policy for your Swift iOS app from its code.
  • protobuf-swift - ProtocolBuffers.
  • Prototope - Library of lightweight interfaces for prototyping, bridged to JS.
  • R.swift - Tool to get strong typed, autocompleted resources like images, cells and segues.
  • RandomKit 🐧 - Random data generation.
  • ReadabilityKit - Preview extractor for news, articles and full-texts.
  • ResourceKit - Enable autocomplete use resources.
  • Result - Type modelling the success/failure of arbitrary operations.
  • Rugby - 🏈 Cache CocoaPods for faster rebuild and indexing Xcode project.
  • Runes - Functional operators: flatMap, map, apply.
  • Solar - Calculate sunrise and sunset times given a location.
  • SpriteKit+Spring - SpriteKit API reproducing UIView's spring animations with SKAction.
  • Sugar - Something sweet that goes great with your Cocoa.
  • swift-protobuf 🐧 - A plugin and runtime library for using Google's Protocol Buffer.
  • SwiftAutoGUI - Used to programmatically control the mouse & keyboard. A library for manipulating macOS with Swift.
  • SwiftBoost - Collection of Swift-extensions to boost development process.
  • Swiftbot - run swift code on slack.
  • SwifterSwift - A handy collection of more than 500 native extensions to boost your productivity.
  • SwiftGen-Storyboard - A tool to auto-generate enums for all your Storyboards, Scenes and Segues constants + appropriate convenience accessors.
  • SwiftLinkPreview - It makes a preview from an url, grabbing all information such as title, relevant texts and images.
  • SwiftPlantUML - A command-line tool and Swift Package to generate UML class from your Swift source code. Also available as Xcode Source Editor Extension.
  • SwiftRandom - A tiny generator of random data.
  • SwiftRater - A utility that reminds your iPhone app's users to review the app.
  • SwiftTweaks - Tweak your iOS app without recompiling.
  • Swiftx - Functional data types and functions for any project.
  • SwiftyUtils - All the reusable code that we need in each project.
  • Swiftz - Functional programming.
  • Then - Super sweet syntactic sugar for initializers.
  • TSAO - Type-Safe Associated Objects.
  • URLQueryItemEncoder - An Encoder for encoding any Encodable value into an array of URLQueryItem.
  • UTIKit - an UTI (Uniform Type Identifier) wrapper.
  • Vaccine - Make your apps immune to recompile-decease.
  • WeakableSelf - A micro-framework to encapsulate [weak self] and guard statements within closures.
  • WhatsNew - Showcase new features after an app update similar to Pages, Numbers and Keynote.
  • WhatsNewKit - Showcase your awesome new app features.
  • XestiMonitors - An extensible monitoring framework.
  • ZamzamKit - A collection of micro utilities and extensions for Standard Library, Foundation and UIKit.

Validation

A collection of validation libs. back to top

  • ATGValidator - Rule based validation framework with form and card validation support for iOS.
  • FormValidatorSwift - Allows you to validate inputs of text fields and text views in a convenient way.
  • Input Mask - Pattern-based user input formatter, parser and validator for iOS.
  • RxValidator - Simple, Extensible, Flexible Validation Checker.
  • SwiftValidator - A rule-based validation library.
  • SwiftValidators - String validation for iOS (inspired by validator.js).
  • ValidatedPropertyKit - Easily validate your Properties with Property Wrappers 👮.

Phone Numbers

Libs to manage phone numbers. back to top

  • NKVPhonePicker - An UITextField subclass to simplify country code's picking.
  • PhoneNumberKit - Framework for parsing, formatting and validating international phone numbers. Inspired by Google's libphonenumber.

Version Manager

back to top

  • AppVersionMonitor - Monitor iOS app version easily.
  • Siren - Notify users when a new version of your app is available and prompt them to upgrade.
  • Version - Version represents and compares semantic versions.
  • Version Tracker Swift - Versions tracker for your iOS, OS X, and tvOS app.

Video

back to top

  • BMPlayer - A video player for iOS, based on AVPlayer, support the horizontal, vertical screen. support adjust volume, brigtness and seek by slide.
  • Cabbage - A video composition framework build on top of AVFoundation.
  • Kitsunebi - Overlay alpha channel video animation player view using OpenGLES.
  • MMPlayerView - Custom AVPlayerLayer on view and transition player with good effect like YouTube and Facebook.
  • MobilePlayer - A powerful and completely customizable media player for iOS.
  • NextLevelSessionExporter - Export and transcode media.
  • Player - iOS video player, simple drop in component for playing and streaming media.
  • PlayerView - Easy to use video player using a UIView, manage rate of reproduction, screenshots and callbacks-delegate for player state.
  • PryntTrimmerView - Trim and crop videos.
  • SwiftFFmpeg - A wrapper for the FFmpeg C API.
  • SwiftVideoBackground - Easy to Use UIView subclass for implementating a video background.
  • Swifty360Player - iOS 360-degree video player streaming from an AVPlayer.
  • YiVideoEditor - a library for rotating, cropping, adding layers (watermark) and as well as adding audio (music) to the videos.

Serverless

from https://github.com/matteocrippa/awesome-swift