33 款驰骋 2017 的 iOS 开源库

文/Paweł Białecki

译/Mantra

原文:https://medium.com/app-coder-io/33-ios-open-source-libraries-that-will-dominate-2017-4762cf3ce449#.cdqp06lb5

文末仓库资源地址汇总

1. IGListKit by Instagram Engineering

IGListKit 是由 Instagram 的开发者编写的数据驱动 UICollectionView 框架,它可以构建快速灵活的列表。同时,它能帮你避免在应用程序里使用大量冗余的 View Controllers。

GitHub:https://github.com/Instagram/IGListKit

2. Realm by realm.io

Realm 是一个可以直接在手机,平板电脑和可穿戴设备上运行的移动数据库,不仅只限 iOS。如果你想尝试一些与 Core Data 不同的数据库,可以试一下 Realm。 很多人说这是一个完美的作品,已经能够完全地替代苹果原生的解决方案。

GitHub:https://github.com/realm/realm-cocoa

3. Moya by Ash Furrow

Moya 是一个非常适合作为你应用程序网络层的第三方库。你不用再思考在何时何地去写网络请求了,Moya 统统帮你搞定。

GitHub:https://github.com/Moya/Moya

4. SwiftyJSON by Pinglin Tang

在 Swift 中,用来解析 JSON 的绝对王牌。

转换这个:

