必見の記事

Swift 時代の新定番!iOS アプリ開発で使えるオススメのオープンソースライブラリまとめ

2014.12.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Swift で使えるオープンソースライブラリ

2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。

Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。

Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としていますが、Swift では Objective-C で書かれた OSS も利用できるため、Swift 登場以前の OSS も多数掲載しています。Swift で iOS アプリを実装するときに便利な OSS のまとめとして参考にしていただければ幸いです。

今回ご紹介するライブラリは、もちろん全て無料で利用できます!また、採用時に手間にならないようライセンスも掲載しました。

目次

UI

名前 機能 ライセンス
MBProgressHUD プログレスの表示 MIT License
MRProgress プログレスの表示 MIT License
CRToast トーストの表示 MIT License
TTTAttributedLabel ラベルの装飾 MIT License
OHAttributedLabel ラベルの装飾 MIT License
LTMorphingLabel ラベルの装飾とアニメーション MIT License
PSCollectionView Pinterest 風 CollectionView BSD License
JSQMessagesViewController 標準 Message アプリ風 ViewController MIT License
JASidePanels ドロワーメニュー MIT License
QuickDialog 設定画面 Apache License 2.0
SMPageControl UIPageControl のカスタマイズ MIT License
Pop アニメーション BSD License
FlatUIKit フラット UI のテーマ MIT License
PureLayout Auto Layout の記述を簡単する MIT License
Cartography Auto Layout の記述を簡単する MIT License

言語機能の拡張

名前 機能 ライセンス
Dollar.swift Underscore.js ライクに記述(独自型) MIT License
ExSwift Underscore.js ライクに記述(既存型の拡張) BSD License
Swiftz 関数型プログラミング記法のサポート BSD License
Basis 関数型プログラミング記法のサポート MIT License
ReactKit リアクティブプログラミング記法のサポート MIT License
ReactiveCocoa リアクティブプログラミング記法のサポート MIT License
Euler 数学で利用する特殊文字の演算子の定義 MIT License
SwiftState ステートマシンの実装 MIT License

標準フレームワークの拡張

名前 機能 ライセンス
LGBluetooth CoreBluetooth を使いやすくする MIT License
PeerKit Multipeer Connectivity を使いやすくする MIT License
CargoBay StoreKit (In-App Purchases) を使いやすくする MIT License

ローカルデータベース

名前 機能 ライセンス
Realm SQLite & CoreData より高速な次世代 DB Apache License 2.0
SugarRecord CoreData & Realm 両対応 DB MIT License
MagicalRecord Active Record パターンの DB 管理 MIT License
Couchbase Lite NoSQL のドキュメント指向型 DB エンジン Apache License 2.0

通信処理

名前 機能 ライセンス
AFNetworking ネットワーク通信処理 MIT License
Alamofire ネットワーク通信処理 MIT License
Reachability ARC, GDP 対応の Reachability MIT License

データ・ファイル処理

名前 機能 ライセンス
SwiftyJSON JSON データの扱いをより簡単にする MIT License
Mantle JSON, XML 両対応のデータモデリングフレームワーク MIT License
Surge 計算処理を高速にする MIT License
SSZipArchive Zip ファイルの解凍・圧縮 MIT License
SSKeyChain Keychain にパスワードを簡単に保存する MIT License

非同期処理

名前 機能 ライセンス
Bolts 非同期処理を柔軟に管理 BSD License
BrightFutures 制御フローライクに非同期処理を記述 MIT License
SwiftTask 制御フローライクに非同期処理を記述 MIT License

カメラ・画像処理

名前 機能 ライセンス
ImageScout 画像ファイルを低コストでダウンロードする MIT License
SDWebImage 画像のダウンロードとキャッシュの管理 MIT License
GPUImage GPU を利用した画像フィルタの高速処理・リアルタイム処理 BSD License
NYXImagesKit 画像編集の UIImage カテゴリ拡張 BSD License

ログ出力

名前 機能 ライセンス
CocoaLumberjack ログ出力 BSD License
XCGLogger ログ出力 MIT License

アプリの説明、レビュー

名前 機能 ライセンス
EAIntroView ウォークスルーの表示 MIT license
Appirater レビュー促進ダイアログの表示 MIT License

テスト

名前 機能 ライセンス
Quick BDD スタイルのテスティングフレームワーク Apache License 2.0
Sleipnir BDD スタイルのテスティングフレームワーク MIT License
Nimble マッチャー Apache License 2.0
OHHTTPStubs HTTP 通信のスタブを提供 MIT License

パッケージ管理について

OSS をアプリに取り込むには、パッケージ管理ツールを利用するのが一般的です。Swift 製アプリのプロジェクトで利用できるパッケージ管理ツールは CocoaPods と Carthage の2つがあります。なお、いずれも現状では iOS 8 がターゲットのプロジェクトしか利用できません *1iOS 7 をターゲットとしたプロジェクトで OSS を利用するには、OSS のプロジェクトを直接取り込む必要があります。

CocoaPods

CocoaPods の Swift 対応は開発中のためリリースされている最新バージョンでは利用できませんが、Swift 対応開発ブランチをチェックアウトすることで利用可能です。

2015/01/26 追記 CocoaPods 0.36 で Swift がサポートされました!現在は Beta ですので、以下のコマンドでインストールすることができます。

sudo gem install cocoapods --pre

Carthage

Carthage (カルタゴ) は Swift に対応した、比較的新しいパッケージ管理ツールです。CocoaPods と異なり、Dynamic Framework として直接取り込む方式で管理されます。Cartfile というファイルを作成し、このファイル内に利用したい OSS を記述していきます。

まとめ

以上、オープンソースライブラリをまとめてみました。ぜひ参考にしていただければと思います。今後も良さそうなライブラリを見つけたら追記していきます!

明日は17日目、担当は fmtonakai さんです。お楽しみに!

脚注

  1. Dynamic Framework として取り込む方法は iOS 8 をターゲットとしたプロジェクトでしか利用できないため。