こんにちは。アプリケーションエンジニアのid:sakaharaです。
この記事ははてなエンジニアアドベントカレンダー2014の20日目です。
昨日はid:wtatsuru によるはてなにおけるサーバリソース可視化とMackerelでした。
今日ははてなのiOS開発で利用しているオープンソースのライブラリやサービスも含め、開発をよりスマートにしてくれる様々なものを紹介したいと思います。
パッケージ管理
CocoaPods (MIT License)
まずライブラリ管理をするための管理ツールとして欠かせません。 最近ではSwiftに対応したCarthageも登場していますが、CocoaPodsのSwift対応版の開発も進んでおり そのまま使い続けるのもよいと思います。ライブラリ
AFNetworking (MIT License)
改めて紹介する必要はないほどの定番のHTTPネットワーク通信用ライブラリです。 Swiftで実装するならAlamofireもよいと思います。 両ライブラリ共にiOS開発で著名なMattt Thompsonさんが開発されています。Mantle (MIT License)
JSONをObjective-Cのオブジェクトに変換してくれるライブラリです。 オブジェクトをJSONにして出力することもできます。 またNSManagedObjectへの変換にも対応しているので、Core Dataを使う際にも威力を発揮します。SDWebImage (MIT License)
こちらも定番の画像を非同期でダウンロードしてくれるライブラリです。 特に何もしなくてもキャッシュをうまくコントロールしてくれる点や、アニメーションGIFにも対応しているなど便利な部分が多いです。 AFNetworkingにもUIImageView+AFNetworkingというライブラリがあり、非同期で画像をUIImageViewに表示する機能はありますが、 このSDWebImageをお勧めします。MBProgressHUD (MIT License)、SVProgressHUD (Creative Commons BY 3.0)
ローディング中のステータスを表示してくれるライブラリです。 細かい調整をしたいならMBProgressHUD、単純にローディング中を表示したいだけならSVProgressHUDがお勧めです。MCSwipeTableViewCell (MIT License)、MGSwipeTableCell (MIT License)
どちらもUITableViewCellにスワイプメニューを表示する機能を簡単に実装できます。AAMFeedback (New BSD License)、CTFeedback (MIT License)
ユーザーからのフィードバックをメールで送信する際にアプリ名やバージョンなど付加情報を設定できるライブラリです。 簡易的にメールでユーザーからフィードバックを受けたい場合に実装の手間が省けて便利です。HMSegmentedControl (MIT License)
UISegmentedControlをタブボタン風にしたUIControlです。 アニメーションや画像、フォントの設定、マージンの調整など細かい部分まで対応しており、タブボタン風のメニューを簡単に実装できます。AMScrollingNavbar (MIT License)
SafariようにスクロールするとUINavigationBarを非表示にしてくれるライブラリです。 UITableViewやUIScrollViewに数行追加するだけで実現できます。![AMScrollingNavbar](https://github.com/andreamazz/AMScrollingNavbar/raw/master/assets/logo.png)
BBBadgeBarButtonItem (MIT License)
UIBarButtonItemにバッジを表示できるようにするライブラリです。 バッジのフォント、カラー、位置など細かい調整も可能です。![BBBadgeBarButtonItem](https://github.com/TanguyAladenise/BBBadgeBarButtonItem/raw/master/screenshot.png?raw=true)