您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页【iOS 开发】Swift 常用的 CocoaPods 开源库收

【iOS 开发】Swift 常用的 CocoaPods 开源库收

来源:二三娱乐
CocoaPods

在平时的 iOS 开发过程中,少不了要使用很多的框架,一个适合的框架能够将开发效率提高几倍,这里将一些不错的 Swift 框架收集起来,有需要的可以收藏一下。


弹框提示

XLActionController

XLActionController 是一个支持各种自定义的底部选择框。


SCLAlertView

参考文章:


PopupDialog 预览图

PopupDialog 是一个非常不错的 AlertView 框架,支持各种自定义。


SwiftMessages

SwiftMessages 是一个信息提示框架,可以自定义提示位置和样式。


AMPopTip

AMPopTip 是一个漂亮的气泡文字提示框架,并且支持 Objective-CSwift


EasyTipView

EasyTipView 是一个完全可自定义的提示视图框架。


动画框架

Hero

Hero 是为了构建 iOS 试图控制器过渡动画的库,它在 UIKit 繁琐的过渡动画 API 之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。

参考文章:


EasyAnimation

在动画实现过程中,一个看似简单的效果往往需要大量的代码,尤其是作用于 layer 上的动画,为此有了 EasyAnimation 这个库,这个库可以将 Layer Animations 写成 View Animations 的样式。

参考文章:


Spring

Spring 是一个使用非常简单的动画框架。


PeekPop

PeekPop 是一个 3D Touch 动画框架。


Animations

图片显示

Kingfisher

Kingfisher 是一个轻量、纯 Swift 的库,可以从网络中异步下载和缓存图片,相当于 Swift 版的 SDWebImage

参考文章:


Onboard

Onboard 是一个导航页框架,只需几行代码,即可轻松创建漂亮,引人入胜的用户指导页体验。

参考文章:


FSPagerView

FSPagerView 是一款基于 UICollectionView 实现的多功能轮播器,具有以下特点:

  • 支持无限轮播和自动轮播。
  • 丰富的内置 3D / 2D 切换效果。
  • 带有预定义的轮播图单元格,支持完全自定义单元格。
  • 支持在 SwiftObjective-C 两种语言中使用。
  • 支持完全自定义的 Page Control

TZImagePickerController

TZImagePickerController 是一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能。


ZLPhotoBrowser 预览图

ZLPhotoBrowser 是一个方便易用的相册多选框架,支持预览/相册内拍照、预览快速多选照片,3DTouch 预览照片,编辑裁剪图片,编辑视频,混合多选 image、gif、Live Photo 及 video ,相册混合选择,原图功能,支持多语言国际化(中文简/繁,英语,日语),在线下载 iCloud 端图片,自定义最大选择量及最大预览量,自定义照片升序降序排列,自定义照片显示圆角弧度,支持预览网络及本地图片。

功能介绍:

  • 支持横竖屏 (已适配 iPhone X)
  • 预览快速选择、可设置预览最大数
  • 直接进入相册选择
  • 支持滑动多选
  • 裁剪图片(可自定义裁剪比例)
  • 编辑视频
  • 查看、选择 gif、LivePhoto(iOS9.0)、video
  • 3D Touch 预览 image、gif、LivePhoto、video
  • 混合选择 image、gif、livePhoto、video
  • 在线下载 iCloud 照片
  • 控制选择 video 最大时长
  • 多语言国际化(中文简/繁、英文、日文)
  • 相册内拍照按钮实时显示镜头捕捉画面
  • 已选择图片遮罩层标记
  • 预览已选择照片
  • 预览网络及本地照片(支持长按保存至相册)
  • 相册内图片自定义圆角弧度
  • 自定义升序降序排列
  • 多张拍照

CBPic2ker

CBPic2ker 是一个简单的 iOS 照片选择器,界面非常简洁。


预览图

PYPhotoBrowser 是一个 iOS 中使用简单的图片浏览器,支持流水布局 、 线性布局,支持单击 、双击 、捏合 、旋转、拖拽、侧滑手势,主要用于社交 App ,用于呈现一组图片。


颜色管理

Chameleon

Chameleon 是一个轻量却功能强大的 iOS (支持 Objective-CSwift)颜色框架软件,它基于的理念是:软件应用程序应该可以不费力气且同时保持多个漂亮的界面,使用 Chameleon ,你不再需要调配 RGB 值,不用浪费时间去找你的 APP 合适的颜色组合,也不用担心你 APP 的文字是否能在不同背景色上可读。

参考文章:


DynamicColor

DynamicColor 是一个用于操作颜色的 Swift 扩展。


权限请求

PermissionScope

