iOS関連のライブラリまとめ記事をたまにみかけますが最近はどうなんだろうと思ったのでiOS Cookiesからよさそうなのをまとめてみました。
Database
Realm
もう定番の Realm。データ永続化するならとりあえずこれ、という感じでしょうか。
導入記事はこちら[Realm Swift]。
SQLite.swift
SQLite を使いたい時はこちら。
https://github.com/stephencelis/SQLite.swift
WalkThrough, CoachMark
Presentation
初回起動時に表示するウォークスルー。ユーザーにアプリの説明をするのに使用します。初回しか表示しませんが重要な部分ですね。
RazzleDazzle
こちらも同じくウォークスルーライブラリ。アニメーションを細かく指定できるのが特徴。IFTTT製。
Instructions
セリフ付きで説明できるライブラリ。
https://github.com/ephread/Instructions
Gecco
ハイライトする形で説明を表示するライブラリ。
https://github.com/yukiasai/Gecco
Form
独自の記法でフォームを生成してくれるライブラリ。
https://github.com/xmartlabs/Eureka
こんな風に書いていくようです。設定画面とかに使うのが便利かも。
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section("Custom cells")
<<< WeekDayRow(){
$0.value = [.Monday, .Wednesday, .Friday]
}
<<< TextFloatLabelRow() {
$0.title = "Float Label Row, type something to see.."
}
}
Alert
SweetAlert-iOS
アニメーション付きで表示されるアラート。
Progress
FillableLoaders
こちらもアニメーション付き。プログレス表示用ダイアログ。
https://github.com/poolqf/FillableLoaders
Image
Kingfisher
SDWebImageにインスパイアされた画像のダウンロード、キャッシュライブラリ。
https://github.com/onevcat/Kingfisher
Toucan
クロップやマスクなど画像処理を行うライブラリ。
Permission
PermissionScope
通知やマイク、カメラなどの権限管理をしてくれるライブラリ。各自でやっていた部分だと思いますがこれに任せると便利です。
Color
色のセンスのない僕のようなエンジニアを助けてくれるライブラリ群。
Chameleon
Hue
UIColor の指定を'#FFFFFF' のような16進数ができるライブラリ。
AutoLayout
SnapKit
AutoLayout をコードで完結に記述的できるライブラリ。入れておきたい。
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)
}
}
Chart
ios-charts
きれいなチャートを描くライブラリ。
いろんなグラフが描けるようです。
他にもたくさん描けるみたいです。詳細気になる方はリンク先へ。
Test
Quick
RSpec 等にインスパイアされているテストフレームワーク。
https://github.com/Quick/Quick/
RSpec のように context, describe, it などを使ってテストを記述します。
class TableOfContentsSpec: QuickSpec {
override func spec() {
describe("the 'Documentation' directory") {
it("has everything you need to get started") {
let sections = Directory("Documentation").sections
expect(sections).to(contain("Organized Tests with Quick Examples and Example Groups"))
expect(sections).to(contain("Installing Quick"))
}
context("if it doesn't have what you're looking for") {
it("needs to be updated") {
let you = You(awesome: true)
expect{you.submittedAnIssue}.toEventually(beTruthy())
}
}
}
}
}
Quick は日本語ドキュメントも充実。
Nimble
テストの時に使う Matcher のフレームワーク。単独もでも使えるし、Quick などと併用するとより便利に。
下記のように expect を使って期待する動作を記述します。
expect(1 + 1).to(equal(2))
expect(1.2).to(beCloseTo(1.1, within: 0.1))
expect(3) > 2
expect("seahorse").to(contain("sea"))
expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi"))
expect(ocean.isClean).toEventually(beTruthy())