从OC到Swift开发,过去将近1年了.在自己公司项目处于维护,和优化的时间.O(∩_∩)O哈哈~,自己总结一下常用的第三个库.排名不分先后(GitHub上最为开发者认可)
以下纯属于个人使用,如有错误欢迎纠正 !
-
Alamofrie : 网络请求事件处理的框架
//单纯的网络请求,获取服务器数据
func PostMethod(ApiString:String,paragrams:[String:AnyObject]?,fineshed:@escaping LoadFinished)
{
//请求头
//let requestHeader:HTTPHeaders = ["Range":"1-3",
// "Content-Type":"allication/json"];
Alamofire.request(ApiString, method: .post, parameters: paragrams, encoding: URLEncoding.default).responseJSON { (response:DataResponse<Any>) in
if response.result.error == nil
{
let json = JSON(data: response.data!)
fineshed(true,json,nil)
}
else
{
fineshed(false,nil,response.result.error)
}
}
}
更多使用直接戳 -> Alamofrie
-
SwiftyJSON : JSON解析类 (配合Alamofire使用)
SwiftyJSON的设计原则 : 保证怎么玩都不会引起app的crash,不要被API的数据绑架
中文版简介
let json = JSON(data: response.data!)
-
ObjectMapper : json对象映射为model对象
不过我本人喜欢用 系统的key-value (Setvalueforkey)复制方法 映射模型数据
class User: Mappable {
var username: String?
var age: Int?
var weight: Double!
var array: [Any]?
var dictionary: [String : Any] = [:]
var bestFriend: User? // Nested User object
var friends: [User]? // Array of Users
var birthday: Date?
required init?(map: Map) {
}
// Mappable
func mapping(map: Map) {
username <- map["username"]
age <- map["age"]
weight <- map["weight"]
array <- map["arr"]
dictionary <- map["dict"]
bestFriend <- map["best_friend"]
friends <- map["friends"]
birthday <- (map["birthday"], DateTransform())
}
}
-
SnapKit 等同于Masonry
具体用法可参考 Masonry
import SnapKit
class MyViewController: UIViewController {
lazy var box = UIView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(box)
box.snp.makeConstraints { (make) -> Void in
make.width.height.equalTo(50)
make.center.equalTo(self.view)
}
}
}
-
Kingfisher : (网络,本地)图片加载缓存
偷偷告诉你他本人在日本,你懂得(别问我为什么知道)->
let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)
-
Reachability.swift : 用来检查应用当前的网络连接状况。
let reachability = Reachability()!
//declare this inside of viewWillAppear
NotificationCenter.default.addObserver(self, selector: #selector(self.reachabilityChanged),name: ReachabilityChangedNotification,object: reachability)
do{
try reachability.startNotifier()
}catch{
print("could not start reachability notifier")
}
-
SQLite.swift:简单、轻量,使用上最SQL的SQLite封装库
let db = try Connection("path/to/db.sqlite3")
let users = Table("users")
let id = Expression<Int64>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")
try db.run(users.create { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
})
-
Refresher:Swift刷新控件,支持自定义动画
tableView.addPullToRefreshWithAction {
NSOperationQueue().addOperationWithBlock {
sleep(2)
NSOperationQueue.mainQueue().addOperationWithBlock {
self.tableView.stopPullToRefresh()
}
}
}
-
NVActivityIndicatorView很多漂亮的加载指示器
NVActivityIndicatorView(frame: frame, type: type, color: color, padding: padding)
好多库 详细的用法 Github 搜索
-
RazzleDazzle 效果很酷的引导页
-
Instructions : 应用于操作指南、新手教程
-
folding-cell Cell展开折叠动画,效果你看了就尖叫
-
BWWalkthrough :界面切换中加入灵动的动画效果
-
PNChart-Swift : 带动画效果的图表控件库
-
SweetAlert-iOS : 带动画效果弹窗封装类
-
PeekPop:使用3D touch 被引用的两个动画特性peek、pop
-
KYCircularProgress:简单、实用路径可定进程条
-
FloatLabelFields : Float Label Pattern浮动标签输入效果类
-
StarWars.iOS : 很炫酷的转场动画效果,视图碎片化掉落
-
Whisper : 实用的消息及应用通知组件
-
Siren 版本更新提示
-
SwiftyStoreKit APP内购
-
Log 输出不同颜色类型日志
-
Starscream Socket客户端类库
-
ExSwift Swift 封装的一些类别,项目中必不可少
-
Koloda 卡片视图,而且滑动视图有滑动卡片一样的动画效果
-
BluetoothKit 蓝牙开发
-
MonkeyKing 社会化分享框架
今天下写到这里,以后返现了会贴上去,和大家分享,共同进步!!!!!