刚刚在线

分享iOS开发技术经验的自媒体网站

快快快!27个提升效率的iOS开源库推荐

CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、参与内容翻译工作,或寻求近匠报道,请发送邮件至tangxy#csdn.net(请把#改成@)。

我热爱开源,更喜爱那些花费宝贵的业余时间来创造奇迹的开发者们,感谢他们将自己辛苦劳动的成果无偿分享给大家。开源作者和贡献者们,你们太了不起了,感谢你们所付出的一切。

鉴于我是收集不全会死星人,这里我根据个人喜好选取了一些iOS的开源库。这些项目的顺序完全随机,每个都棒到爆。绝大多数支持CocoaPods,所以将它们添加到你的Xcode项目中只是小事一桩。

在本文末尾你可以找到一个长文慎入版本——一个只包含题目与项目链接的简单列表。如果你觉得这篇文章有用的话,请把它分享给其他做iOS开发的小伙伴们,好酒也怕巷子深。

1. DZNEmptyDataSet

DZNEmptyDataSet算是一个很标准的iOS内建方式,适合用来处理空的table view和collection view。默认情况下,如果你的table view为空,屏幕就为空,这样一来用户体验并不理想。

1

使用这个库,你只需遵守一些协议,iOS就会自动将collection view处理完善,并将用户消息以合适美观的方式显示出来。每个iOS项目都可以自动处理,不用再一一费神。

2. PDTSimpleCalendar

你的应用需要一个简单美观且正常运行的日历组件吗?现在有了——PDTSimpleCalendar也许可以算是iOS最棒的日历组件了。你可以在各个方面对它进行定制,无论是运行逻辑还是外观方面。

2

3. MagicalRecord

他们都说:Core Data简洁易用。他们又说:很棒很好用噢。哈?真的吗,苹果?添加到各个项目中的大量样板数据完全不符合简洁而易用的标准。更别提添加、移除和更新那一大堆的entities、保存context、按不同环境创建不同的Core Data堆栈等等。当然,我很喜欢Core Data,但是苹果真的可以把它更好地简化一下——使用MagicalRecord方式。

3

MagicalRecord就像是给Core Data提供了一层外包装,隐藏掉所有不相关的东西。如果你曾经使用过active record模式(比如Ruby on Rails),你就知道了。倾情推荐,在应用中使用Core Data的童鞋们可一定要试试。

4. Chameleon

如果你已经看到这里了,我猜你更有可能是个程序猿,而不是设计狮。这里有个东东很适合你。

4

Chameleon是一个iOS的色彩框架。它运用现代化flat color将UIColor扩展地非常美观。我们还可以通过它运用自定义颜色创建调色板。它还有很多功用,请浏览readme。如果你想要应用美观的话,一定要把这个库加到项目里。

4-1

5. Alamofire

Alamofire是一个简洁的网络库,用Swift语言编写。你是否曾经使用过AFNetworking呢?Alamofire是它的小弟。更年轻更时尚,当然(AFNetworking是用Objective-C编写的)。

5

如果你需要进行网络的相关工作,诸如下载、上传与获取JSONs等等的话,Alamofire正是你所需要的。GitHub上8000人次推荐,一定不会错。

6. TextFieldEffects

你不觉得标准的UITextField有些枯燥么?我也这样想——来认识一下TextFieldEffects吧!废话不多说,只要看几个例子:

6

是啊,都是些简单的dropin控制器。你甚至可以在storyboard中使用IBDesignables。

不幸地是:这个库不支持CocoaPods(如果你来自未来,而这一情况什么时候会改变的话,一定要在Twitter上告诉我),但是它支持Carthage。你只管从GitHub上下载项目,把它放入你的workspace就行了。

7. GPUImage

你曾经写过照相机应用吗?如果没有的话,很快你一定会遇到这个库的。

7

GPUImage为我们提供了一个GPU加速的照相机效果(同时支持照片与视频),而且处理速度飞快。在App Store中,使用这个库的应用数以百计。我有一个应用也用到了GPUImage。 它在GitHub上获得了8869个star,而且还在增长。

7-1

8. iRate

想要在App Store中获得更多评论的最佳方式是什么?想要回答这个问题,我缺乏切实数据,但如果必须猜一下的话,我会建议问问用户。也许这样做有点老套——大多开发者现在都有创建定制的应用内置alert。

但是如果你没有时间,或者不想从头实现的话,最好用一下iRata。这个就是iRata——一个小型库——你可以把它放入项目中,把问卷调查什么的都忘记吧,iRate会在恰当的时候为你解决这个问题。

9. GameCenterManager

无论你喜不喜欢单例模式,管理一个GameCenter都比我们已知的其他相反模式要好很多。(你的游戏只有一个GameCenter,对吗?)

9

说实话,在iOS上管理GameCenter vanilla并不算难,但是有了这个库会更简单也更快。好上加好不是更好么。

9-1

我在我一个游戏中用到了这个,体验很好。

10. PKRevealController 2

这个要注意,真的很棒!是我最喜爱的iOS控件之一。PKRevealController是一个可以滑动的侧边栏菜单(可向左、向右或者同时向两侧),只需手指轻轻一点(或者按一下按钮,但是这样滑动时不够炫酷)。

2

我试过一些可以提供这类控制的其他库,而PKRevealController是最棒的。安装简便,高度定制且对手势识别良好。可以当做一个标准控件用在iOS SDK中。

11. SlackTextViewController

