推薦十個Swift的iOS開源項目

若是你從事的是 iOS開發的工做,那麼使用 Swift語言也許會是一個不錯的選擇,相較Objective-C,Swift更易學習也更增強大。不過,縱觀Swift教程,你會發現講解的比較廣 泛,且並未深刻涉及代碼學習和實現等。這裏,爲了讓你們可以進一步瞭解Swift及讓開發工做更容易上手,選出了這十個不錯的開源項目,但願能夠爲iOS 開發者提供幫助。推薦學習Swift從零基礎到實戰教程。
編程

一、Alamofire json

Alamofire 是一個使用Swift語言編寫的HTTP網絡庫,支持各類 HTTP Method、JSON、文件上傳、文件下載和多種認證方法,能夠很簡單的用於異步網絡通訊和業務流程鏈反應。使用要求:iOS 7.0+/Mac OS X 10.9+、Xcode 6.0。
代碼示例:
Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
.response { (request, response, data, error) in
println(request)
println(response)
println(error)
}
二、Surge
Surge是一個基於Accelerate框架和C語言開發,用於進行矩陣運算、數學信號處理和圖像處理的API。換句話說,就是能夠很是快速的處理數學、語音和圖像信號。
代碼示例:
計算總和[Double]
import Surge
let n = [1.0, 2.0, 3.0, 4.0, 5.0]
let sum = Surge.sum(n) // 15.0
計算乘積[Double]s
import Surge
let a = [1.0, 3.0, 5.0, 7.0]
let b = [2.0, 4.0, 6.0, 8.0]
let product = Surge.mul(a, b) // [2.0, 12.0, 30.0, 56.0]
swift



三、SwiftyJSON
Swift對於類型有着很是嚴格的控制,因此在處理JSON時會很麻煩。而SwiftyJSON就是讓在Swift語言中處理JSON數據變得更簡單的開源類庫。使用要求:iOS 7.0+/Mac OS X 10.9+、Xcode 6.0。
代碼示例:
//If json is .Dictionary
for (key: String, subJson: JSON) in json {
//Do something you want
}
//If json is .Array
//The `index` is 0..
for (index: String, subJson: JSON) in json {
//Do something you want
}
四、Dollar.swift
Dollar是一個Swift庫,無需擴展任何內置對象就爲Swift語言提供有效的函數式編程輔助方法,相似於Lo-Dash或JavaScript中的Underscore。而Cent則是經過擴展功能來擴展Swift中的特定對象類型。
代碼示例:
$.at(["ant", "bat", "cat", "dog", "egg"], indexes: 0, 2, 4)
=> ["ant", "cat", "egg"]
Cent示例:Date
let date = Date.from(2014, 1, 1)
=> "Jan 1, 2014, 12:00 AM"
let parsedDate = Date.parse("2014-01-01", format: "yyyy-MM-dd")
=> "Jan 1, 2014, 12:00 AM"
let currentUnix = Date.unix()
=> 1,412,829,874.07114
var otherNSDate = Date()
let otherUnix = Date.unix(otherDate)
=> 1,412,829,938.92399
緩存



五、ExSwift
ExSwift是一組Swift語言對標準類型和類的擴展。
代碼示例:
each (eachFunction each: (Key, Value) -> ())
let dictionary = ["A": 1, "B": 2, "C": 3]
dictionary.each { key, value in println(key, value) }
/* Prints → */
// (A, 1)
// (B, 2)
// (C, 3)
六、SwiftTask
SwiftTask是使用Swift語言編寫的狀態機,擁有許多和他人建立的業務工做流任務的用例,綜合了Promise + progress + pause + cancel,使用SwiftState(狀態機)。
代碼示例:
基本定義
// define task
let task = Task { (progress, fulfill, reject, configure) in
player.doSomethingWithProgress({ (progressValue: Float) in
progress(progressValue) // optional
}, completion: { (value: NSData?, error: NSError?) in
if error == nil {
fulfill("OK")
}
else {
reject(error)
}
})
// pause/resume/cancel configuration (optional)
configure.pause = { [weak player] in
if let p = player { p.pause() }
}
configure.resume = { [weak player] in
if let p = player { p.resume() }
}
configure.cancel = { [weak player] in
if let p = player { p.cancel() }
}
}
// set then & catch
task.then { (value: String) -> Void in
// do something with fulfilled value
}.catch { (error: NSError?, isCancelled: Bool) -> Void in
// do something with rejected error
}
// you can call configured operations outside of Task-definition
task.pause()
task.resume()
task.cancel()
網絡



七、HanekeSwift
Haneke 是一款使用Swift語言編寫的,輕量級的iOS通用緩存。它爲UIImage、NSData、JSON和String提供記憶和LRU磁盤緩存或其餘像 數據能夠讀取或寫入的任何其餘類型。特別地是,Haneke更擅長處理圖像。使用要求:iOS 8.0+、Xcode 6.0。
代碼示例:
還可建立本身的緩存
let cache = Haneke.sharedDataCache
cache.set(value: data, key: "funny-games.mp4")
// Eventually...
cache.fetch(key: "funny-games.mp4").onSuccess { data in
// Do something with data
}
八、Cartography
Cartography是用來聲明Swift中的Auto Layout,無需輸入任何stringly就可設置本身Auto Layout的約束聲明。
代碼示例:
如何使用
layout(view1, view2) { view1, view2 in
view1.width   == (view.superview!.width - 50) * 0.5
view2.width   == view1.width - 50
view1.height  == 40
view2.height  == view1.height
view1.centerX == view.superview!.centerX
view2.centerX == view1.centerX
view1.top >= view.superview!.top + 20
view2.top == view1.bottom + 20
}
九、Sleipnir
Sleipnir是一款適用於Swift的BDD風格框架,不依賴NSObject,是純粹的Swift測試框架,不使用XCTest。同時,Sleipnir還具備很好的命令行輸出和支持自定義測試報告及隨機測試調用等特性。
代碼示例:
class SomeSpec : SleipnirSpec {
let someSpec : () = describe("Some spec") {
var someArray: [Int]?
beforeEach {
someArray = [1, 2, 3]
}
afterEach {
someArray = nil
}
it("should pass") {
expect(someArray).toNot(beNil())
expect(someArray).to(contain(3))
}
}
}
框架



十、Quick
Quick是一個行爲驅動的Swift和Objective-C開發測試框架,CSDN也有相關文章介紹過。
代碼示例:
使用的例
// Swift
import Quick
import Nimble
class DolphinSpec: QuickSpec {
override func spec() {
it("is friendly") {
expect(Dolphin().isFriendly).to(beTruthy())
}
it("is smart") {
expect(Dolphin().isSmart).to(beTruthy())
}
}
}
// Objective-C
#import
#import
QuickSpecBegin(DolphinSpec)
it(@"is friendly", ^{
expect(@([[Dolphin new] isFriendly])).to(beTruthy());
});
it(@"is smart", ^{
expect(@([[Dolphin new] isSmart])).to(beTruthy());
});
異步

QuickSpecEnd 編程語言

還有更多編程語言教程集合相關知識登陸e良師益友網。 ide

相關文章
相關標籤/搜索