Swift类库 - ShenYj/ShenYj.github.io GitHub Wiki
Swift 5.0+
类库汇总
-
工具库
-
基础类库
- R.swift 资源文件管理
- DeviceKit 获取设备信息
- IQKeyboardManagerSwift 键盘处理
- SwifterSwift extension
- SwiftyImage 生成UIImage的扩展, 很好用, 之前自己简单封装的扩展基本可以废弃了
- CryptoSwift 加密
- SwiftyRSA
- Dollar 高阶函数封装
- Guitar 跨平台的正则校验
- Device 支持 Mac
- SwiftyStoreKit IAP
- BluetoothKit 蓝牙
- SwiftOCR 图像识别
- SnapKit 自动布局框架
- Cartography 自动布局DSL
- TextAttributes 封装NSAttributedString的框架,让attributed strings处理更加简单,而且是链式结构,看起来更加直观
- BonMot
- SwiftTheme 换肤
- MonkeyKing 社会化分享框架,支持分享text、url、image、audio、file到WeChat、QQ、Alipay、Weibo
- Nuke 图片加载类库
- Kingfisher 图片加载类库
- Schedule 定时器
- SwiftTimer
- Async Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch
- AwaitKit The ES8 Async/Await control flow for Swift
- PromiseKit
- SheetyColors An action sheet styled color picker for iOS
- CameraManager 摄像头, 拍照
- Localize-Swift 本地化
- SwiftyGif High performance & easy to use Gif engine
-
持久化/缓存
- SQLite.swift SQLite封装库
- SugarRecord 基于CoreData与REALM的好用封装
- KeychainSwift Keychain
- KeychainAccess Keychain
- swift-security Modern Swift framework for Keychain API. Supports iOS, macOS, watchOS, tvOS and visionOS (iOS 14.0 +), 目前只提供SPM支持
- Valet Keychain
- SwiftyUserDefaults 对NSUserDefaults的封装
- Zephyr Effortlessly synchronize UserDefaults over iCloud.
- Track
- AwesomeCache Delightful on-disk cache (written in Swift)
- Cache
- TinyStorage lightweight replacement for UserDefaults that makes access a little more straightforward (plus some niceties!)
-
网络
- Alamofire
- AlamofireNetworkActivityIndicator 网络指示器
- ReachabilitySwift 用来检查应用当前的网络连接状况
- Moya 网络抽象层
- KafkaRefresh
- ESPullToRefresh 下拉刷新, 有些瑕疵 MJ依旧很香
- SwiftyJSON JSON解析
- MoyaMapper 基于Moya和SwiftJSON, 通过插件的方式进行解析
- Argo 函数式json解析转换库
- HandyJSON 阿里提供的JSON模型解析库
- ObjectMapper 这是我 Swift 下首选的模型解析库了, HandyJSON 在实现原理上的确牛逼,但是稳定性上堪忧, 加上有点KPI产物,不太敢用
- SmartCodable SwiftCodable 是一个简单易用的数据解析库,基于 Swift 的 Codable 协议实现。它提供了强大的数据解析功能,并在解析失败时提供了良好的兼容性支持,并拥有优良的解析性能。参考了HandyJSON的对外API的实现,可以快速的替换HandyJSON。
-
颜色设置
- Hue
- DynamicColor
- FluentDarkModeKit 微软的暗黑模式适配库
-
日期格式化
- DateToolsSwift 日期格式化处理
- Timepiece 日期格式化处理
-
多媒体
- 音频
- StreamingKit 适用于 OSX 和 iOS(iPhone、iPad)的快速且可扩展的无间隙 AudioPlayer/AudioStreamer, 3年没更新了 (OC库)
- HaishinKit 通过 RTMP、HLS for iOS、macOS、tvOS 的相机和麦克风流媒体库。
- Accelerator Core iOS OpenTok iOS SDK 的语法糖与音频/视频通信,包括屏幕共享
- Airstream 使用 AirPlay 在 Apple 设备之间流式传输音频的框架。 6年没更新了, 来学习还是不错的
- Jukebox 一个支持本地和远程音频文件的播放器, 6年没更新了
- DeckTransition A library to recreate the iOS 10 Apple Music now playing transition
- AudioKit 适用于 iOS、macOS 和 tvOS 的 Swift 音频合成、处理和分析平台
- AudioPlayer 一个用于在 iOS、macOS 和 tvOS 应用程序中播放音频的简单类 还在维护中,目前star较少, 提供的功能也很少
- 视频类
- BMPlayer 一款基于AVPlayer的iOS视频播放器,支持横竖屏。支持调整音量、亮度和滑动搜索,支持字幕。
- MobilePlayer
- 音频
-
-
UI类库
-
RAMAnimatedTabBarController 支持动画的TabBarController
-
ESTabBarController-swift 支持动画的TabBarController
-
SwipeCellKit UITableViewCell 滑动菜单
-
Instructions 新手引导
-
Onboard 导航页
-
SkeletonView 请求中的占位图控件
-
swiftScan 扫码
-
Gifu 加载gif的框架,表现良好
-
JXMarqueeView 跑马灯
-
WhatsNewKit 新特性页面
-
FaceAware 让UIImageView展示出更好的对焦效果
-
SwiftyFORM 写表单页面, 需要
iOS 12+
-
MessageKit A community-driven replacement for JSQMessagesViewController
-
CollectionViewPagingLayout 一个相当优秀的CollectionView layout库,23年6月份被归档
-
HorizonCalendar 高性能的 iOS 日历 UI 组件
-
ImageViewer An easy to use Image Viewer that is inspired by Facebook
-
分页视图
- JXSegmentedView 分段菜单, 样式丰富, 实现简单
- Tabman A powerful paging view controller with interactive indicator bars
- Parchment 菜单
- FSPagerView 分页、轮播、引导页等
- DNSPageView 轻量级的分页
- LTScrollView ScrollView嵌套ScrolloView(UITableView 、UICollectionView)解决方案
- Pageboy A simple, highly informative page view controller
- SwipeMenuViewController 分页视图
- JXPagingView
-
抽屉
- FlowingMenu 可替代抽屉 (Swift 4.2)
- ENSwiftSideMenu
-
控件库
-
PhoneNumberKit 专门针对电话号码格式做的一个输入框
-
TextFieldEffects 具有非常多、非常nice的输入框视图
-
SkyFloatingLabelTextField 类似于OC的JVFloatLabeledTextField,编辑就会出现浮动的提示label
-
InputBarAccessoryView 输入框控件,而且还对 Rx 作了 subspec
-
LTMorphingLabel 拥有很多种特性的label,文字动画效果
-
ActiveLabel.swift 支持Hashtags、Mentions、Links响应事件处理
-
Atributika Convert text with HTML tags, links, hashtags, mentions into NSAttributedString. Make them clickable with UILabel drop-in replacement.
-
BetterSegmentedControl 分段控件 类似微博主页、简书主页、QQ联系人页面等效果。多页面嵌套,既可以上下滑动,也可以左右滑动切换页面。支持HeaderView悬浮、支持下拉刷新、上拉加载更多
-
MFCard 信用卡录入控件
-
Loady fully customizable loading button with 9 different styles
-
WCLShineButton 一个特效按钮, 适合于点赞收藏赞
-
fave-button FaveButton is an iOS cute animated like button written in Swift.
-
TransitionButton UIButton sublass for loading and transition animation
-
DynamicButton Yet another animated flat buttons in Swift
-
NKVPhonePicker An UITextField subclass to simplify country code's picking. Swift 5.0
-
alerts-and-pickers Advanced usage of UIAlertController and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date...
-
BEMCheckBox Tasteful Checkbox for iOS. (Check box)
-
M13Checkbox A customizeable checkbox for iOS
-
Floaty Floating Action Button for iOS
-
ImageSlideshow
1.5k
图片预览轮播 -
Tags 🙌 Quick, Simple Tag Library 👍
-
TagListView Simple and highly customizable iOS tag list view, in Swift.
-
MarqueeLabel A drop-in replacement for UILabel, which automatically adds a scrolling marquee effect when the label's text does not fit inside the specified frame
-
进度条
- MKRingProgressView
- HGCircularSlider
- MultiProgressView An animatable view that depicts multiple progresses over time. Modeled after UIProgressView
-
DockProgress
macOS
- FlexibleSteppedProgressBar Flexible Stepped Progress Bar for IOS
-
相簿
-
ImagePicker 拍照+图片选择
4.6k
-
ZLPhotoBrowser 微信样式的图片选择器,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑图片/视频,支持多语言国际化等功能
3.7k
-
YPImagePicker
3.6k
-
SKPhotoBrowser 受Facebook启发的简单PhotoBrowser / Viewer,由swift编写的twitter照片浏览器
2.3k
-
TLPhotoPicker
facebook
样式1.8k
-
Gallery
1.4k
-
PhotoBrowser
1.1k
-
ImagePicker 拍照+图片选择
-
-
动画
- Hero
- AMScrollingNavbar
- Spring Spring 动画
- ACHNBrowserUI 动画类
- StarWars 很炫酷的转场动画效果,视图碎片化掉落
- Advance
- IBAnimatable 主要使用于Interface Builder,不需要一行代码就可打造拥有炫酷动画效果的UI界面
- ViewAnimator
- Sica
-
加载指示、HUD、Alert
- PKHUD
- ProgressHUD
- KRProgressHUD
- NVActivityIndicatorView 加载指示器
- Toast
- Toaster
- AwaitToast 简洁的顶部或底部的Toast
- LiquidLoader
- Loaf
- StatusAlert
- GradientLoadingBar
- SwiftSpinner A beautiful activity indicator and modal alert written in Swift (originally developed for my app DoodleDoodle) Using blur effects, translucency, flat and bold design - all iOS 8 latest and greatest
- CLPopoverManager 自定义弹窗管理工具
-
弹层视图
- SwiftMessages 样式丰富, 功能全面的弹层控件
- Sheeeeeeeeet Sheeeeeeeeet is a Swift library for creating menus, custom action sheets, context menus etc,新发现的一个不错的库, 正在考虑替换用 SwiftMessages封装的 Alert/Panel样式类的弹层
- NotificationBanner The easiest way to display highly customizable in app notification banners in iOS
- FloatingPanel 类似于高德地图那样的拖拽悬挂弹层
- Aiolos A floating panel for your iOS Apps
- Panels 看着还不错的一个库,但是 2年多没更新了
- PanelKit 不错的一个库,已经归档停更了
- Pulley 底部抽屉库 类似于高德地图式的底层悬挂弹层
- SwiftEntryKit 提供了多种丰富样式的弹层
- BulletinBoard 很不错的卡片样式弹层 官方文档
- SCLAlertView-Swift
- AMPopTip 文字提示
- XLActionController Fully customizable and extensible action sheet controller written in Swift
- PMAlertController
- PopupDialog
- Whisper 使用简单、功能实用的消息及应用通知组件
- GSMessages
- CDAlertView 高度可定制的Alertview
- CFNotify
- PopupDialog
- Sheet
- YALSideMenu 有点类似于抽屉的侧边菜单,还有个不错的动画效果
-
-
性能分析
-
单元测试
- Nimble
- Quick
- MockFive
- SwiftMock a mocking framework for Swift, 已经支持到了5.2, 仍在维护中的
- MockingKit ockingKit is a Swift-based mocking library that makes it easy to mock protocol implementations for unit tests and not yet implemented functionality. It lets you register function results, invoke and inspect method calls etc
- Dobby mocking and stubbing
-
Rx & MVVM
-
RxSwift 核心, 包含RxSwift、RxCocoa和RxRelay
-
RxSwiftExt 操作符扩展
-
RxOptional 操作符扩展
-
NSObject-Rx 基于
NSObject
的垃圾袋扩展 -
以下是一些具体业务场景的衍生库,根据需要选择
- RxAlamofire
- RxKeyboard
- RxRealm
- RxWebKit
- RxAlert
- RxCoreLocation
- RxDataSources 实现复杂列表时会用得到
- RxGesture
- RxAnimated
- RxKingfisher
- RxLocalizer 需要注意, iOS 12+
- RxTheme
- RxReachability
- RxNimble
-
MVVM
- CleanArchitectureRxSwift
- SwiftHub RxSwift+MVVM的开源项目
-
-
Other
- swift-protobuf Plugin and runtime library for using protobuf with Swift
- ProtobufKit
- lottie-ios lottie动画
- FontBlaster Programmatically load custom fonts into your iOS, macOS and tvOS app.
- DoraemonKit 滴滴的开源工具集,最好用的如 Mock 接口数据
- CocoaDebug iOS Debugging Tool
- Swift-DocC
- CocoaLumberjack log工具 star 12k+
- Then initializers 语法糖
- SwiftyBeaver log工具
- RainbowSwift log工具
- SwiftyStoreKit 应用内购 停止维护更新
- FileKit Swift 中简单而富有表现力的文件管理
- XCGLogger log输出 推荐
- ScheduledNotificationsViewController 本地通知调试工具
- Log log输出
- Design-Patterns-In-Swift 设计模式
- Starscream Socket库
- BlueSocket Socket framework for Swift
- xSwift
- swift-html
- SwiftSoup Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS)
- Plot A DSL for writing type-safe HTML, XML and RSS in Swift.
- Kanna XML/HTML parser
- Perfect swift的服务器端开发框架(针对于移动后端开发、网站和web应用程序开发)
- AltStore 分发应用
- DiDiPrism 小桔棱镜,是一款专注于移动端操作行为的工具,涵盖APP操作回放、操作检测、以及数据可视化能力
- URLNavigator Swift的优雅URL路由
- ResponseDetective 一个非嵌入式框架,用于拦截应用程序和服务器之间的任何传出请求和传入响应以用于调试目的.
- AcknowList
- Highlightr iOS & OSX Syntax Highlighter.
- Rainbow Delightful console output for Swift developers.
- Zip Swift framework for zipping and unzipping files.
- ZIPFoundation Effortless ZIP Handling in Swift
- ZipArchive SSZipArchive
- Swinject
- Cleanse
- Needle
- PythonKit 在 Swift 下调用 Python 的库, 据说是从 TensorFlow 迁移出来的,利用 Swift 里 @dynamicCallable和 @dynamicMemberLookup实现动态调用。
- IOSSecuritySuite
- Swift-JWT
- JSONWebToken.swift 很久没更新了
- CocoaMQTT
- Rugby Cache CocoaPods for faster rebuild and indexing Xcode project.
- swift-java 提供了 Swift 和 Java 互操作性的工具和库,允许 Swift 程序直接调用 Java API
- swift sh Easily script with third-party Swift dependencies
-
SwiftUI 库
- Exyte 很多SwiftUI库