Swiftビギナーな自分が最近知った & 使ってよかったライブラリをまとめていきます
随時更新予定です
UI
SnapKit/SnapKit
コードで簡単にAutoLayoutが実装できます
すでにAutoLayoutを使用しているView上に、コードでaddSubview()
をするときなどに便利でした
// viewにnewViewを追加
view.addSubview(newView)
// Superview(view)のTop、Bottom、Leading、Trailingに各margin0で制約を与える
newView.snp_makeConstraints { make -> Void in
make.top.leading.trailing.bottom.equalTo(view)
}
facebook/pop
バウンスの動きなど、アニメーションの実装が簡単にできるライブラリ
TIPS: Objective-C製なので要BridgingHeaderです
devxoul/JLToast
Androidが羨ましかった!トースト表示のライブラリです
以下のようなAttributeも付与できて便利でした
Attribute |
---|
JLToastViewBackgroundColorAttributeName |
JLToastViewCornerRadiusAttributeName |
JLToastViewTextInsetsAttributeName |
JLToastViewTextColorAttributeName |
JLToastViewFontAttributeName |
JLToastViewPortraitOffsetYAttributeName |
JLToastViewLandscapeOffsetYAttributeName |
TIPS: 現時点ではAttributeを一つずつ設定することしかできないようなので、Forkして同時に複数設定できるようにすると良いかもしれません(Sampleあります)
JSON / Model Mapping
Hearst-DD/ObjectMapper
JSON形式のAPIのレスポンスやplistのマッピングに使っています
TIPS: Objective-CでいうところのMantle/Mantle
Network
Alamofire/Alamofire
ネットワーク通信用の定番ライブラリ
TIPS: Objective-CでいうところのAFNetworking/AFNetworking
Image Downloader
onevcat/Kingfisher
画像のダウンロードとキャッシングのライブラリ
TIPS: rs/SDWebImageにもINSPIREされたようです!function名も似ていて使いやすさ◎
Reactive Programing
ReactiveX/RxSwift
リアクティブプログラミングに利用します
TIPS: Objective-C製ではReactiveCocoa/ReactiveCocoaでしょうか
(Swift対応済みなのですね。leegunさんありがとうございます!)
前述のAlamofireやObjectMapperと併用したネットワーク周りの実装に役立っています
また、値監視をしてMVVMモデルを実装したり、用途は様々でとても便利です
TIPS: RxSwift + MVVMモデルのサンプルあります
Data Base
realm/realm-cocoa (RealmSwift)
簡単にアプリ内でデータベースを実装できます
前述のObjectMapperとの併用も便利です
TIPS: 公式サイトやドキュメントも整備されているので◎
Date
malcommac/SwiftDate
NSDateの面倒な扱いがぐっと楽になっていて驚きました
Before:SwiftDateなし(いつもの)
// 現在日時を取得
let nowDate = NSDate()
// フォーマット指定(YYYY/MM/DD HH:MM:SS)
let formatter = NSDateFormatter()
formatter.dateFormat = "YYYY/MM/DD HH:MM:SS"
print("\(formatter.stringFromDate(nowDate))") // 2016/02/35 11:02:09
After:SwiftDateあり
// 現在日時を指定フォーマット(YYYY/MM/DD HH:MM:SS)で取得
let nowDate = NSDate().toString(DateFormat.Custom("YYYY/MM/DD HH:MM:SS"))
print("\(nowDate)") // 2016/02/35 11:02:09
こんなコードも簡単にできました
let date = 5.days.fromNow // 現在から5日後のNSDataオブジェクト
let date = 4.hours.ago // 現在から4時間前のNSDataオブジェクト
let date = (5.days + 2.hours - 15.minutes).fromNow // 計算もらくらく!
Log
DaveWoodCom/XCGLogger
ログ出力用ライブラリ
おまけ
ライブラリ選定のポイント
cocoacontrolsなどで探すと、一見素敵なライブラリがたくさん見つかります
~~自戒を込めて、~~そんな中で良ライブラリと出会うために気をつけるべきことをまとめてみました
- Starの数
- Forkの数
- Contributorsの数
-
Issuesを見てみる
- バグ報告に対応しているか?
- おかしい部分をフックしているか?
-
更新日時
- だいたい最終更新2monthが目安
-
バージョンが1以上か?
- 1以下の場合、アプリのベースに関わる部分に使うのを避ける
以上です
ありがとうございました