做开发的都知道,不要重复的造轮子,要提高工作效率,轮子好多人都已经造好了,好用,bug又少,本篇文章就是要整理好用的第三方库,希望可以帮助大家,帮助自己,慢慢更新中, 如果有好用的库,请在评论去留言,慢慢添加
这些都是我自己经常用到的, 大家一起交流下。
-
短信验证码
使用mob_smssdk
发送验证码, 宣称永久免费、没有使用限制,感觉挺好用,反正不花钱。唯一吐槽的时短信内容有官方名字,个人用户自定义模板又几乎不可能。如果用户量大了就别用了,花点钱搞个正式的。
-
关于一些icon切图
前提若没有美工,没有设计,去哪里搞好看的图片?直接想到的就是解压别人的IPA获取一些资源(太明显了也不好看)。我使用的是阿里巴巴矢量图标库http://www.iconfont.cn,这里资源很丰富,一些基础的图标可以拿来直接使用。
-
Alamofire -swift
网络请求框架,APP必引用的库
地址:https://github.com/Alamofire/Alamofire
其他解析:https://www.jianshu.com/p/4381fe8e10b6
示例
struct Login: Encodable {
let email: String
let password: String
}
let login = Login(email: "[email protected]", password: "testPassword")
AF.request("https://httpbin.org/post",
method: .post,
parameters: login,
encoder: JSONParameterEncoder.default).response { response in
debugPrint(response)
}
-
Moya (必用) 网络请求层封装
地址:https://github.com/Moya/Moya.git
-
LZTag - 标签选择器(必用)
使用说明:https://www.jianshu.com/p/41600e45a10a
gitub:https://github.com/lizhi0123/LZTag
适用 历史记录,热门搜索,或者其他的tag显示,可定制 灵活
-
URLNavigator - Swift
以链接的方式打开controller,Router路由
地址: https://github.com/devxoul/URLNavigator
示例
Navigator.push("myapp://user/123")
Navigator.present("myapp://post/54321", wrap: UINavigationController.self)
Navigator.open("myapp://alert?title=Hello&message=World")
其他解析:https://blog.csdn.net/jancywen/article/details/105110685
https://www.jianshu.com/p/3bbabe0e93b0
-
HandyJSON -swift 竟然是alibaba 的
HandyJSON是一个用于Swift语言中的JSON序列化/反序列化库。 必用
https://github.com/alibaba/HandyJSON
Deserialization
class BasicTypes: HandyJSON {
var int: Int = 2
var doubleOptional: Double?
var stringImplicitlyUnwrapped: String!
required init() {}
}
let jsonString = "{\"doubleOptional\":1.1,\"stringImplicitlyUnwrapped\":\"hello\",\"int\":1}"
if let object = BasicTypes.deserialize(from: jsonString) {
print(object.int)
print(object.doubleOptional!)
print(object.stringImplicitlyUnwrapped)
}
Serialization
let object = BasicTypes()
object.int = 1
object.doubleOptional = 1.1
object.stringImplicitlyUnwrapped = “hello"
print(object.toJSON()!) // serialize to dictionary
print(object.toJSONString()!) // serialize to JSON string
print(object.toJSONString(prettyPrint: true)!) // serialize to pretty JSON string
-
ObjectMapper -swift
json 转model, model转json , 必用
https://github.com/tristanhimmelman/ObjectMapper
let user = User(JSONString: JSONString)
let JSONString = user.toJSONString(prettyPrint: true)
-
KakaJSON
json 转model, model转json
和 MJRefresh 同一个作者
-
Kingfisher (必用)
异步加载图片
-
SnapKit(必用)
约束相当于 objective-c 的 Mansory
-
SwifterSwift(必用 - 效率神器)
swift 常用扩展
-
IQKeyboardManagerSwift
键盘出现或小时,UI自动变化
-
TPKeyboardAvoiding OC -
实现自动上滚,避免键盘遮盖住了textfield,textview等控件; https://github.com/michaeltyson/TPKeyboardAvoiding
-
MMKV
存储数据 ,使用方法 类似
userDefault
-
Bugly (必用)
腾讯 崩溃检测
-
SVGAPlayer
svga 动画播放,类似 抖音 直播 发礼物的效果 火箭效果
-
WKWebViewJavascriptBridge(必用)
WKWebView 和 js 之间的交互
-
QMUIKit
objective -c 的, 常用的UI封装
-
MJExtension -OC
model 和 string,dict 互转
-
友盟统计
-
SwiftyStoreKit
内购
✅ 图片相关 ↓
-
FSPagerView swift (必用)
图片轮播图
https://github.com/WenchaoD/FSPagerView
-
TZImagePickerController(必用)
照片选择器 是选择哦。选择图片后,还可以编辑图片的尺寸大小 cropRect。
-
SKPhotoBrowser图片浏览器 swift(需要更新数据源 慎用)
图片浏览器,可以从小到大 ,有个bug ,不能更新数据源。
-
ZLPhotoBrowser - swift 图片选择,和 图片浏览
图片选择,和 图片浏览; 支持 预览快速选择(参考QQ)
https://github.com/longitachi/ZLPhotoBrowser/blob/master/README_CN.md
-
YBImageBrowser 图片浏览器 ()oc
图片浏览器 ,可以像 微博,微信朋友圈 那样 从小 到大 显示,可以左右滑动,缩放。
可以自定义数据源,大图转小图时 不会闪动。不易于自定义样式
https://github.com/indulgeIn/YBImageBrowser
-
JXPhotoBrowser 图片浏览器 swift (推荐 扩展性好)
图片浏览器,可以从小 到大 显示,可以自定义显示cell,可以 设置本地图片 ,网络图片下载有个bug,当大图 缩小的小图的时候, 要是uiimageVie contentMode ,layer.cornerRadius不一样时 ,会闪动一下,解决方法:自定义动画 ,设置 动画中间图片的 contentMode,和 layer.cornerRadius
https://github.com/JiongXing/PhotoBrowser
-
JXSegmentedView(必用)
一个轻量级、配置丰富、灵活扩展的分段控制器 tab 标签
ZFPlayer(视频播放器)
视频播放器 https://github.com/renzifeng/ZFPlayer
VIMediaCache OC(播放器缓存 变下边播)
AVPlayer 变下边播 缓存
https://github.com/vitoziv/VIMediaCache
✅ 侧滑返回 ↓
FDFullscreenPopGesture 侧滑返回 OC
https://github.com/forkingdog/FDFullscreenPopGesture/tree/master/FDFullscreenPopGesture
SJFullscreenPopGesture 侧滑返回 支持 OC ,支持swift
https://github.com/changsanjiang/SJFullscreenPopGesture
# ObjC
pod 'SJFullscreenPopGesture/ObjC'
# Swift
pod 'SJFullscreenPopGesture/Swift'
TZScrollViewPopGesture scrollview 和 mapView 也支持侧滑返回
https://github.com/banchichen/TZScrollViewPopGesture
✅ 需要你的帮助
⚠️⚠️⚠️ ✅ 一个人的能力有线, 你还有哪些好用的库,请在评论区 留言。 大家互助哈 。比如 数据库 相关的,UI库 相关的。期待你的留言。