当前位置:
首页
文章
前端
详情

iOS开发常用的第三方库 2022-04-03 周日

简介

  • 当前的时间节点,国外Swift已经占主流;国内,正处于从Objective-C向Swift逐步过渡的时期。

  • 所以,工作中用Objective-C,同时Swift边学边做,算是一个方法。
    当然,有把握的,直接过渡到Swift也是好的。适应的时间大约也就一个星期半个月的样子。再不济的,一个月的适应时间肯定是够了。

  • 从Objective-C切换到Swift,除了编码习惯要变之外,第三方库的选择也要变一变。当然,这些库是可以通用的,但是,选用相同语言的总感觉要好一些。

  • 说到第三方库,就会想到CocoaPods,在Objective-C的语境下,几乎是必选的。不过在Swift的情况下,XCode自带的Swift Package Manager就可以考虑。另外,Carthage也是选项之一。
    目前,Swift语境下,首先使用XCode自带的Swift Package Manager。Carthage在这么多年的竞争下已经落败,意义不大。CocoaPods每次用都要出幺蛾子,早就想扔了。

Objective-C

网络库

  • 一开始的时候还有两三个选择,目前基本都选这个:
    AFNetworking

  • 二次封装的网络库,有兴趣可以考虑采用。本人不选,就像weex对RN的二次封装差不多。
    YTKNetwork

图片加载

  • 展示网络图片几乎每个APP都需要,基本上也都选这个:
    SDWebImage

  • 另外YYWebImage也是很不错的,只是SDWebImage更流行,所以这个可以作为备选。

自动布局

  • 苹果提供的相对布局API很难用,新创的布局语言更是扯淡。这个第三方提供的方法符合人性,几乎是默认选项
    Masonry

HUD

  • 俗称小转转,这里有好多个选择,这里选Star最多的(相信潮流的选择)
    MBProgressHUD

  • 下面这个也很好用,Star也很多,给的API更直白。
    SVProgressHUD

  • 只要有网络请求,这个几乎是必须的,自己写没必要,选择一个主流的第三方库是很好的方式。

与JS交互

在大前端如火如荼的现在,原生+H5的混合架构仍然是主流。原生与H5的交互框架一直以来就只有下面这个占主流。
WebViewJavascriptBridge

字典转模型

本地数据是对象模型,网络数据格式基本上是JSON,所以字典转模型也是强需求

  • 本人比较喜欢# YYModel
    ,项目中也一直在用,感觉很不错,也没有换的意思。

  • MJExtension 也是非常好用的一个库,Star数量更多,更流行。

  • 两者实现的原理是不一样的,有人做过测试,比如下面的文章:
    iOS源码阅读 —— YYModel vs MJExtension

表格刷新

表格的使用率很高,下拉刷新,上拉加载经常用到,基本上都用下面这个:
MJRefresh

表格空白

如果网络异常,或者出错,或者没数据,展示什么呢?空白页肯定不合适,这种情况还是很普遍的。这里也要一个几乎是默认的:
DZNEmptyDataSet

本地缓存

系统提供NSDefault性能不是很好,功能也差,限制也多,不是很好用。序列化还需要编码解码写一堆代码,用起来也不方便。数据库?除非必要,坚决不考虑。NSCache只是内存缓存,在iOS开发中的存在感更加低。
本地缓存还是需要的,比如自动登录,记忆选择状态等等。
一直以来就用这个,感觉很好。其他的也没有尝试过。
YYCache

富文本

点击文字跳转,某些文字高亮,部分文字特殊样式,这些需求时不时就会来。系统原生对这块支持很弱,那个属性字符串是真的差劲。
一直以来这方面的需求都用下面这个解决,非常好用,功能也强大:
YYText

Swift

如果没有特殊的,Swift可以和Objective-C用相同的第三方库

网络库

  • 和AFNetworking一样,基本用这个,也是同一作者
    Alamofire

  • 二次封装的网络库,面向协议的编程方式很赞。Alamofire本身的使用方式并不是很好。可以考虑采用
    Moya

图片加载

自动布局

  • 和Masonry是同一个作者,基本上是默认选项
    SnapKit

HUD

与JS交互

字典转模型

基本上公认的,就用这个:
SwiftyJSON

表格刷新

表格空白

本地缓存

富文本

偶尔用到的

弹窗提示

  • 系统提供的分为Alert和Action Sheet两种,一开始是两种view,后来合并成了Controller。基本用用是差不多了。

  • 如果对界面有需求,一半要自定义,通常是view的形式,不会考虑Controller。经历的项目中大多数是这种情况。

  • 现在有一些第三方库,提供的界面也比较特色,可以找几个试试。这个还是主要看UI人员怎么取舍。

  • 这个是用Swift写的,暂时不考虑。SDCAlertView

  • 这个虽然Star很多,色彩也算丰富,头部还带个图片。感觉跟系统的差距很大,暂时也不考虑。SCLAlertView

  • 这个和系统的风格不一样,不过整体感觉还可以,Star也多一些,可以作为备选考虑。MMPopupView

  • 这个和系统的风格接近,整体感觉较好。只是Strar少了一点。如果要选的话,可以考虑这个。LGAlertView

参考

加速iOS开发的28个第三方库

iOS常用第三方库

iOS开发最全常用第三方库

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。