Swift で使えるオープンソースライブラリ
2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。
Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。
Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としていますが、Swift では Objective-C で書かれた OSS も利用できるため、Swift 登場以前の OSS も多数掲載しています。Swift で iOS アプリを実装するときに便利な OSS のまとめとして参考にしていただければ幸いです。
今回ご紹介するライブラリは、もちろん全て無料で利用できます!また、採用時に手間にならないようライセンスも掲載しました。
目次
UI
言語機能の拡張
| 名前 |
機能 |
ライセンス |
| Dollar.swift |
Underscore.js ライクに記述(独自型) |
MIT License |
| ExSwift |
Underscore.js ライクに記述(既存型の拡張) |
BSD License |
| Swiftz |
関数型プログラミング記法のサポート |
BSD License |
| Basis |
関数型プログラミング記法のサポート |
MIT License |
| ReactKit |
リアクティブプログラミング記法のサポート |
MIT License |
| ReactKit |
リアクティブプログラミング記法のサポート |
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 |
通信処理
データ・ファイル処理
非同期処理
カメラ・画像処理
| 名前 |
機能 |
ライセンス |
| ImageScout |
画像ファイルを低コストでダウンロードする |
MIT License |
| SDWebImage |
画像のダウンロードとキャッシュの管理 |
MIT License |
| GPUImage |
GPU を利用した画像フィルタの高速処理・リアルタイム処理 |
BSD License |
ログ出力
アプリの説明、レビュー
テスト
| 名前 |
機能 |
ライセンス |
| Quick |
BDD スタイルのテスティングフレームワーク |
Apache License 2.0 |
| Sleipnir |
BDD スタイルのテスティングフレームワーク |
MIT License |
| Nimble |
マッチャー |
Apache License 2.0 |
パッケージ管理について
OSS をアプリに取り込むには、パッケージ管理ツールを利用するのが一般的です。Swift 製アプリのプロジェクトで利用できるパッケージ管理ツールは CocoaPods と Carthage の2つがあります。なお、いずれも現状では iOS 8 がターゲットのプロジェクトしか利用できません 。iOS 7 をターゲットとしたプロジェクトで OSS を利用するには、OSS のプロジェクトを直接取り込む必要があります。
CocoaPods の Swift 対応は開発中のためリリースされている最新バージョンでは利用できませんが、Swift 対応開発ブランチをチェックアウトすることで利用可能です。
Carthage (カルタゴ) は Swift に対応した、比較的新しいパッケージ管理ツールです。CocoaPods と異なり、Dynamic Framework として直接取り込む方式で管理されます。Cartfile というファイルを作成し、このファイル内に利用したい OSS を記述していきます。
まとめ
以上、オープンソースライブラリをまとめてみました。ぜひ参考にしていただければと思います。今後も良さそうなライブラリを見つけたら追記していきます!
明日は17日目、担当は fmtonakai さんです。お楽しみに!
脚注