196
191

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swiftアプリ開発で使ってよかったライブラリまとめ

Last updated at Posted at 2016-02-05

Swiftビギナーな自分が最近知った & 使ってよかったライブラリをまとめていきます
随時更新予定です:tada:

UI

SnapKit/SnapKit

コードで簡単にAutoLayoutが実装できます

すでにAutoLayoutを使用しているView上に、コードでaddSubview()をするときなどに便利でした

Sample.swift
// 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

バウンスの動きなど、アニメーションの実装が簡単にできるライブラリ

:tada: TIPS: Objective-C製なので要BridgingHeaderです

devxoul/JLToast

Androidが羨ましかった!トースト表示のライブラリです
以下のようなAttributeも付与できて便利でした

Attribute
JLToastViewBackgroundColorAttributeName
JLToastViewCornerRadiusAttributeName
JLToastViewTextInsetsAttributeName
JLToastViewTextColorAttributeName
JLToastViewFontAttributeName
JLToastViewPortraitOffsetYAttributeName
JLToastViewLandscapeOffsetYAttributeName

:tada: TIPS: 現時点ではAttributeを一つずつ設定することしかできないようなので、Forkして同時に複数設定できるようにすると良いかもしれません(Sampleあります

JSON / Model Mapping

Hearst-DD/ObjectMapper

JSON形式のAPIのレスポンスやplistのマッピングに使っています

:tada: TIPS: Objective-CでいうところのMantle/Mantle

Network

Alamofire/Alamofire

ネットワーク通信用の定番ライブラリ

:tada: TIPS: Objective-CでいうところのAFNetworking/AFNetworking

Image Downloader

onevcat/Kingfisher

画像のダウンロードとキャッシングのライブラリ
:tada: TIPS: rs/SDWebImageにもINSPIREされたようです!function名も似ていて使いやすさ◎

Reactive Programing

ReactiveX/RxSwift

リアクティブプログラミングに利用します

:tada: TIPS: Objective-C製ではReactiveCocoa/ReactiveCocoaでしょうか
(Swift対応済みなのですね。leegunさんありがとうございます!)

前述のAlamofireObjectMapperと併用したネットワーク周りの実装に役立っています
また、値監視をしてMVVMモデルを実装したり、用途は様々でとても便利です

:tada: TIPS: RxSwift + MVVMモデルのサンプルあります

Data Base

realm/realm-cocoa (RealmSwift)

簡単にアプリ内でデータベースを実装できます
前述のObjectMapperとの併用も便利です

:tada: TIPS: 公式サイトやドキュメントも整備されているので◎

Date

malcommac/SwiftDate

NSDateの面倒な扱いがぐっと楽になっていて驚きました

Before:SwiftDateなし(いつもの)

WithoutSwiftDate.swift
// 現在日時を取得
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あり

WithSwiftDate.swift
// 現在日時を指定フォーマット(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以下の場合、アプリのベースに関わる部分に使うのを避ける

以上です :tada:
ありがとうございました

196
191
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
196
191

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?