iPhoneアプリ開発で使用したオープンソースライブラリまとめ

このまえ新しいアプリを作って公開して、そのアプリはライブラリ結構使おーと思って開発したので、使わせてもらったものをまとめました。ライセンスは全部MITとかApacheとかです。

ちなみに [Popin](https://itunes.apple.com/jp/app/id734250879?l=ja&mt=8) というアプリです。Twitterのリンクだけを手軽に見るためのアプリです。超便利です！！

## PBTweenAnimation
https://github.com/Jacminik/PBTweenAnimation

アニメーションが簡単に実装できるライブラリです。

UIAlertViewが表示される時のバウンス（iOS6以前）とか、拡大・縮小・回転とかその手のアニメーションが超お手軽に実装できます。たとえばPopinでタイムラインのセルを右から左にスワイプすると拡大のバウンスアニメーションしながらボタンが出ますが、そのアニメーション用のコードは以下です。

```objc
CFTimeInterval duration = 0.75f;
CAAnimation *appearAnimation = PBTweenAnimationTypeScale(0.80, 1.0, duration, PBTweenFunctionElasticEaseOut);
[self.deleteView.layer addAnimation:appearAnimation forKey:nil];
```

詳しくは [[iOS] たった２行でTweenアニメーションを実装できるコードを公開。 | Everything was born from Love](http://jacminik.wordpress.com/2012/04/09/pbtween/) に動画が載ってますのでどうぞ。

## UICKeyChainStore
https://github.com/kishikawakatsumi/UICKeyChainStore

キーチェーンの読み書きに使ってます。

この手のライブラリは沢山ある（ということを今回知った）ので、他のライブラリで必要なやつを使うようにするのがいいかもしれません。たとえば [EvernoteSDK](https://github.com/evernote/evernote-sdk-ios/) だと [SSKeychain](https://github.com/soffes/sskeychain) が必要だったり、[HatenaBookmarkSDK](https://github.com/hatena/Hatena-Bookmark-iOS-SDK) だと [SFHFKeychainUtils](https://github.com/ldandersen/scifihifi-iphone/tree/master/security) ていうのが必要だったりします。

ライブラリを使わないとキーチェーンの操作はめんど過ぎです。

## SECoreTextView
https://github.com/kishikawakatsumi/SECoreTextView

リッチテキストを簡単に表示するためのライブラリです。僕は使ってませんが、画像を入れたりとかも簡単にできるみたいですね。

このライブラリにはTwitterのタイムラインを表示するというデモが含まれており、そこで使われてる [SETwitterHelper](https://github.com/kishikawakatsumi/SECoreTextView/blob/master/Examples/Shared/) というクラスもなかなか素晴らしいです。Twitterのタイムラインから取得したJSON（のNSDictionary）からNSAttributedStringを作ってくれます。

## SVProgressHUD
https://github.com/samvermette/SVProgressHUD

処理中とかその手のいわゆるHUDを表示してくれるライブラリです。コードが1行で済んで楽なので重宝してます。

```objc
[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeGradient]; // 表示
[SVProgressHUD dismiss]; // 非表示
```

![SVProgressHUD](https://qiita-image-store.s3.amazonaws.com/0/3336/c13ca3fd-0fc9-098f-050b-006ddaf665a7.png)

## FPPopover
https://github.com/50pixels/FPPopover

iPhoneでもUIPopoverControllerしたいという要望を実現するためのライブラリです。プロパティも同じような感じで使えます。UIPopoverControllerよりも見た目のカスタマイズが豊富みたいですね。

![FPPopover](https://qiita-image-store.s3.amazonaws.com/0/3336/abcadbc4-dd34-3bb7-6204-c01dfeb4a36c.png)

## Pocket ObjC SDK
https://github.com/Pocket/Pocket-ObjC-SDK

[Pocket](http://getpocket.com/) の公式SDKです。Pocketにログインしたり投稿したりといったことが出来ます。

UIActivityにPocketを表示したかったので、以下を参考に組み込みました。

https://github.com/mmackh/Hacker-News-for-iOS/blob/master/Hacker%20News/PocketSDK/PocketAPIActivity.m

## Evernote SDK for iOS
https://github.com/evernote/evernote-sdk-ios/

[Evernote](http://evernote.com/) の公式SDKです。結構巨大なので（EDAMNoteStoreとか5万行もあるよ！）なんとなく使うのを躊躇してましたが、まあせっかくなので入れてみました。cocoapod楽ちんです。

新規ノート投稿用のUIがないみたいなので自力で投稿機能を作ったりと、なにげにかなり苦労しました。ウェブページ丸ごと保存するにはどうすればいいのかなー。

## Hatena Bookmark iOS SDK
https://github.com/hatena/Hatena-Bookmark-iOS-SDK

[はてなブックマーク](http://b.hatena.ne.jp/) を操作するための公式ライブラリです。UIActivityで使いたくて導入しました。

HTBHatenaBookmarkActivityていうUIActivityを継承したクラスがあるので、UIActivityを使いたい場合はそのまま使えるので楽でした。

![HTB.png](https://qiita-image-store.s3.amazonaws.com/0/3336/582191e8-d2f4-0a3d-6a55-63609983f69f.png)