街のカタログアプリ「Here」で利用しているiOSライブラリのまとめ


街のカタログアプリ「Here」をリリースしました!

function01__image__catalog@2x-bd1b3a725f380939fe7569595307a1f5

http://here-jp.com/

iTunesでダウンロード

公開記念にHereで利用しているiOSライブラリをまとめました。Hereではサードパーティライブラリはcocoapodsで管理しており、ここにあげたライブラリの多くはcocoapodsで簡単に入れられます!

主要なライブラリ

AFNetworking

https://github.com/AFNetworking/AFNetworking

AFNetworking

言わずと知れたネットワーク通信のライブラリ。Hereでは新しい2.0系を採用しました。AFHTTPSessionManagerとUIImageView+AFNetworkingのsetImageURLRequestを使っています。

AKSegmentedControl

https://github.com/alikaragoz/AKSegmentedControl

aksegmentedcontrol-screenshot

標準のUISegmentedControlはカスタマイズがしづらいのですが、このAKSegmentedControlはカスタマイズがとてもしやすいです。他のライブラリとくらべても扱いやすさはピカイチ。UIViewをいれこむだけでそのUIViewのサイズに合わせたサイズになってくれます。こんなかんじですね。
スクリーンショット 2013-12-18 19.31.00

UIButton *itemButton = [[UIButton alloc] init];
[itemButton setImage:[UIImage imageNamed:@"shop__tab__item"] forState:UIControlStateNormal];
[itemButton setImage:[UIImage imageNamed:@"shop__tab__item--active"] forState:UIControlStateSelected];
UIButton *infoButton = [[UIButton alloc] init];
[infoButton setImage:[UIImage imageNamed:@"shop__tab__map"] forState:UIControlStateNormal];
[infoButton setImage:[UIImage imageNamed:@"shop__tab__map--active"] forState:UIControlStateSelected];
self.segmentedControl.buttonsArray = @[itemButton, infoButton];
[self.segmentedControl setSelectedIndex:0];
[self.segmentedControl addTarget:self action:@selector(segmentedControlValueChanged:) forControlEvents:UIControlEventValueChanged];

MBProgressHUD

https://github.com/jdg/MBProgressHUD

17

ユーザーへの簡易的でかつ一時的な表示とローディングの表示に使っています。SVProgressHUDはシングルトンで表示は1個なのですが、MBProgressHUDはシングルトンではなく毎回生成してsubViewに追加して表示するようになってます。HereではMBの方が用途に合っていたのでこちらを採用しました。

GoogleAnalytics-iOS-SDK

https://developers.google.com/analytics/devguides/collection/ios/v3/
Hereではユーザーの行動はGoogleAnalyticsで解析しています。64bit対応していないので、32bitでアプリを書き出す必要があります。詳しくは下記の記事で。
GoogleAnalytics SDK for iOS 3.0が64bit対応していない問題への対応 | heathrow.lab

BlockInjection

https://github.com/tokorom/BlockInjection
GoogleAnalyticsのためのコードを埋め込みたくない……そんなあなたにオススメな黒魔術がBlockInjectionです。サンプルでもGoogleAnalyticsコードの埋め込みをしています。こちらのライブラリは、別のクラスからメソッドの前後に処理を追加することを可能にするものです。黒魔術や!
作者は日本語書ける方で、こちらに解説記事があります。

http://www.tokoro.me/2013/03/07/block-injection/

Harpy

https://github.com/ArtSabintsev/Harpy

picForcedUpdatepicOptionalUpdatepicSkippedUpdate

アプリのアップデートがあったら通知してくれるものです。動作のカスタムも必要な物が揃っているし、ローカライズもされています。助かります。

UIActivityControllerのカスタムActivity

こちらも自分で作るよりは各種のやつを使わせて頂いております。とりあえずChromeとSafariですね。

screenshot687474703a2f2f662e636c2e6c792f6974656d732f314d304f3338306931313067334b31463366326d2f53637265656e73686f74253230323031322e31312e333025323031352e30322e31362e706e67

ARChromeActivity

https://github.com/alextrob/ARChromeActivity

TUSafariActivity

https://github.com/davbeck/TUSafariActivity

まとめ

これらのライブラリのお陰で大変開発が捗りました。ライブラリを書くことで恩返ししたいとところですが、ネタはないのでとりあえず利用方法を書くことでコミュニティに返したいと思います。

この記事に対してコメントを書く