iOS 端豆瓣开源许可提到的库

在网上看到一篇豆瓣开源许可-android的文章,列举了一些 Android 端豆瓣开源许可中所提到的第三方框架,出于好奇心理在网上搜索了一下想看下有没有 iOS 版本。结果是没有的,于是索性就自己动手整理了一份:

  1. nanopb / nanopb:具有较小代码量的协议缓冲区
  2. airbnb / lottie-ios:一个 iOS 库,用于本地渲染 After Effects 矢量动画
  3. jspahrsummers / libextobjc:一个 Coca Library,用于扩展 Objective-C 编程语言的动态性
  4. ibireme / YYCache:iOS 的高性能缓存框架
  5. TTTAttributedLabel / TTTAttributedLabel:UILabel 的替代品,支持属性,数据检测器,链接等
  6. glaszig / SZTextView:替代 UITextView 的替代方案,为您提供:占位符。
  7. ZipArchive / ZipArchive:ZipArchive 是用于在 iOS,macOS 和 tvOS 上压缩和解压缩文件的简单实用程序类。
  8. soffes / SAMKeychain:适用于 Mac 和 iOS 的钥匙串的简单 Objective-C 包装器
  9. ReactiveCocoa / ReactiveObjC:2.x ReactiveCocoa Objective-C API:函数式响应式编程
  10. tonymillion/Reachability:网络可用性
  11. PureLayout / PureLayout:适用于 iOS 和 OS X Auto Layout 的终极 API —极其简单,功能强大。 与Objective-C 和 Swift 兼容。
  12. google / promises:Promises是一个现代框架,可为 Swift 和 Objective-C 提供同步结构,以方便编写异步代码。
  13. shramos / polymorph:Polymorph是一种实时网络数据包处理框架,几乎支持所有现有协议,是一种工具,它允许在实时拦截的网络数据包上执行Python代码,从而有助于即时修改网络流量。
  14. muZZkat / NMRangeSlider:UISlider,适用于 iOS 的自定义范围滑块
  15. novastone-media / MQTT-Client-Framework:iOS,macOS,tvOS 本机 ObjectiveC MQTT 客户端框架,消息推送
  16. Tencent/ MLeaksFinder:在开发时查找 iOS 应用中的内存泄漏。
  17. ChangbaDevs / KTVHTTPCache:一个功能强大的媒体缓存框架。
  18. ChangbaDevs/KTVCocoaHTTPServer
  19. HisaMasa / JYSlideSegmentController:JYSlideSegmentController 是一个视图控制器容器,就像 UITabBarController 一样,具有平滑的手势。
    • 截图
      R9dt1mfbHzTZJEB
  20. futuretap / InAppSettingsKit:此 iOS 框架允许将设置设置为应用程序内设置,而不是将其设置为设置应用程序。
  21. ikesyo / Himotoki:一种完全由 Swift 编写的类型安全的 JSON 解码库
  22. ishkawa / APIKit:类型安全的网络抽象层,将请求类型与响应类型相关联。
  23. SDWebImage / SDWebImage:具有缓存支持的异步图像下载器,作为 UIImageView Category
  24. SDWebImage / SDWebImageWebPCoder:用于 SDWebImage 的 WebP 编码器插件,请使用libwebp
  25. webmproject / libwebp:WebP编解码器:用于以WebP格式编码和解码图像的库
  26. AFNetworking / AFNetworking:一个适用于 iOS,macOS,watchOS 和 tvOS 的令人愉悦的网络框架。
  27. akkyie / AKPickerView:一个简单但可自定义的水平选择器视图。
  28. BlocksKit / BlocksKit:您一直希望拥有的 Objective-C block 实现。
  29. robbiehanson / CocoaAsyncSocket:适用于 Mac 和 iOS 的异步 socket 网络库
  30. CocoaLumberjack / CocoaLumberjack:适用于 Mac 和 iOS 的快速,简单,功能强大且灵活的日志记录框架
  31. douban / DOUSNSSharing:SNS OAuth 2 绑定和共享
  32. devicekit / DeviceKit:DeviceKit 是 UIDevice 的值类型替换。
  33. facebook / FBRetainCycleDetector:iOS 库,可帮助检测运行时中的保留周期。
  34. ccgus / fmdb:这是一个围绕SQLite的Objective-C包装器。
  35. foursquare / FSQCollectionViewAlignedLayout:FSQCollectionViewAlignedLayout 是一种通用的集合视图布局,旨在非常灵活和可配置。 目的是使每次 UICollectionViewFlowLayout 不适合其视图的用户都不必编写自己的自定义布局类。
  36. Firebase
  37. FirebaseAnalytics
  38. FirebaseCore
  39. FirebaseCoreDiagnostics
  40. Firebase Crashlytics
  41. FirebaseInstallations
  42. FormatterKit / FormatterKit:stringWithFormat:用于复杂的黑客集
  43. GoogleDataTransport
  44. AppMeasurement
  45. HeshamMegid / HMSegmentedControl:UISegmentedControl 的高度可定制的替代品。

因为数量众多的原因,许多库的描述我是直接使用 GitHub 上的描述机译后的结果,如有不甚了解或是产生误解的地方,还请读者点击链接访问库地址了解详情。

从以上列举的第三方库来看,豆瓣的 iOS 客户端编写仍然以 Objective-C 为主,但也有用到 Swift,没有用到跨平台的框架,部分库已经略显老旧(不排除他们自己维护更新的可能),来自于谷歌的以 Firebase 为核心的的第三方库,在客户端中应用广泛,这个库也是在之前我所不了解的,除此以外,还有一些了解后也不知道具体实现后会有什么效果的,如:

是用来让 protocol 文件变小的吗?

诸如这类情况,整理并不能收获什么,只是方便了索引,真正的提高还需要进一步的基于业务对第三方库的使用和源码阅读。

最后一点题外话,在去年的时候点开各大软件的设置界面,有开源许可页面的应用记得还有知乎、京东、网易云这些,但在这次整理豆瓣开源许可第三方库的时候,再打开那些应用里看,发现原来的入口都已经消失。很好奇这种变化是因为原来所有的那些第三方库被那些公司用自研的技术取代了,还是因为对技术的尊重本就是一种可有可无的东西,在某次版本更迭中没做多大取舍就轻易的给取消了(取消了这份尊重)?虽然不是很重要的事,但细思起来好像也颇有些耐人寻味的地方。