狠狠撸

狠狠撸Share a Scribd company logo
StoreKitを使って
マネタイズ計画【再演】
      @saku2saku
 saku2saku at gmail.com
なぜStoreKitを使うか?
有料アプリの販売じゃダメ?
 アプリダウンロード数的に厳しい市場
   有料と無料を比較した場合その差【約100倍】
 ランキングに載らないと認知すらされないのが現実
   残り続けるには?
    デファクトアプリになる
    プロモーション活動
個人開発における有料アプリは難易度が上がり続ける


     挑むのであれば無料アプリ内で
      課金モデルを確立すること
課金の種類(現実世界)
買い切りモデル
 制限解除型
 コンテンツダウンロード型
 一回買ったらコンテンツはユーザのものになる
消費アイテムモデル
 消費を前提としたアイテム(RPGの強い装備等)
定期購読型モデル
 月額課金のような定期的にコンテンツを買うモデル
課金の種類
 (iTunes Connect上)
Non-Consumable
  買い切りアイテムモデル
Consumable
  消費アイテムモデル
Auto-Renewable Subscription
  定期購読モデル(自動更新)
Non-Renewable Subscription
  定期購読モデル(非自動更新)
Free Subscription
  iOS5 からのNewsstand用、まだ未知数です(知らないw)
購入履歴の管理について
Appleのサーバに保管される/されないものがある


Appleのサーバに履歴が保管されるもの
 Non-Consumable
 Auto-Renewable Subscription
自前のサーバに保管する必要のあるもの
 Consumable
 Non-Renewable Subscription
サンプルアプリ
サンプルアプリの概要
課金アイテムの一覧取得
课金アイテムの购入履歴の表示
课金アイテムの购入
購入履歴情報の復元


扱うアイテムの種別はFree Subscriptionを除く4つ
テスト用のアプリの作成
iTunes Connect にログイン
  Developer登録が必須となります
  適当にアプリを登録します
    別に既にバイナリがある必要はない
  アプリができたらManage In-App Purchasesを
  クリック
  左上のCreate Newをクリック
テスト用のアプリの作成
アイテムの課金タイプの選択画面になります
 試しに全ての種類の課金アイテムを登録してみると
 いいと思います
課金アイテムの情報を入力します
 全ての情報を入力
 Add Language ボタンを押すと多言語化対応した
 アイテムの表示名を登録できます
 右下のSaveボタンを押すとアイテムが登録されます
テスト用のユーザの作成
iTunes Connect にログイン
   Developer登録が必須となります
   Manage Usersを選択します
      Test Userをさらに選択します
      左上のAdd New Userをクリック
   必要な情報を入力するとAppleからメールがくるので
   アカウントをアクティベーションします
操作
プロジェクトファイルをダウンロード
 http://workshop.iphonework.biz/?les/
 2012/03/20120219iPhoneDevWS_StoreKit.zip
 zip ファイルを解凍
プロジェクトを開きます
 GlobalSetting.h の ITEM_IDENTIFIER の1~5を変更します
 ビルドして実行します
 StoreKitは「設定」->「一般設定」->「機能制限」->「App内で
 の購入」がオンになっている状態でないと動作しません
 古いiOSシミュレータではシミュレータ内でアプリ課金のテスト
 は行えないので注意してください
操作
Item list を選択
   ネットワークアクセスが起こりアイテムの一覧が
   表示されるのを確認します
   トップに戻る
Bought item list を選択
   購入済みアイテムのリストが表示されます
   この段階ではまだ全て not yet になっています
操作
Item list を選択
   今度は実際に课金アイテムの购入を行ってみます
   Consumable と Non-Consumable と
   Auto-Renewable Subscriptionのアイテムを購入
   してみましょう
Bought item list を選択
   購入済みアイテムのリストが表示されます
   先程購入したアイテムが bought に変わります
操作
購入履歴が復元できるかの確認
  先程説明をしましたが、Non-Consumable と
  Auto-Renewable Subscriptionは購入履歴が
  Appleによって管理され、情報を取得できます
  一旦インストールされたアプリをシミュレータま
  たは実機から削除し、再度ビルド&実行します
再度起動して Bought item list を見ると、全て
not yet となり購入履歴が消えているのがわかります
操作
Restore bought item を選択
 Apple IDが求められるので以下を入力
   先程作成したテストユーザのアカウントで認証します
 購入履歴の復元成功のアラートが出る