你曾经用过Slack iOS应用吗?如果你在较大的软件公司工作,也许会用过。对那些没用过的人呢?—?Slack令人激动。用到Slack的应用也是这样,尤其是用作极佳、定制的文本输入控制时。这时你有了一个现成可用在应用中的代码。

自适应文本区域?试一下。

手势识别、自动填充、多媒体合并?试一下。

快速drop-in解决方案?试一下。

其他还想要什么?

12. RETableViewManager

RETableViewManager可以帮助你进行动态创建与管理table views。它给我们提供了预定义cells(bool类型、文本、日期等等——请看下面的截图),但是你还可以创建自定义views,并与默认视图一同使用。

12

左侧截图显得非常古板!在storyboard中没有这个库的时候,你能做的就是这些了,但是有时候代码比可视化编辑器要好。

13. PermissionScope

用这个库可以在询问用户前,就告知用户所需的系统权限,为用户带来更好的体验。接受度更高—>更多活跃用户->更高的留存率->数据更好->下载率更高。墙裂推荐pod。

13

14. SVProgressHUD

这张图片在正常加载,无需等待太久或者刷新页面。这正是SVProgressHUD在你的应用中的表现。如果你需要定制化的等待提示器,这个就是了(也许是最好的)。

14

15. FontAwesomeKit

Font Awesome很棒,有了它你可以很容易地给项目加字体,使用方式繁多。

15

16. SnapKit

喜欢自动布局吗?当然喜欢!至少在storyboard中创建时会喜欢。 在代码中纯手工创建约束灰常痛苦,但幸运的是我们有了SnapKit,在board中用上它,你可以简单直观地编写约束了。

16

17. MGSwipeTableCell

这是另一个常见于很多应用中的UI组件,苹果应该考虑在标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的最佳描述,也是最好的。

17

这只是其中三个动画类型,还有更多变化,请查看readme。

18. Quick

用于Swift中的单元测试(也可用于Objective-C),与Xcode整合在一起。如果你是Objective-C的粉丝,我建议用Specta代替这个,但是对Swift使用者来说,Quick是最佳选择。

18

181

19. IAPHelper

应用内付费给我们提供了很多样本代码,而这个库丢掉了那些代码,将金钱交易相关的大多通用任务做了简单的封装。

20. ReactiveCocoa

好吧,这是个小怪物。

ReactiveCocoa并不像列表中其他库一样,它不是小型的drop-in项目。ReactiveCocoa给我们带来了一个迥异的编程风格与结构,它是基于信号与数据流的。首先你需要忘掉已知的一切,才能理解它的工作方式。很有难度,但是价值不斐。

20

在这里教ReactiveCocoa有点不合适,但是如果你感兴趣的话,我会提供一些好源:

注意:对我们iOS开发社区的朋友来说,这会是一个稍微有些技术含量的活儿。

21. SwiftyJSON

使Swift的JSON解析变得简单。

22. Spring

使动画在简单性、可链接性与声明性方面有所提高。

22

23. FontBlaster

载入定制字体时更简单。

24. TAPromotee

交叉推广应用是你可以免费实现的最佳市场推广策略之一。使用这个库做起来非常简单,不用都不可能——将TAPromotee加入你的podfile中,免费配置与享受更多下载吧。

24

25. Concorde

你在应用中载入了一堆jpeg吗?有了Concorde,你可以用更好的方式来解决,这是一个很大的进步。

25

26. KeychainAccess

管理Keychain接入的小助手。

26

27. iOS-charts

最后一个,但绝不是最不重要的——iOS图表库!非常有用而且美观,这里我无需赘言。向下看,你就知道用它可以做什么了。

27

没错,一切都变成了drop-in组件了(也许是“code-in组件)。

271

不幸的是,它还不支持CocoaPods,所以你得手动把它拽到你的Xcode workspace里面去。

超长慎入列表:

  1. DZNEmptyDataSet(UI,空表格视图解算器)
  2. PDTSimpleCalendar(UI,drop-in日历组件)
  3. MagicalRecord(实施活跃记录模式的Core Data助手)
  4. Chameleon(UI,色彩框架)
  5. Alamofire(Swift 网络)
  6. TextFieldEffects (UI,自定义外观的文本区域)
  7. GPUImage(快速图片处理)
  8. iRate(获取用户评价)
  9. GameCenterManager(快速管理游戏中心)
  10. PKRevealController 2(UI,滑动侧边栏菜单)
  11. SlackTextViewController(UI,高度可定制的自定义文本区域)
  12. RETableViewManager(自动以代码创建表格视图)
  13. PermissionScope(UI,预询问用户系统权限的友好体验)
  14. SVProgressHUD (UI,自定义等待进度条)
  15. FontAwesomeKit (快速添加Awesome字体)
  16. SnapKit(在代码中快速自动布局)
  17. MGSwipeTableCell (UI,可滑动的表格视图cell)
  18. Quick(Swift单元测试框架)
  19. IAPHelper(应用内购买助手封装)
  20. ReactiveCocoa(FRP框架)
  21. SwiftyJSON(Swift JSON库)
  22. Spring(动画框架)
  23. FontBlaster(在应用中快速载入个性化字体)
  24. TAPromotee(使用drop-in视图交叉推广应用)
  25. Concorde(下载解码渐进式jpeg)
  26. KeychainAccess(简便管理keychain)
  27. iOS-charts(美观的图表库)

文章来源:Medium