PermissionScope 是一个请求权限的封装库,可以很方便的请求系统的权限。它不只包含简单的权限请求 UI ,还有统一的权限 API 可以告诉你任意给定的系统权限的状态,当然也可以轻松地请求它们。

参考文章:


RequestPermission 预览图

RequestPermission 是关于使用可定制的视觉效果管理权限,美丽的对话增加了批准的机会,这在我们要求通知时很重要,该模块的简单控制可节省开发时间,您可以开始使用这个项目,只需两行代码就能轻松自定义。


网络请求

Alamofire
  • Alamofire 的前身是 AFNetworkingAFNetworkingiOSOS X 上很受欢迎的第三方 HTTP 网络基础库。

  • 其实 AFNetworking 的前缀 AF 便是 Alamofire 的缩写。

  • Swift 发布后,AFNetworking 的作者又用 Swift 语言写了个相同功能的库,这便是 Alamofire

  • Alamofire 本质是基于 URLSession ,并做了封装。使用 Alamofire 可以让我们网络请求相关代码(如 获取数据提交数据上传文件下载文件 等)更加简洁易用。

参考文章:


JSON

HandyJSON 是一个用于 Swift 语言中的 JSON 序列化 / 反序列化库,相当于 Swift 版的 MJExtensionYYModel ,能够将 JSON模型 相互转化,可以和 Alamofire 搭配使用。

模型转 JSON(序列化)

class Person: HandyJSON {

    required init() {}

    var name: String!
    var age: Int!
}

let person = Person()
person.name = "张三"
person.age = 20

print(person.toJSON()!) // 转换成 Dictionary 字典
print(person.toJSONString()!) // 转换成 JSON 字符串
print(person.toJSONString(prettyPrint: true)!) // 转换成有格式的 JSON 字符串

JSON 转模型(反序列化)

let json: NSDictionary = ["name": "张三", "age": 20]; // 可以是 JSON 字符串,也可以是字典(只能 NSDictionary)

if let person = Person.deserialize(from: json) {
    print(person.name)
    print(person.age)
}

JSON

SwiftyJSON 是个使用 Swift 语言编写的开源库,可以让我们很方便地处理 JSON 数据(解析数据、生成数据),和 HandyJSON 有着完全不同的作用,是将 iOS 自带的 JSONSerialization 大大的简化了。

JSONSerialization 复杂代码

if let dataArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],
    let user = dataArray[0]["user"] as? [String: Any],
    let name = user["name"] as? String {
    print(name)
}

SwiftyJSON 简化代码

let json = JSON(data: data)
if let name = json[0]["user"]["name"].string {
    print(name)
}
Alamofire.request(URL, method: .get, parameters: parameters, encoding: URLEncoding.default).responseSwiftyJSON { dataResponse in

    print(dataResponse.request)
    print(dataResponse.response)
    print(dataResponse.error)
    print(dataResponse.value)
})

参考文章:


Moya

Moya 是你的 App 中缺失的网络层。不用再去想在哪儿或者如何安放网络请求,Moya 替你管理。Moya 是一个基于 AlamofireNetworking library,并且添加了对于 ReactiveCocoaRxSwift 的接口支持,大大简化了开发过程,是 Reactive Functional Programming 的网络层首选。

参考文章:


简化编程

ReactiveCocoa

参考文章:


RxSwift

参考文章:


PromiseKit

PromiseKit 是一个异步编程类库,提供了很多实用的异步函数,让异步编程更简单。

参考文章:


Material

Material 是一个用于创建漂亮应用程序的材料设计库,就如同它的名字一样,其中包含了大多数开发中需要的控件,并且也提供了非常多基础类的扩展,能够大大的简化我们的代码。


EZSwiftExtensions

EZSwiftExtensionsSwift 标准库、 FoundationUIKit 提供了很多高级扩展函数。

下面举几个例子,具体用法在 GitHub 上都有。

var myArray = ["charmander","bulbasaur","squirtle","charmander"]
print(myArray.get(1)) // "bulbasaur"
print(myArray.random()) // 数组中随机一个
print(myArray.indexesOf("charmander")) // [0,3]
print(myArray.containsArray(["charmander","bulbasaur"])) // true
print(myArray.containsArray(["string"])) // false
let myView = UIView(x: 0, y: 0, w: 100, h: 100)
print(myView.frame) // (0.0, 0.0, 100.0, 100.0)
print(myView.x) // 0.0
print(myView.y) // 0.0
print(myView.w) // 100.0
print(myView.h) // 100.0
myView.x = 115 // 还可以改变数值
print(myView.x) // 115.0
let myColor = UIColor(r: 100, g: 100, b: 100) // 默认 alpha 为 1

开发调试

Dotzu 预览图

GDPerformanceView