ifletstatusesArray =try? JSONSerialization.jsonObject(with: data,options: .allowFragments)as? [[String: Any]],letuser = statusesArray[0]["user"]as? [String: Any],letusername = user["name"]as?String{// Finally we got the username}

转换为:

letjson =JSON(data: dataFromNetworking)ifletuserName = json[0]["user"]["name"].string {// Now you got your value}

GitHub:https://github.com/SwiftyJSON/SwiftyJSON

5. Valet by Square

Valet 可以让你安全地将数据存储在 iOS 或 OS X Keychain 中,并且无需知道 Keychain 是如何工作的。它支持在单个设备上的多个应用程序(同一个开发人员)之间共享数据,也可以在具有 iCloud 的不同设备之间的同一款应用程序中共享数据。Touch ID 之间也绝对没有问题!

GitHub:https://github.com/square/Valet

6. Firebase Analytics by Google Developers

由 Google 开发,可能是 iOS 上最好用的免费的统计分析解决方案。跟踪应用使用情况、用户参与度和活动、设置用户属性、创建自定义受众群体以及更多。

GitHub:https://firebase.google.com/docs/analytics/

7. AsyncDisplayKit

Facebook 为他们的应用程序 Paper 创建了这个异步 UI SDK。如果你有兴趣以 60 帧/s 的速度渲染你的应用程序的话,绝对要看看这个库。这里你可以先读一个story

GitHub:https://github.com/facebook/AsyncDisplayKit

8. DZNEmptyDataSet

用户安装了你的应用程序,却看到了一个空白的 UITableView。DZNEmptyDataSet 可以通过提供空数据集默认模式来帮助你避免这种空白情况。

GitHub:https://github.com/dzenbot/DZNEmptyDataSet

9. Chameleon by Vicc Alexander

Chameleon 是 iOS 中一个轻量级,但功能强大的颜色框架。他的 idea 建立在,软件应用程序也应该轻松地实现其漂亮的界面。

使用 Chameleon,你可以节省为应用程序配色而不断修改 RGB 值所浪费的时间,并且再也不用担心你的文本是否可以在应用程序的各种背景颜色可读的问题。

GitHub:https://github.com/ViccAlexander/Chameleon

10. PermissionScope by Nick O'Neill

ermissionScope 是一个 Swift 框架,可以智能地向用户请求权限。它不仅拥有一个简单的 UI 来请求权限,还包括一个可以告诉你任何给定的系统权限的状态或轻松请求权限的统一 API。

GitHub:https://github.com/nickoneill/PermissionScope

11. FileKit by Nikolai Vazquez

FileKit 是一个可以提供简单和表达性的文件管理 Swift 框架。可以看下使用示例。

GitHub:https://github.com/nvzqz/FileKit

12. SwiftyUserDefaults by Radek Pietruszewski

SwiftyUserDefaults 使用户默认将表达式 Swifty API 与静态类型的益处相结合。你可以轻松地定义 key,轻松使用类型值,更多的安全性和更方便的编译检查,并且这些更优质服务全是免费的。

GitHub:https://github.com/radex/SwiftyUserDefaults

13. Kingfisher by 王巍

Kingfisher 是一个轻量级的正经 Swift 库,用于从网络上异步下载和缓存图像。

GitHub:https://github.com/onevcat/Kingfisher

14. Hero by Luke Zhao

Hero 是构建 iOS View Controller 转换的库。它在 UIKit 繁琐的转换 API 之上提供了一个让自定义转换更容易的层。

GitHub:https://github.com/lkzhao/Hero

15. Hedwig by 王巍

Hedwig 是一个 Swift 包,提供了一组高级 API,使你能够轻松地发送电子邮件到 SMTP 服务器。如果你打算从你的 Swift 服务器应用程序发送电子邮件,Hedwig 可能是一个非常赞的选择。

GitHub:https://github.com/onevcat/Hedwig

16. DeviceKit by Dennis Weissmann

DeviceKit 是 UIDevice 的值类型替换。轻松获取设备信息和电池电量。

GitHub:https://github.com/dennisweissmann/DeviceKit

17. Charts

美丽的线条、饼状图、条状图、散点图等,就在 Charts library。

GitHub:https://github.com/danielgindi/Charts

18. MGSwipeTableCell

一个易于使用的 UITableViewCell 子类,可以实现具有各种转换的可滑动按钮。

GitHub:https://github.com/MortimerGoro/MGSwipeTableCell

19. RandomKit by Nikolai Vazquez

简单易用的随机数生成工具。

https://littlebitesofcocoa.com/285-generating-random-data-with-randomkit

GitHub:https://github.com/nvzqz/RandomKit

20. ResponseDetective

ResponseDetective 是一个非插入式框架,用于拦截应用程序和服务器之间的任何用于调试目的的传出请求和传入响应。

https://www.netguru.co/blog/response-detective-ios-open-source

GitHub:https://github.com/netguru/ResponseDetective

21. Onboard

简单几行代码,即可轻松创建引人入胜的开屏体验。

GitHub:https://github.com/mamaral/Onboard

22. Quick + Nimble by もどかしい

Quick 是 Swift 和 Objective-C 的 BDD 测试框架,由 Nimble 这个匹配器框架配合使用。

GitHub:https://github.com/Quick/Quick

GitHub:https://github.com/Quick/Nimble

23. Natalie by Marcin Krzyzanowski

Natalie 生成基于 storyboard 文件的,能够使Storyboards 和 segues 更容易工作的 Swift 代码。生成的文件减少 Strings 作为 Segues 或 Storyboard 标识符的使用。

GitHub:https://github.com/krzyzanowskim/Natali

24. RxSwift by ReactiveExtensions*

对 Swift 中的反应式编程感兴趣?这里是 RxSwift。

GitHub:https://github.com/ReactiveX/RxSwift

25. GDPerformanceView by Daniil Gavrilov

GDPerformanceView 在状态栏上方显示 FPS,CPU 使用情况,应用程序和 iOS 版本,并通过委托报告 FPS 和 CPU 使用情况。

GitHub:https://github.com/dani-gavrilov/GDPerformanceView-Swift

26. Alamofire

Alamofire 是一个用 Swift 编写的 HTTP 网络库。

https://www.appcoda.com/alamofire-beginner-guide/

GitHub:https://github.com/Alamofire/Alamofire

27. SwiftyStoreKit by Andrea Bizzotto

SwiftyStoreKit 是一个为 iOS 8.0+、tvOS 9.0+和macOS 10.10+ 而开发的轻量级的 In App Purchases 框架。

GitHub:https://github.com/bizz84/SwiftyStoreKit

28. Timepiece by AnyType

在 Swift 中直观的日期处理。

GitHub:https://github.com/naoty/Timepiece

29. CryptoSwift by Marcin Krzyzanowski

Swift 中实现的加密相关的函数和零件。

GitHub:https://github.com/krzyzanowskim/CryptoSwift

30. FSCalendar

完全可定制的 iOS 日历库,可兼容 Objective-C 和 Swift。

GitHub:https://github.com/WenchaoD/FSCalendar

31. ImageViewer by Kristian Angyal

高仿 Twitter ImageViewer

GitHub:https://github.com/MailOnline/ImageViewer

32. PromiseKit

PromiseKit 可以保证带有 swiftc 的平台细致完整的实现,在 iOS,macOS,tvOS 和 watchOS,有非常靠谱的 Objective-C 支撑。

GitHub:https://github.com/mxcl/PromiseKit

33. Ensembles by Drew McCormack

Ensembles 是一个 Objective-C 框架 ,支持 Swift,它扩展了 Apple 的 Core Data 框架,为 Mac OS 和 iOS 添加了点对点同步。多样的 SQLite 持久稳固存储,可以通过文件同步平台(如 iCloud 或 Dropbox)链接在一起。该框架可以轻松地扩展,用来支持能够在设备之间同步文件的任何服务,包括 custom servers。

GitHub:https://github.com/drewmccormack/ensembles

TL;DR list of libraries for quick access:

1、IGListKit[UICollectionView framework] ->pod 'IGListKit', '~> 2.0.0'

2、Realm[mobile database] ->pod 'RealmSwift'

3、Moya[encapsulated network layer] ->pod 'Moya', '8.0.0'

4、SwiftyJSON[JSON parsing] ->pod 'SwiftyJSON'

5、Valet[Keychain helper] ->pod 'Valet'

6、Firebase Analytics[analytics] ->pod 'Firebase/Core'

7、AsyncDisplayKit[asynchronous UI SDK] ->pod 'AsyncDisplayKit'

8、DZNEmptyDataSet[empty state pattern] ->pod 'DZNEmptyDataSet'

9、Chameleon[flat colors framework] ->pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git'

10、PermissionScope[iOS permissions framework] ->pod 'PermissionScope'

11、FileKit[file management] ->pod 'FileKit', '~> 4.0.0'

12、SwiftyUserDefaults[user defaults helper] ->pod 'SwiftyUserDefaults'

13、Kingfisher[image downloading] ->pod 'Kingfisher', '~> 3.0'

14、Hero[custom view controller transitions] ->pod 'Hero'

15、Hedwig[email sending]

16、DeviceKit[device info] ->pod 'DeviceKit', '~> 1.0'

17、Charts[well… charts] ->pod 'Charts'

18、MGSwipeTableCell[swipeable table cells] ->pod 'MGSwipeTableCell'

19、RandomKit[random numbers generation] ->pod 'RandomKit', '~> 3.0.0'

20、ResponseDetective[debug network requests] ->pod 'ResponseDetective'

21、Onboard[user onboarding] ->pod 'Onboard'

22、Quick+Nimble[BDD testing] ->pod 'Quick' pod 'Nimble'

23、Natalie[code generating from storyboard]

24、RxSwift[reactive programming] ->pod 'RxSwift', '~> 3.0'

25、GDPerformanceView[real time FPS and CPU usage] ->pod 'GDPerformanceView-Swift', '~> 1.1.0'

26、Alamofire[networking] ->pod 'Alamofire', '~> 4.3'

27、SwiftyStoreKit[In App Purchases] ->pod 'SwiftyStoreKit'

28、Timepiece[date helper] ->pod 'Timepiece'

29、CryptoSwift[cryptography] ->pod 'CryptoSwift'

30、FSCalendar[calendar] ->pod 'FSCalendar'

31、ImageViewer[Twitter inspired image viewer] ->pod 'ImageViewer'

32、PromiseKit[promises] ->pod 'PromiseKit', '~> 4.0'

33、Ensembles[Core Data synchronization] ->pod 'Ensembles'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容