十款不容错过的swift ios开源项目 -买球官网平台

0顶
0踩

如果你从事的是ios开发的工作,那么使用swift语言也许会是一个不错的选择,相较objective-c,swift更易学习也更加强大。不过,纵观swift教程,你会发现讲解的比较广泛,且并未深入涉及代码学习和实现等。这里,为了让大家能够进一步了解swift及让开发工作更容易上手,作者以自身的体验,从几百个项目中选出了这十个不错的开源项目,希望可以为ios开发者提供帮助。

1.

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)
                   }

2.
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

3.
swift对于类型有着非常严格的控制,所以在处理json时会很麻烦。而swiftyjson就是让在swift语言中处理json数据变得更简单的开源类库。使用要求:ios 7.0 /mac os x 10.9 、xcode 6.0。



代码示例:

loop
//if json is .dictionary
for (key: string, subjson: json) in json {
//do something you want
}

//if json is .array
//the `index` is 0..

4.

dollar是一个swift库,无需扩展任何内置对象就为swift语言提供有效的函数式编程辅助方法,类似于lo-dash或javascript中的underscore。而cent则是通过扩展功能来扩展swift中的特定对象类型。



代码示例:

dollar示例:array
$.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

5.

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)

6.

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()

7.

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
}

8.

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
}

9.

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))
        }
    }
}

10.

quick是一个行为驱动的swift和objective-c开发测试框架,过。



代码示例:

使用的例子
// 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
  • 大小: 20.1 kb
  • 大小: 19.6 kb
  • 大小: 8.2 kb
  • 大小: 65.1 kb
  • 大小: 35.9 kb
  • 大小: 68.7 kb
  • 大小: 19.7 kb
  • 大小: 20.1 kb
  • 大小: 17.7 kb
  • 大小: 16.1 kb
来自:
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 相较objective-c,swift语言要更为简单和强大。...这里,为了让大家能够进一步了解swift及让开发工作更容易上手,作者以自身的体验,从几百个项目中选出了这十个不错的开源项目,希望可以为ios开发者提供帮助。ala

  • 十款不容错过的swift ios开源项目.http://www.csdn.net/article/2014-10-16/2822083-swift-ios-open-source-projects缓存框架 haneke:haneke是一款使用swift语言编写的,轻量级的ios通用缓存。它为uiimage、nsdata...

  • 如果你从事的是ios开发的工作,那么使用...这里,为了让大家能够进一步了解swift及让开发工作更容易上手,作者以自身的体验,从几百个项目中选出了这十个不错的开源项目,希望可以为ios开发者提供帮助。 1. alamofir

  • 拥有着苹果先天生态优势的swift自发布以来,各种优秀的开源项目便层出不穷。本文作者站在个人的角度,将2014年swift开源项目做了一个甄别、筛选,从工具、存储、网络、界面、框架到demo以及完整应用等,满满的干货。...

  • swift-open-project这里汇集了目前为止最为流行的swift开源项目,选取swiftguide中的开源部分,这里将每周对项目进行总结,如果大家有推荐的可以联系[email protected],或者issues,欢迎star、fork。感谢...

  • 本文介绍一些ui方面的开源项目,大家可以结合自己的需求选择合适的开源库进行使用和学习。...本文是ios开源项目介绍系列之三,介绍一些ios中常用的一些网络相关开源库。 我的博客:http://blog.csdn.net/

  • 为了指导开发者使用swift进行开发,苹果发布了一系类的技术文档,比如the swift programming language(中文)和using swift with cocoa and objective-c(中文),同时苹果也开通了其官方swift博客,最近更...

  • 如果你是位ios开发者,或者你正想进入该行业,那么swift为你提供了一个绝佳的机会。swift的设计非常优雅,较obj-c更易于学习,当然也非常强大。 为了指导开发者使用swift进行开发,苹果发布了一系类的技术文档...

  • 【消息】通知,事件,问题,一个都不放过,项目重在参与,提醒不容错过。 【收藏夹】收藏最棒的项目,关注最前沿的开源黑科技。 【查看】查看每个项目的详情,查看每个开发者的详情,一丝丝细节都有含义。 ...

  •  - 一款优秀 android 图表开源库 mpandroidchart 的 swift 语言实现版(支持 objective-c 和 swift 调用)。缺省提供的示例代码为 objective-c。 teachart  - xhacker/teachart 一个简洁的 ios 图表库,支持柱状...

  • 在当前移动互联网的大潮下,移动开发变得越来越重要。不论是 android 开发还是 ios 开发,都异常火爆,而开源在推进移动开发中更是扮演着关键的角色。 在上一周的文章中,...开发者不可错过的开源工具 —— android

  • 如果你是位ios开发者,或者你正想进入该行业,那么swift为你提供了一个绝佳的机会。swift的设计非常优雅,较obj-c更易于学习,当然也非常强大。  为了指导开发者使用swift进行开发,苹果发布了一系类的技术文档,...

global site tag (gtag.js) - google analytics