GDPerformanceView 可以在状态栏上方显示 FPSCPU 使用情况、AppiOS 版本,并通过 Delegate 报告 FPSCPU 使用情况。


扫二维码

预览图

swiftScan 是一个二维码库,支持各种码识别、生成、以及界面效果。

功能介绍:

  • 扫码框周围区域背景色可设置
  • 扫码框颜色可也设置
  • 扫码框4个角的颜色可设置、大小可设置
  • 可设置只识别扫码框内的图像区域
  • 可设置扫码成功后,获取当前图片
  • 根据扫码结果,截取码的部分图像(在模仿qq扫码界面,扫码成功后可看到)
  • 动画效果选择:线条上下移动、网格形式移动、中间线条不移动(一般扫码条形码的效果)

预览图

SGQRCode 是一个二维码库,支持各种码识别、生成、以及界面效果,是一个 OC 框架。

功能介绍:

  • 普通二维码生成
  • 彩色二维码生成
  • 带有小图标二维码生成
  • 根据光线强弱开启手电筒
  • 从相册中读取二维码
  • 扫描成功之后提示音
  • 扫描成功之后界面之间的跳转
  • 扫描界面仿微信(请根据项目需求,自行布局或调整)
  • 扫描界面可自定义(扫描线条以及网格样式)

数据存储

Realm

参考文章:


iCloud 钥匙串

Valet 允许你安全的在 iOSOS X 钥匙链中存储数据,而不需要掌握任何钥匙链如何工作的知识。它支持在一台设备的多个应用(同一个开发者)间分享数据,以及在一个应用中在多个设备间利用 iCloud 进行分享,同时支持 Touch ID


SwiftyUserDefaults

SwiftyUserDefaultsUserDefaults 用起来很愉悦,通过结合意味深长的 Swifty API 和静态输入的益处,在一个地方定义键,轻松地使用值类型,获得额外的安全性和方便的编译时检查,这些都是免费的。

参考文章:


GVUserDefaults

参考文章:


时间日期

FSCalendar

FSCalendar 是一个完全自定义的 iOS 日历库,兼容 Objective-CSwift ,支持横向、纵向滑动模式,全屏模式,带有子标题、事件设置等功能。

参考文章:


Timepiece

Timepiece 是一个直观的日期处理框架。


DateTools

DateTools 是一个让时间日期处理起来更加简单的一个框架,并且 SwiftObjective-C 版本都有 。

参考文章:


界面显示

IGListKit

IGListKitInstagram 推出的新的 UICollectionView 框架,使用数据驱动,旨在创造一个更快更灵活的列表控件。

参考文章:


DZNEmptyDataSet

iOS 开发中,经常会遇到页面无数据的情况,当没有数据时,页面一片空白,顿时令用户心情很不好,DZNEmptyDataSet 能够帮助你避免这个情况,不过 DZNEmptyDataSet 只有 OC 版本,在 Swift 中需要混编使用。

参考文章:


Charts

参考文章:


DGElasticPullToRefresh

DGElasticPullToRefresh 是一个下拉刷新控件,具有非常棒的动画效果。


JSBadgeView

JSBadgeView 是一个可以自由定制的角标控件,使用起来也非常简单,暂时只有 Objective-C 版本。

参考文章:


DACircularProgress

DACircularProgress 是一个用来显示加载进度的控件,暂时只有 Objective-C 版本。


导航栏页

WRNavigationBar

WRNavigationBar 是一个导航栏设置工具,能够一行代码设置状态栏、导航栏按钮、标题、颜色、透明度,移动等。

参考文章:


KMNavigationBarTransition

KMNavigationBarTransition 是一个用来统一管理导航栏转场以及当 push 或者 pop 的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。
使用时不用 import 任何头文件,全部通过 Method Swizzling 在底层做了处理,你不用为这个库写一行代码,所有的改变都悄然发生。
本库的设计理念是使用者只用关心当前 view controller 导航栏的背景样式,而不用在 push 或者 pop 的时候处理各种背景样式。
push 的时候本库会保存消失的 view controller 导航栏的背景样式,当 pop 回去后就会还原成以前的样式,因此你不用考虑 pop 后各种导航栏样式改变的情况。同时你也不必考虑 push 后的情况,因为这个是被 pushview controller 本身需要考虑的。


SAHistoryNavigationViewController

SAHistoryNavigationViewController 是一个导航栏页面返回的库,当你重按返回按钮的时候,你可以选择之前 push 过的任何一个页面来返回,效果非常酷炫。


TLYShyNavBar TLYShyNavBar

TLYShyNavBar 可以帮助你在页面滚动时自动隐藏导航栏。


表格视图

MGSwipeTableCell.gif

