BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

iTunes Storeの情報を簡単に取ってきて表示させるだけのサンプル"AppRankingParser"を書いた

Appleが太っ腹にも提供している"RSS Feed Generator" 目当てのランキングを取り出すためのインターフェイスをつくりました。 (RSS側の値が変更されると身も蓋もないことになるので今後なんとかしたい)

GitHub somtd/AppRankingParser

 2013-11-21 18.11.53.png 2013-11-21 18.11.41.png

使ってもらうのはclass以下の4つのファイルです。

  • RankingApi.h

  • RankingApi.m

  • RankingApiClient.h

  • RankingApiClient.m

RankingApiClientAFHTTPClientのサブクラスとなっているので、こちらをそのまま利用する場合はAFNetworkingが必要になります。

RankingApiの概要

ARAudiobooks : iOSアプリのランキングを取得

+ (void)getiOSAppsRankingWithCountry:(ARCountry)country
                            feedType:(ARiOSApps)feedType
                               genre:(ARiOSAppsGenre)genre
                               limit:(int)limit
                             handler:(void (^)(id response, NSError *error))handler;

ARCountry : RSS取得対象の国

現在は、UnitedStates,Japanのみ利用可能。

ARiOSApps : フィードタイプ

  • ARiOSAppsTypeTopFree // iPhoneトップ無料

  • ARiOSAppsTypeTopPaid // iPhoneトップ有料

  • ARiOSAppsTypeTopGross // iPhoneトップセールス

  • ARiOSAppsTypeTopFreeiPad // iPadトップ無料

  • ARiOSAppsTypeTopPaidiPad // iPadトップ有料

  • ARiOSAppsTypeTopGrossiPad // iPadトップセールス

  • ARiOSAppsTypeNew //新着アプリ

  • ARiOSAppsTypeNewFree //新着無料アプリ

  • ARiOSAppsTypeNewPaid //新着有料アプリ

ARiOSAppsGenre : アプリのジャンル

  • iOSAppsBooks //ブック

  • iOSAppsBusiness //ビジネス

  • iOSAppsCatalogs //カタログ

  • iOSAppsEducation //教育

  • iOSAppsEntertaiment //エンターテインメント

  • iOSAppsFinance //ファイナンス ・・・

使い方(Demo)

% git clone git@github.com:somtd/AppRankingParser.git

% cd AppRankingParser/AppRankingParserDemo

% pod install

AppRankingParser/AppRankingParserDemoディレクトリの AppRankingParserDemo.xcworkspaceを開く。

Demoでは適当なUITableViewControllerのサブクラスで上記のクラスメソッドを呼んでやってます。

[RankingApi getiOSAppsRankingWithCountry:Japan
                                        feedType:_iOSAppsType
                                           genre:0
                                           limit:20
                                         handler:^(id response, NSError *error) {
                                             _array = [NSMutableArray arrayWithCapacity:0];
                                             NSLog(@"response:%@",response);
                                             for (NSDictionary *appDictionary in (NSArray *)response) {
                                                 App *app = [[App alloc] initWithDictionary:appDictionary];
                                                 [_array addObject:app];
                                             }
                                             [self.tableView reloadData];
                                         }];

※Appというクラス名は適切ではありませんでした。ランキングを取得した結果をオブジェクトとして取り出す用に使っています。