再びトップに戻って Bought item list を選択
 一部 bought に変化しているのを確認します
 bought に変化したのは以下の2つのアイテム
   Non-Consumable
   Auto-Renewable Subscription
操作
Consumable Item が not yet のままであることを
確認します
 消費型のアイテムについてはAppleのサーバに残ら
 ないことがわかります
サンプルコードの説明
課金アイテム情報の取得
ItemTableViewController
 - (void)viewDidLoad {
 ! if ([SKPaymentQueue canMakePayments]) {
       ????
 !   !
 !   !  NSSet *itemIdentifiersSet = [NSSet setWithObjects:
 !   !  ! ! ! ! ! ! !            ITEM_IDENTIFIER_1,ITEM_IDENTIFIER_2,
 !   !  ! ! ! ! ! ! !            ITEM_IDENTIFIER_3,ITEM_IDENTIFIER_4,
 !   !  ! ! ! ! ! ! !            ITEM_IDENTIFIER_5,
 !   !  ! ! ! ! ! ! !            nil];
 !   !  SKProductsRequest *request = [[SKProductsRequest alloc]
                       initWithProductIdentifiers:itemIdentifiersSet];
 ! !    request.delegate = self;
 ! !    [request start];
 ! } else {
 ! !    UIAlertView *alertView = [[[UIAlertView alloc] init]
 autorelease];
            ???
 ! !     [alertView show];
 ! }
 }
課金アイテム情報の取得
ItemTableViewController
   リクエスト完了後に呼ばれるデリゲートを実装

#pragma mark -
#pragma mark SKProductsRequestDelegate

-   (void) productsRequest:(SKProductsRequest *)request
!      didReceiveResponse:(SKProductsResponse *)response {
!    for (SKProduct *product in response.products) {
!    !   [itemIdentifiers addObject:product];
!    }
!    [request autorelease];
!    [loadingView removeFromSuperview];
!    [self.tableView reloadData];
}
课金アイテムの购入
iPhoneDevWS_StoreKitAppDelegate
ProductBuyingObserver
  メソッドの実装


    observer = [[ProductBuyingObserver alloc] init];
 ! [[SKPaymentQueue defaultQueue] addTransactionObserver:observer];


                                  or
 ! [[SKPaymentQueue defaultQueue] addTransactionObserver: self];
课金アイテムの购入
    ItemTableViewCell
       アイテムの購入処理



-   (void) pushBuyButton {
!    LOG_DEBUG(@"buy :%@", itemIdentifier);
!    SKPayment *payment = [SKPayment paymentWithProductIdentifier:itemIdentifier];
!    [[SKPaymentQueue defaultQueue] addPayment:payment];
}
课金アイテムの购入
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:
(NSArray *)transactions {
! for (SKPaymentTransaction *transaction in transactions) {
! !    switch (transaction.transactionState) {
! !    ! case SKPaymentTransactionStatePurchasing:
             !//購入中
! !     !   ! break;! ! ! !
! !     !   case SKPaymentTransactionStatePurchased:
               !
               //購入完了
! !     !   ! break;
! !     !   case SKPaymentTransactionStateFailed:
               !
               //購入失敗
! !     !   ! break;
! !     !   case SKPaymentTransactionStateRestored:
               !
               //リストア完了
!   !   !   ! break;
!   !   !   default:
!   !   !   ! break;
!   !   }
!   }
}
课金アイテムの復元
        RootViewController
        ProductBuyingObserver
          デリゲートの設定とメソッドの実装