MGSwipeTableCell 是一个易于使用的 UITableViewCell 子类,允许显示带有多种转换的可滑动按钮。

参考文章:


SWTableViewCell

SWTableViewCell 也是一个易于使用的 UITableViewCell 子类,允许显示带有多种转换的可滑动按钮,是一个 Objective-C 框架。


SwipeCellKit

SwipeCellKit 也是一个易于使用的 UITableViewCell 子类,允许显示带有多种转换的可滑动按钮。


滑动菜单

SwipeTableView SwipeTableView

SwipeTableView 可以实现不同菜单的左右滑动切换,同时支持类似 tableview 的顶部工具栏悬停(既可以左右滑动,又可以上下滑动),兼容下拉刷新,自定义 collectionview 实现自适应 contentSize 还可实现瀑布流功能,是一个 Objective-C 框架。


RKSwipeBetweenViewControllers

RKSwipeBetweenViewControllers 能够实现在不同页面之间左右滑动切换,是一个 Objective-C 框架。


SwipeViewController

SwipeMenuViewController SwipeMenuViewController SwipeMenuViewController

SwipeMenuViewController 也是一个可以实现页面左右滑动的一个框架。


侧滑页面

MMDrawerController

MMDrawerController 是一个侧滑视图控制器,它的设计目的是支持越来越多的应用程序来利用侧滑,是一个 Objective-C 框架。


REFrostedViewController

REFrostedViewController 是一个侧滑控制器,这个框架是将整个视图侧滑出来,而不是将原来的视图给推过去,可以满足一下不同的需求,是一个 Objective-C 框架。


MSDynamicsDrawerViewController

MSDynamicsDrawerViewController 也是一个侧滑控制器,并且侧滑过程中会有一个反弹的动画效果,是一个 Objective-C 框架。


JVFloatingDrawer

JVFloatingDrawer 是一个浮动样式的侧滑页面,利用侧滑页面的应用程序越来越多,这个框架的侧滑效果看上去非常的棒。


CWLateralSlide

CWLateralSlide 是一个非常简单的侧滑抽屉框架,目前有一些侧滑框架适用场景的局限性很高,且固定死的模板,比如设置一个 leftVCrightVCmiddleVCTabbarVC(根控制器),如果我要使用这种方式来实现侧滑,就必须根据它的要求来调整我们整个 APP 的架构,侵入型很高,新项目还好,老项目只能说,o shit!😁。假如界面要换交互方式,由于耦合高,替换成本是比较大的,而且侧滑的抽屉界面会一直存在内存里,展示在我们看不见的地方(屏幕外,或者根控制器下边)。

我们的优势: 没有所谓的 leftVCrightVC ,对整个项目没有任何限制和依赖,不需要设置啥 XXXTabbarController 这种根控制器,也没有任何需要继承自某某类~真正的0耦合、0侵入、0污染。使用极致简单,真正的大白话操作。侧滑的控制器拥有完整的生命周期函数调用。也就是说,侧滑的界面在隐藏的情况下,并不会对 App 产生额外的内存占用(正确的被释放)最重要的是简单:只要一行代码就能拥有一个侧滑抽屉。


FDFullscreenPopGesture

FDFullscreenPopGesture 是一个简单的全屏侧滑返回框架,低耦合十分的轻量级。


其他框架

SnapKit.png

参考文章:


AsyncDisplayKit

AsyncDisplayKitFacebook2014 年开源的一个异步界面渲染库,她是构筑于 UIKit 之上的一个封装库,与 UIView 是平级的关系(同时提供 UIView bridge 接口)。

参考文章:


FileKit

FileKit 是一个 Swift 框架,可以用来简单而直观地进行文件管理。

参考文章:


DeviceKit

DeviceKitUIDevice 的值类型替换,可以轻松获取设备信息和电池电量。


RandomKit

RandomKit 是一个简单易用的随机数据生成框架,RandomKit 基于一系列接口构建,因此我们也能非常方便地按相同风格添加一些自定义随机数据类型。

参考文章:


SwiftyStoreKit

SwiftyStoreKit 是一个轻量的 App 内购框架,支持 iOS 8.0+tvOS 9.0+macOS 10.10+


CryptoSwift

CryptoSwift 是一个加密相关的帮助函数实现,支持 md5sha1sha224sha256 等等。


IQKeyboardManager

IQKeyboardManageriOS 中解决键盘弹起遮挡 UITextField / UITextView 的一种很实用的工具,无需输入任何代码,不需要额外的设置,使用 IQKeyboardManager 的你只需要将源文件添加到项目,并且支持 Objective-CSwift

参考文章:


将来的你,一定会感激现在拼命的自己,愿自己与读者的开发之路无限美好。

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务