ios Swift 常用的第三方库

3,341 阅读4分钟

做开发的都知道,不要重复的造轮子,要提高工作效率,轮子好多人都已经造好了,好用,bug又少,本篇文章就是要整理好用的第三方库,希望可以帮助大家,帮助自己,慢慢更新中, 如果有好用的库,请在评论去留言,慢慢添加

这些都是我自己经常用到的, 大家一起交流下。

  • 短信验证码

使用mob_smssdk发送验证码, 宣称永久免费、没有使用限制,感觉挺好用,反正不花钱。唯一吐槽的时短信内容有官方名字,个人用户自定义模板又几乎不可能。如果用户量大了就别用了,花点钱搞个正式的。

  • 关于一些icon切图

前提若没有美工,没有设计,去哪里搞好看的图片?直接想到的就是解压别人的IPA获取一些资源(太明显了也不好看)。我使用的是阿里巴巴矢量图标库www.iconfont.cn,这里资源很丰富,一些基础的图标可以拿来直接使用。

网络请求框架,APP必引用的库

地址:github.com/Alamofire/A… 其他解析:www.jianshu.com/p/4381fe8e1…

示例👇🏻

struct Login: Encodable {
    let email: String
    let password: String
}

let login = Login(email: "test@test.test", password: "testPassword")

AF.request("https://httpbin.org/post",
           method: .post,
           parameters: login,
           encoder: JSONParameterEncoder.default).response { response in
    debugPrint(response)
}
  • Moya (必用) 网络请求层封装

地址:github.com/Moya/Moya.g…

以链接的方式打开controller,Router路由

地址: github.com/devxoul/URL… 示例👇🏻

Navigator.push("myapp://user/123")
Navigator.present("myapp://post/54321", wrap: UINavigationController.self)
Navigator.open("myapp://alert?title=Hello&message=World")

其他解析:blog.csdn.net/jancywen/ar… www.jianshu.com/p/3bbabe0e9…

  • HandyJSON -swift json,model互转 竟然是alibaba 的

HandyJSON是一个用于Swift语言中的JSON序列化/反序列化库。 必用

github.com/alibaba/Han… 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 , 必用 github.com/tristanhimm…

let user = User(JSONString: JSONString)
let JSONString = user.toJSONString(prettyPrint: true)
  • KakaJSON (json,model 互转)

json 转model, model转json

和 MJRefresh 同一个作者

  • Kingfisher (必用) 异步加载图片

异步加载图片

  • SnapKit(必用)布局

约束相当于 objective-c 的 Mansory

  • SwifterSwift(必用 - 效率神器)常用的标准库扩展

swift 常用扩展

  • IQKeyboardManager Swift 键盘

github.com/hackiftekha…

键盘出现或小时,UI自动变化

  • TPKeyboardAvoiding OC -

实现自动上滚,避免键盘遮盖住了textfield,textview等控件; github.com/michaeltyso…

  • MMKV

存储数据 ,使用方法 类似userDefault

  • Bugly (必用)

腾讯 崩溃检测

  • SVGAPlayer svga 动画播放器

svga 动画播放,类似 抖音 直播 发礼物的效果 火箭🚀效果

  • WKWebViewJavascriptBridge(必用) WKWebView 和 js 相互调用

WKWebView 和 js 之间的交互

  • QMUIKit

objective -c 的, 常用的UI封装

  • MJExtension -OC

model 和 string,dict 互转

  • 友盟统计

  • SwiftyStoreKit ios内购

内购


✅ 图片相关 ↓

  • FSPagerView swift (必用 图片轮播图)

图片轮播图 github.com/WenchaoD/FS…

  • TZImagePickerController(必用 oc) 图片选择器

照片选择器 是选择哦。选择图片后,还可以编辑图片的尺寸大小 cropRect。

  • ZLPhotoBrowser swift 图片选择器

图片选择器 地址 github.com/longitachi/…

  • SKPhotoBrowser图片浏览器 swift(需要更新数据源 慎用)

图片浏览器,可以从小到大 ,有个bug ,不能更新数据源。

  • ZLPhotoBrowser - swift 图片选择,和 图片浏览

图片选择,和 图片浏览; 支持 预览快速选择(参考QQ) github.com/longitachi/…

  • YBImageBrowser 图片浏览器 ()oc

图片浏览器 ,可以像 微博,微信朋友圈 那样 从小 到大 显示,可以左右滑动,缩放。 可以自定义数据源,大图转小图时 不会闪动。不易于自定义样式 github.com/indulgeIn/Y…

  • JXPhotoBrowser 图片浏览器 swift (推荐 扩展性好)

图片浏览器,可以从小 到大 显示,可以自定义显示cell,可以 设置本地图片 ,网络图片下载有个bug,当大图 缩小的小图的时候, 要是uiimageVie contentMode ,layer.cornerRadius不一样时 ,会闪动一下,解决方法:自定义动画 ,设置 动画中间图片的 contentMode,和 layer.cornerRadius github.com/JiongXing/P…


  • JXSegmentedView(必用) - tab菜单

LineFixedWidth.gif

一个轻量级、配置丰富、灵活扩展的分段控制器 tab 标签 github.com/pujiaxin33/…

PageMenu

github.com/PageMenu/Pa…

ZFPlayer(视频播放器)

视频播放器 github.com/renzifeng/Z…

VIMediaCache OC(播放器缓存 变下边播)

AVPlayer 变下边播 缓存 github.com/vitoziv/VIM…


✅ 侧滑返回 ↓

  • FDFullscreenPopGesture 侧滑返回 OC

github.com/forkingdog/…

  • SJFullscreenPopGesture 侧滑返回 支持 OC ,支持swift

github.com/changsanjia…

# ObjC 
    pod 'SJFullscreenPopGesture/ObjC'
    
    # Swift
    pod 'SJFullscreenPopGesture/Swift'
  • TZScrollViewPopGesture scrollview 和 mapView 也支持侧滑返回

github.com/banchichen/…

ESPullToRefresh (swift) 下拉刷新加载更多

可以替代 MJRefresh

github.com/eggswift/pu…

DGElasticPullToRefresh 下拉刷新

地址:github.com/gontovnik/D…

DGElasticPullToRefreshPreview2.gif

HGPlaceholders(swift) tableview,collectionview 空状态

github.com/HamzaGhazou…

EmptyDataSet-Swift

(DZNEmptyDataSet  with Swift) tableview,collectionview 空状态

github.com/Xiaoye220/E…

awesome-xcode-extensions xcode 常用的扩展库 你值得拥有,提升开发效率

github.com/theswiftdev…

QRCode 二维码扫描 SwiftScan

github.com/chenjie1219…

✅ 抽屉侧滑菜单 ↓

  • SideMenu 抽屉侧滑菜单

github.com/jonkykong/S…

SlideOut.gif

leftMenu, rightMenu 是present 出来的。在最顶层

  • ENSwiftSideMenu

github.com/evnaz/ENSwi…

  • FlowingMenu

github.com/yannickl/Fl…

  • RESideMenu (oc)

github.com/romaonthego…

  • CWLateralSlide (oc) 可参考思想

github.com/ChavezChen/…

✅ 需要你的帮助

⚠️⚠️⚠️ ✅ 一个人的能力有线, 你还有哪些好用的库,请在评论区 留言。 大家互助哈 。比如 数据库 相关的,UI库 相关的。期待你的留言。