!   !   case 2:
!   !   {
!   !   ! if ([SKPaymentQueue canMakePayments]) {
!   !   ! ! [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
!   !   ! ! [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
!   !   ! } else {
!   !   ! ! UIAlertView *alertView = [[[UIAlertView alloc] init] autorelease];
                      ???
! !     !   !   [alertView show];
! !     !   }

! !     !   break;
! !     }
课金アイテムの復元
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:
(NSArray *)transactions {
! for (SKPaymentTransaction *transaction in transactions) {
! !    switch (transaction.transactionState) {
! !    ! case SKPaymentTransactionStatePurchasing:
             !//購入中
! !     !   ! break;! ! ! !
! !     !   case SKPaymentTransactionStatePurchased:
               !
               //購入完了
! !     !   ! break;
! !     !   case SKPaymentTransactionStateFailed:
               !
               //購入失敗
! !     !   ! break;
! !     !   case SKPaymentTransactionStateRestored:
               !
               //リストア完了
!   !   !   ! break;
!   !   !   default:
!   !   !   ! break;
!   !   }
!   }
}
课金アイテムの復元
      復元成功のデリゲート
- (void) paymentQueueRestoreCompletedTransactionsFinished: (SKPaymentQueue *) queue {
! [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
   ???
! [alertView show];
! LOG_DEBUG(@"method called!");
}



      復元失敗のデリゲート
- (void) paymentQueue:(SKPaymentQueue *)queue
restoreCompletedTransactionsFailedWithError:(NSError *) error {
! [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
   ???
! [alertView show];
! LOG_DEBUG(@"method called!");
}
その他罢滨笔厂
レシートデータ
トランザクションにはレシートデータが含まれてお
り、その「purchase-info」をさらにデコードする
ことで様々なデータを取得できます

 {
 ! "signature" = "AkWUo???";
 ! "purchase-info" = "ewoJI???";
 ! "environment" = "Sandbox";
 ! "pod" = "100";
 ! "signing-status" = "0";
 }
レシートデータ
Appleのサーバに保管されないような購入アイテム
の記録を取りたい場合にはこのレシートの情報を自
分のサーバに保管する必要があります

{
!   "item-id" = "471702051";
!   "original-transaction-id" = "1000000010942512";
!   "purchase-date" = "2011-10-23 07:15:02 Etc/GMT";
!   "product-id" = "com.comitter.sampleapp.sample3";
!   "transaction-id" = "1000000010942512";
!   "quantity" = "1";
!   "original-purchase-date" = "2011-10-23 07:15:02 Etc/GMT";
!   "bid" = "com.comitter.sample2";
!   "bvrs" = "1.0";
}
ご清聴
ありがとうございました

More Related Content

Similar to 20120219i phonedeveloperworkshoppublished (20)

Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
?
BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622
Kohei Nishikawa
?
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
Shinobu Okano
?
Road to UI Library
Road to UI LibraryRoad to UI Library
Road to UI Library
Manato KAMEYA
?
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
Kazuki Nakajima
?
iOS WebView App
iOS WebView AppiOS WebView App
iOS WebView App
hagino 3000
?
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
daisuke-a-matsui
?
础苍诲谤辞颈诲のアプリ内课金
础苍诲谤辞颈诲のアプリ内课金础苍诲谤辞颈诲のアプリ内课金
础苍诲谤辞颈诲のアプリ内课金
Kenji Seto
?
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Brian Gesiak
?
UIImagePickerController よもやま話
UIImagePickerController よもやま話UIImagePickerController よもやま話
UIImagePickerController よもやま話
Kei Kusakari
?
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
?
础顿搁という考えを取り入れてみて
础顿搁という考えを取り入れてみて础顿搁という考えを取り入れてみて
础顿搁という考えを取り入れてみて
infinite_loop
?
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
Ryunosuke SATO
?
Xamarin て? ReactiveUI を使ってみた
Xamarin て? ReactiveUI を使ってみたXamarin て? ReactiveUI を使ってみた
Xamarin て? ReactiveUI を使ってみた
Hironov OKUYAMA
?
痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁
痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁
痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁
Mr. Vengineer
?
UIViewController のコンテナ機能
UIViewController のコンテナ機能UIViewController のコンテナ機能
UIViewController のコンテナ機能
Yuichi Fujishige
?
础苍诲谤辞颈诲アフ?リに课金コンテンツを导入
础苍诲谤辞颈诲アフ?リに课金コンテンツを导入础苍诲谤辞颈诲アフ?リに课金コンテンツを导入
础苍诲谤辞颈诲アフ?リに课金コンテンツを导入
HIROKI HONDA
?
Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03
驰补丑辞辞!デベロッパーネットワーク
?
ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~
ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~
ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~
MakotoItoh
?
BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622BMXUG ブロックチェーンハンズオン 20190622
BMXUG ブロックチェーンハンズオン 20190622
Kohei Nishikawa
?
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
Shinobu Okano
?
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
Kazuki Nakajima
?
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
daisuke-a-matsui
?
础苍诲谤辞颈诲のアプリ内课金
础苍诲谤辞颈诲のアプリ内课金础苍诲谤辞颈诲のアプリ内课金
础苍诲谤辞颈诲のアプリ内课金
Kenji Seto
?
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられるアップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Brian Gesiak
?
UIImagePickerController よもやま話
UIImagePickerController よもやま話UIImagePickerController よもやま話
UIImagePickerController よもやま話
Kei Kusakari
?
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
?
础顿搁という考えを取り入れてみて
础顿搁という考えを取り入れてみて础顿搁という考えを取り入れてみて
础顿搁という考えを取り入れてみて
infinite_loop
?
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
Ryunosuke SATO
?
Xamarin て? ReactiveUI を使ってみた
Xamarin て? ReactiveUI を使ってみたXamarin て? ReactiveUI を使ってみた
Xamarin て? ReactiveUI を使ってみた
Hironov OKUYAMA
?
痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁
痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁
痴别谤颈濒补迟辞谤と厂测蝉迟别尘颁
Mr. Vengineer
?
UIViewController のコンテナ機能
UIViewController のコンテナ機能UIViewController のコンテナ機能
UIViewController のコンテナ機能
Yuichi Fujishige
?
础苍诲谤辞颈诲アフ?リに课金コンテンツを导入
础苍诲谤辞颈诲アフ?リに课金コンテンツを导入础苍诲谤辞颈诲アフ?リに课金コンテンツを导入
础苍诲谤辞颈诲アフ?リに课金コンテンツを导入
HIROKI HONDA
?
ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~
ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~
ここが変わる!Unity 5のスマホ開発  ~アセットバンドル、ビルド、プラグイン~
MakotoItoh
?

More from Yoichiro Sakurai (20)

齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
Yoichiro Sakurai
?
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
?
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
Yoichiro Sakurai
?
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
Yoichiro Sakurai
?
開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded
Yoichiro Sakurai
?
チームを加速させる搁别迟迟测式开発术
チームを加速させる搁别迟迟测式开発术チームを加速させる搁别迟迟测式开発术
チームを加速させる搁别迟迟测式开発术
Yoichiro Sakurai
?
1人でも顽张れる!搁别迟迟测式开発环境
1人でも顽张れる!搁别迟迟测式开発环境1人でも顽张れる!搁别迟迟测式开発环境
1人でも顽张れる!搁别迟迟测式开発环境
Yoichiro Sakurai
?
狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ
狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ
狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ
Yoichiro Sakurai
?
Google admobmediationで広告最適化
Google admobmediationで広告最適化Google admobmediationで広告最適化
Google admobmediationで広告最適化
Yoichiro Sakurai
?
颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦
颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦
颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦
Yoichiro Sakurai
?
罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト
罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト
罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト
Yoichiro Sakurai
?
20130216 workshop
20130216 workshop20130216 workshop
20130216 workshop
Yoichiro Sakurai
?
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop
Yoichiro Sakurai
?
20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop
Yoichiro Sakurai
?
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
Yoichiro Sakurai
?
20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished
Yoichiro Sakurai
?
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
?
20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished
Yoichiro Sakurai
?
20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish
Yoichiro Sakurai
?
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
Yoichiro Sakurai
?
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
?
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
Yoichiro Sakurai
?
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
Yoichiro Sakurai
?
開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded
Yoichiro Sakurai
?
チームを加速させる搁别迟迟测式开発术
チームを加速させる搁别迟迟测式开発术チームを加速させる搁别迟迟测式开発术
チームを加速させる搁别迟迟测式开発术
Yoichiro Sakurai
?
1人でも顽张れる!搁别迟迟测式开発环境
1人でも顽张れる!搁别迟迟测式开発环境1人でも顽张れる!搁别迟迟测式开発环境
1人でも顽张れる!搁别迟迟测式开発环境
Yoichiro Sakurai
?
狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ
狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ
狈厂滨苍惫辞肠补迟颈辞苍の便利さとハマりどころ
Yoichiro Sakurai
?
Google admobmediationで広告最適化
Google admobmediationで広告最適化Google admobmediationで広告最適化
Google admobmediationで広告最適化
Yoichiro Sakurai
?
颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦
颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦
颁谤补蝉丑濒测迟颈肠蝉でクラッシュ扑灭作戦
Yoichiro Sakurai
?
罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト
罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト
罢别蝉迟贵濒颈驳丑迟自动化でらくらくチームテスト
Yoichiro Sakurai
?
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop
Yoichiro Sakurai
?
20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop
Yoichiro Sakurai
?
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
Yoichiro Sakurai
?
20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished
Yoichiro Sakurai
?
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
?
20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished
Yoichiro Sakurai
?
20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish
Yoichiro Sakurai
?

20120219i phonedeveloperworkshoppublished