Tapjoyというリワード広告について調べてみる
pod "TapjoySDK", "10.0.0"で、コンソールで
$ pod installこうじゃ。説明ページにあるのそのままコピペするとクオートがおかしい。 BuildPhasesに追加するライブラリは、デモアプリの導入で説明でされている。 http://tech.tapjoy.com/product-overview/publishers/overview-for-publishers AppDelegateにAppIDとAppSecletKeyを設定する。 これらは[DashBoard](https://dashboard.tapjoy.com/) から登録して取得する。 ここで一番わかりづらいのが、先に実装を行わないとIntegratedがYESにならない。 アプリの情報もマーケットから取得するので、公開前のアプリどうすんのかよくわからない。 さらに、初期段階ではMovieなどの項目が利用できないのだけど、どうすんのかよくわからない。 ので、EasyAppの解説に終始することにする。
TapjoyEasyAppの動画終了イベントを探す
動画を最後まで見るとユーザーに仮想通貨が還元される。 この最後まで見た/見ていないはSDKで処理されている。 仮想通貨が付与される部分は、Androidの場合は実装ファイルが一つしかないので見つけるの簡単。TapjoyConnect.requestTapjoyConnect(getApplicationContext(), tapjoyAppID, tapjoySecretKey, connectFlags, new TapjoyConnectNotifier() { @Override public void connectSuccess() { onConnectSuccess(); } @Override public void connectFail() { onConnectFail(); } });
public void onConnectSuccess() { // NOTE: The get/spend/awardTapPoints methods will only work if your virtual currency // is managed by Tapjoy. // // For NON-MANAGED virtual currency, TapjoyConnect.getTapjoyConnectInsance().setUserID(...) // must be called after requestTapjoyConnect. // Get notifications whenever Tapjoy currency is earned. TapjoyConnect.getTapjoyConnectInstance().setEarnedPointsNotifier(new TapjoyEarnedPointsNotifier() { @Override public void earnedTapPoints(int amount) { earnedPoints = true; updateTextInUI("You've just earned " + amount + " Tap Points!"); showPopupMessage("You've just earned " + amount + " Tap Points!"); } });のあたりで仮想通貨の付与が完了したのをハンドルすることができそう。 仮想通貨を付与するタイミングならVideoの再生完了でもよいので、 DocumentにあるTapjoyVideoNotifier.videoComplete() でもできそう。 iOSはちょっと探すのめんどかった。 付属のDocument見る限りvideoComplete的なコールバックはない。 仮想通貨付与の時にダイアログが出ているが、これはどこで出ているのか。 これはTJAppDelegateにあり、
- (void)showEarnedCurrencyAlert:(NSNotification*)notifyObj { NSNumber *tapPointsEarned = notifyObj.object; int earnedNum = [tapPointsEarned intValue]; NSLog(@"Currency earned: %d", earnedNum); // Pops up a UIAlert notifying the user that they have successfully earned some currency. // This is the default alert, so you may place a custom alert here if you choose to do so. [Tapjoy showDefaultEarnedCurrencyAlert]; }この辺引っ掛ければ付与された仮想通貨の情報が取得できそう。
UIScrollViewのオーバースクロールを取得する
ScrollViewのOverScrollにあたるプロパティをiOSではbouncesと呼ぶようです。
スクロールが起きたときのイベントハンドラはdelegateにUIScrollViewDelegateを設定します。
UIScrollViewDelegate Protocol Reference
UIScrollViewDelegateのメソッドのプロパティのScrollViewからcontentOffsetで現在のスクロール位置を取り出す事ができます。
CGPoint currentPoint = [scrollView contentOffset];</span>
currentPoint.xの値はUIScrollViewのコンテンツの表示されている左上のポイントです。
今回取りたかったのは横向スクロールのコンテンツの最終地点(右側)のオーバースクロール。
スクロール中に何かしたかった分けではないのでscrollViewDidEndDraggingを使いましたが
他のメソッドでも大体scrollViewがプロパティで渡されるので同じようにできそうです。
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { CGPoint currentPoint = [scrollView contentOffset]; CGRect r = [[UIScreen mainScreen] bounds]; float overscrolledX = currentPoint.x - scrollView.contentSize.width + r.size.width; if (overscrolledX > 0 ) { // 右側のオーバースクロールが起きたよ } }
cocoapodsを導入しようとする
APIを叩く処理をやることになったので、 AFNetworkingというライブラリを導入しようとしていらんとこでつまづいた。
そもそもどうやってライブラリ導入するのかと。
Androidだとlibsディレクトリ切って、昔だとプロジェクトの設定からclasspath通さないといけないよね。
そしてAFNetworkingのgithub見たらナチュラルにcocoapodsの使用前提になってた。
さくっとググってみたけどライブラリの導入方法解説ないなーっておもってcocoapods導入を決意。
開発レシピ:Objective-Cのライブラリ管理ツール CocoaPods | iOS開発者@日本
$sudo gem install cocoapods $pod setup
が、podを認識してない様子。
http://www.whoocus.com/blog/?p=1851
どうもターミナルを再起動するか、下のコマンドでrbenvをrehashしなければならないことがあるようだ。
$ rbenv rehash
で自分はpod setupできるようになった。
ここからがcocoapodsを使ったライブラリの導入。 .xcodeproj のあるディレクトリにPodfileというファイルを作成。 中にインストールするライブラリの設定を書く。
platform :ios, '7.0' pod "AFNetworking", "~> 2.0"
cocoaposさえ入っていればライブラリの導入は超簡単。
と、思ってビルドしたら動かない。。。 調べてみたら、既にLibraryディレクトリ切ってAFNetworkingのコードがそのまま入ってました。 どうも他のメンバーが入れてくれていたようです。
iOSのライブラリ導入は、クラスパスなどの概念がないのでzipかソースコードそのまま入れるだけでうごくようです。 遠回りした。。。
iOSはじめに見るべきリンク
はじめにDeveloperサイト Apple Developer
何はともあれ公式ドキュメントたち iOS Developer Library
日本語もあって嬉しいドキュメント 日本語ドキュメント - Apple Developer
これでトレーニング中 mixi-inc/iOSTraining · GitHub
記事がたくさん iPhone | Developers.IO
まだ読んでないのもたくさん。正直このページあれば自分のメモいらないんじゃないだろうか。
- よい記事集まってます すごい参考になるiOS開発関連の良記事まとめ、ライブラリ、プログラミング、UI/UX、プロモーションのメモ - showrtpath - iPhone,iPadウェブブラウザアプリ開発ブログ
【追記するかも】