2014年12月17日水曜日

紙粘土 de カエルのクク

「カエルのクク」の紙粘土での立体化を試みました。

今回お手本にしたのはこのイラスト。






用意するものは紙粘土。






人間3Dプリンターたちがせっせと立体像を作ります。






ハイクオリティな胴体ができあがりました。







「カエルのクク」ではありませんがこちらも力作。






色を塗ったら・・・






完成!






アップにも十分耐える高品質?






王冠をのせて白背景に置くと・・・






なかなかいい感じになったのではないでしょうか?


みなさんも「紙粘土 de カエルのクク」にチャレンジしてみませんか?

「カエルのクク」の Twitterアカウント の日替わりのイラストがお手本になると思います。

出来上がったらぜひ @ququ_the_frog までお知らせください。



LINEスタンプ「カエルのクク」は現在審査中です。

スタンプ検索サイト「スタンパーズ」で、全スタンプ画像をご覧いただけます





2014年12月12日金曜日

LINEスタンプ「カエルのクク」をSTAMPOOで公開しました

LINEスタンプ「カエルのクク」を、検索サイト「STAMPOO」に登録・公開しました。






ぜひチェックの上、「NICE!」などしていただければ幸いです:

 カエルのクク by アイウィーヴ | LINEスタンプ検索サイト STAMPOO



FacebookTwitterGoogle+の公式アカウントでも情報を順次お届けしています。

Twitterでは「カエルのクク」との簡単な会話がお楽しみいただけます。

スタンプがいつ出るのかなど、ぜひククに直接質問してみてください。


何回か質問すると違う反応が返ってくると思いますよ。

 カエルのクク | Twitter



「カエルのクク」の公式ページはこちらです:

 カエルのクク - 特設ページ






2014年12月10日水曜日

「カエルのクク」のスタンプをStampersで公開しました

アプリ「神経衰弱 - Melancholy」から生まれた「カエルのクク」のスタンプ第一弾を、LINEスタンプ検索サイト「Stampers(スタンパーズ)」に登録・公開しました。







ぜひチェックいただき、「LOVE」や「いいね!」などしていただければ嬉しいです。

 「カエルのクク」|LINEスタンプ検索サイト Stampers(スタンパーズ)


FacebookTwitterGoogle+の公式アカウントでも情報を順次お届けしています。

また、Twitterアカウントでは「カエルのクク」との会話がお楽しみいただけます。

ぜひフォローして続報をお待ち下さい。

 カエルのクク - 特設ページ


2014年12月8日月曜日

カエルのクク - カエル君の名前が決まりました

アプリ「神経衰弱 - Melancholy」から生まれたオリジナル・キャラクター、通称カエル君の名前が正式に決定しました!

名前は「カエルのクク」です。以後よろしくお願いします。






名前の決定にあわせ、LINEスタンプのリリースも決定しています。

審査の進み具合等についても随時お知らせする予定です。

 カエルのクク


なお、FacebookTwitterGoogle+に「カエルのクク」公式アカウントを用意しました。

特にTwitterでは、「カエルのクク」との簡単な会話を楽しむことができます。

ぜひフォローして続報をお待ちください。




2014年10月8日水曜日

SNS機能を強化した「Countil」新バージョンが公開されました

iOSアプリ「Countil - あと何日で・・・」をご愛顧いただき、大変ありがとうございます。

本日、SNS機能の強化、および壁紙2点を追加した新バージョン(1.3.5)が、App Store で公開されましたのでお知らせします。






今回のアップデートでは、ご要望が多かった、画面表示を画像としてSNSへ共有する機能を追加しました。

お友達とのワクワク感の共有や、イベントの告知などの利用シーンでよりお使いいただきやすくなったのではないかと考えています。


また気が進まない仕事や勉強の予定を、少しだけ楽しいものに変えるお手伝いをする壁紙「オフィス」と「勉強部屋」を追加しました。

日頃のお仕事の予定や、試験・受験の予定などにぜひご利用ください。


 「Countil - あと何日で・・・」 - iTunes

 「Countil - あと何日で・・・」サポートページ



なお、FacebookTwitterGoogle+の各公式アカウントで、「Countil」の最新情報を随時ご案内しています。










2014年8月26日火曜日

秋の壁紙4点を追加した「Countil」新バージョンが公開されました

iOSアプリ「Countil - あと何日で・・・」をご愛顧いただき大変ありがとうございます。

本日、壁紙4点を追加した新バージョン(1.3.0)が、App Storeで無事公開されましたのでお知らせします。






今回は「秋」を連想させる壁紙の追加がメインになっています。

ぜひ今後の予定・イベントにお使いください。


 「Countil - あと何日で・・・」 - iTunes

 「Countil - あと何日で・・・」サポートページ



なお「Countil」の最新情報は、Facebook、Twitter、Gogle+の各公式アカウントで随時配信しています。

お得なセール情報などもお届けしますので、ぜひフォローしてみてください。


 Facebook 公式アカウント

 Twitter 公式アカウント

 Google+ 公式アカウント










2014年8月6日水曜日

iOSアプリ「神経衰弱 - Melancholy 2」がiPhone女子力で紹介されました

ご好評いただいている「神経衰弱 - Melancholy 2」が、サイト「iPhone女子力」で紹介されました。

この記事を書いている時点では、まだサイトのトップに掲載されています。

 子どもと一緒に遊びたい!イラストが可愛いゲームアプリ「神経衰弱 - Melancholy 2」 | iPhone女子力



まだ「神経衰弱 - Melancholy 2」を入手されていない方、この機会にぜひお試し下さい。

 「神経衰弱 - Melancholy 2」 - iTunes

 「神経衰弱 - Melancholy」サポートページ








大幅リニューアルした「神経衰弱 - Melancholy」新バージョン公開中です

日頃iOSアプリ「神経衰弱 - Melancholy」ファミリーをご愛顧いただき、大変ありがとうございます。

ご連絡がすっかり遅くなってしまいましたが、新しいカードセットおよびゲームモードの追加、Game Center対応、iPhone・iPad両対応(Universal)など、大幅リニューアルされた新バージョンが App Store で公開 されています。






今回のリニューアルをうけ、これまで有料販売していましたiPad専用アプリケーション「神経衰弱 - Melancholy」および、iPhone専用アプリケーション「神経衰弱 - Melancholy mini」は、メンテナンスを終了させていただきます。

上記をお持ちの方は、大変お手数ですが無料の「神経衰弱 - Melancholy 2」を入手していただき、追加された要素をお楽しみいただければ幸いです。

有料版が端末にインストールされている状態で、「神経衰弱 - Melancholy 2」をいったん起動していただくと、これまで通り広告が表示されない状態でお楽しみいただけます。


今後とも「神経衰弱 - Melancholy」をよろしくお願いします。



 アイウィーヴ、iOSアプリ「神経衰弱 - Melancholy」を全面リニューアル


なお「Melancholy」の最新情報は、Facebook、Twitter、Google+の公式アカウントで常時配信しています。









2014年7月18日金曜日

2014/07/18 今日のジェニ







お久しぶりです。

バーニーズ・マウンテンのジェニには辛い季節になりました。






そんなことないよ!






最近のジェニは以前よりショートカットです。






暑いけど氷のペットボトルで頑張るジェニなのでした。








ジェニもカードで登場する「神経衰弱 - Melancholy」は App StoreGoogle Play で好評公開中です。






ぜひお試し下さい。

 神経衰弱 - Melancholy 特設ページ





2014年7月16日水曜日

【iOS技術連載】 In-App Purchase 第5回 - プロダクト登録のタイミング

In-App Purchaseに関する連載5回目です。

今回は最終回として、アプリケーション申請フローにおけるプロダクト登録のタイミングについて簡単にまとめます。






プロダクト登録は、iTunes Connectでアプリケーションのレコードを作成して以降、任意のタイミングで可能です。

アプリケーションにプロダクトを含めるには、申請しようとしているアプリケーションのバージョンに、プロダクト情報を紐づける必要があります。

紐付けは、バイナリーのアップロードを開始する前(通常のシーケンスなら「Prepare for Upload」状態)に行う必要があります。

バイナリーを受け付ける状態(Waiting For Upload)にしてしまうと紐付けできなくなるので、注意が必要です。



今回までの5回の連載で、In-App Purchaseに関して実装上必要となるトピックスをご紹介しました。

連載に含まれていない大きめのトピックとして、プロダクトを自前のサーバーから提供する場合の決済処理などがあります。

その他、具体的なコード例を含む詳細については連載1回目の参考文献に詳しいので、ぜひご覧下さい。


画面や処理の流れなどは、下記アプリケーションを実際にご覧いただくのが分かりやすいと思います(2014.07.16現在)。





5回に渡りおつきあいいただき、ありがとうございます。
次回からはiCloudに関する連載を予定しています。







2014年7月9日水曜日

iPhone・iPad両対応アプリ「Countil」がiPhone女子力で紹介されました

ご好評いただいている「Countil - あと何日で・・・」が、サイト「iPhone女子力」で紹介されました。

この記事を書いている時点では、サイトのトップに大きく掲載されています。





まだ「Countil」を入手されていない方、この機会にぜひお試し下さい。








2014年7月8日火曜日

壁紙5点とお得なセットを追加した「Countil」新バージョン公開中です

iPhone・iPad両対応アプリ「Countil - あと何日で・・・」をご愛顧いただき、大変ありがとうございます。

ご連絡が遅くなりましたが、壁紙5点とそのセット販売を追加したバージョン「1.2.0」が先週末に App Store で公開 され、多くのダウンロードをいただいています。






今回は日常のシーンをイメージした壁紙が追加になっています。

また初の試みとして、今回追加分の壁紙5点のセット販売を行います。
壁紙をバラでお買い求めいただくよりお得になっています。

壁紙セットは、一覧右下の「ショップ」ボタンからご購入いただけます。


さらに新バージョンの公開を記念して、期間限定で壁紙5点セットの30%オフセールを実施中です。
この機会をお見逃しないように、ぜひお早めにお求め下さい。


 「Countil - あと何日で・・・」 - iTunes

 「Countil - あと何日で・・・」サポートページ



なお「Countil」の最新情報は、Facebook、Twitter、Google+の公式アカウントで常時配信しています。


 Facebook 公式アカウント

 Twitter 公式アカウント

 Google+ 公式アカウント






2014年7月3日木曜日

【iOS技術連載】In-App Purchase 第4回 - プロダクトの復元処理

【In-App Purchase 第4回】

In-App Purchaseに関する連載4回目です。
今回は、購入済みのプロダクトの復元処理についてご紹介します。


プロダクトの復元が必要な場面として、以下のケースが考えられます。

  • アプリケーションを(削除して)再インストールした。
  • 端末を買い替えた・買い足した。

上記のような場合でも、プロダクト購入の事実はApp Store側に記録されているので、復元の要求を行うことで、現在の端末でも購入済みプロダクトを引き続き使用可能にすることができます。






第3回までの内容が実現されていれば、プロダクトの復元の実装は非常に簡単です。


  [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];


上記の1文で、復元用の支払いトランザクションが開始され、SKPaymentTransactionObserverプロトコルに状態変化や完了が通知されます。

第3回のコード例を再掲します:


 - (void)paymentQueue:(SKPaymentQueue *)queue
  updatedTransactions:(NSArray *)transactions {

      // 通知された支払いトランザクションそれぞれについて:
      for (SKPaymentTransaction *transaction in transactions) {
          switch (transaction.transactionState) {
              case SKPaymentTransactionStatePurchased: {
                  // プロダクト購入が完了した。
                  // プロダクトを使えるようにする(★)。

                  [queue finishTransaction:transaction];

                  break;
              }
              case SKPaymentTransactionStateRestored: {
                  // 購入済みプロダクトの復元が完了した。
                  // 多くの場合、購入完了時と共用可能(★)。

                  [queue finishTransaction:transaction];

                  break;
              }
              case SKPaymentTransactionStateFailed: {
                  // 支払い処理が失敗した。
                  // エラー表示などを行う。

                  [queue finishTransaction:transaction];

                  break;
              }
          }
      }
  }


プロダクトが復元されると、上記コード中のSKPaymentTransactionStateRestoredのcase文が実行されます。

また復元の完了は、下記のメソッドでハンドリングします:


 - (void)paymentQueueRestoreCompletedTransactionsFinished:
         (SKPaymentQueue *)queue {

     // 復元トランザクションが完了した。
     // 利用者に対するメッセージ表示、画面の再描画などを行う。
 }



アイウィーヴの製品では、アプリケーション内販売を行っている下記アプリケーションのすべてで、復元処理
(リストア)を用意しています:




今回は、購入済みのプロダクトの復元処理についてご紹介しました。
次回は最終回として、アプリケーション申請とプロダクトの登録のタイミングについてご紹介する予定です。





2014年6月27日金曜日

【iOS技術連載】In-App Purchase 第3回 - 購入処理と購入の持続

In-App Purchaseに関する連載3回目です。
今回は、利用者が購入操作を行った際の、支払いに関する処理ついてご紹介します。


まず、App Storeから取得したプロダクト情報(SKProduct)を利用して、支払い情報を生成し、支払いトランザクションに追加します。
プロダクトの取得については、連載2回目を参照してください。


  SKPayment *payment = [SKPayment paymentWithProduct:product];
  [[SKPaymentQueue defaultQueue] addPayment:payment];


支払いトランザクションからの通知を受け取るためには、あらかじめ(application: didFinishLaunchingWithOptions: などで)キューの監視を開始しておく必要があります:


  [[SKPaymentQueue defaultQueue] addTransactionObserver:singleton];


トランザクションに変化があると、SKPaymentTransactionObserverプロトコルに通知されます。
例えば、以下のようにトランザクションの状態に応じた処理を行います:


  - (void)paymentQueue:(SKPaymentQueue *)queue
   updatedTransactions:(NSArray *)transactions {

      // 通知された支払いトランザクションそれぞれについて:
      for (SKPaymentTransaction *transaction in transactions) {
          switch (transaction.transactionState) {
              case SKPaymentTransactionStatePurchased: {
                  // プロダクト購入が完了した。
                  // プロダクトを使えるようにする(★)。

                  [queue finishTransaction:transaction];
                  break;
              }
              case SKPaymentTransactionStateRestored: {
                  // 購入済みプロダクトの復元が完了した。
                  // 多くの場合、購入完了時と共用可能(★)。

                  [queue finishTransaction:transaction];
                  break;
              }
              case SKPaymentTransactionStateFailed: {
                  // 支払い処理が失敗した。
                  // エラー表示などを行う。

                  [queue finishTransaction:transaction];
                  break;
              }
          }
      }
  }


支払いトランザクションのエラーは、下記メソッドでハンドリングします:


  - (void)paymentQueue:(SKPaymentQueue *)queue
    restoreCompletedTransactionsFailedWithError:(NSError *)error {
      // 支払いトランザクションがエラーを引き起こした。
      // 利用者に対するメッセージ表示、画面の再描画などを行う。
  }


後の連載で別途ご紹介しますが、購入済みプロダクトの復元処理の完了のハンドリングには、以下のメソッドを使用します:

  - (void)paymentQueueRestoreCompletedTransactionsFinished:
          (SKPaymentQueue *)queue;


■購入の持続

支払いトランザクションが無事完了したら、購入されたプロダクトを利用者が使用できるようにする必要があります(上記コード例の「★」の部分)。

「非消耗型」プロダクトの場合、プロダクトIDなどをNSUserDefaultsやNSUbiquitousKeyValueStoreに保持するのが簡単です。

Speedy - ケータイ風短縮ダイヤル」では、NSUserDefaultsに記録しています。
Countil - あと何日で・・・」ではNSUserDefaultsに加えて(利用者がiCloudを使用していれば)NSUbiquitousKeyValueStoreにも記録します。

iCloudを利用することで、ある端末でプロダクトを購入すれば、同一利用者の他の端末でも自動的に購入済みとすることができます。



今回は、利用者が購入操作を行った場合の支払い処理についてご紹介しました。
次回は、購入済みプロダクトの復元についてご紹介する予定です。





2014年6月17日火曜日

【iOS技術連載】In-App Purchase 第2回 - プロダクト情報の取得

In-App Purchaseに関する連載2回目です。
In-App Purchaseの概要については、連載1回目を参照してください。


iTunes Connectでプロダクトを定義したら、いよいよ実装です。

アプリケーション内のストアにプロダクトを表示するには、プロダクト定義時に指定した識別子(以後プロダクトID)をApp Storeに送信し、プロダクト情報を取得する必要があります。

プロダクトの名前や価格はアプリケーションの外で変更可能なため、今現在の値を取得する必要があるのと、後の支払い処理に取得したプロダクト情報が必要なためです。

プロダクト情報の取得は、プロダクトIDの一覧を引数に指定して SKProductsRequest のインスタンスを生成し、リクエストを送信することで開始されます。


   SKProductsRequest *request = [[KSProductsRequest alloc]
           initWithProductIdentifiers:productIds];
   request.delegate = self;
   [request start];


送信するプロダクトIDの一覧は、アプリケーションに何らかの形で埋め込みます。

リクエスト時にIDを送信しなかったプロダクトは、iTunes Connectに登録があっても情報取得されません。

Speedy - ケータイ風短縮ダイヤル」では扱うプロダクトがひとつなので、プロダクトIDを管理クラスにハードコードしています。

Countil - あと何日で・・・」は多くのプロダクトを扱うため、付加情報とともにJSONファイルにまとめています。


■プロダクト情報の取得

リクエスト結果は、SKProductRequestDelegateの productRequest:didReceiveResponse: メソッドで受け取ります。

ここではプロダクト名や価格などを表示用に準備するとともに、無効なプロダクトを表示対象からはずす必要があります。

無効なプロダクトとは、送信したプロダクトIDのうちiTunes Connect側の設定などで現在販売対象となっていないプロダクトです。

これらは販売できないので、ストアUIへの表示を省略することが推奨されています。


  /*
   結果を受け取るデリゲートメソッド。
   */
  - (void)productRequest:(SKProductsRequest *)request
      didReceiveResponse:(SKProductsResponse *)response {
  
    // 無効なプロダクトIDを保持。
    _invalidProducIds = response.invalidProductIdentifiers;
  
    // ...
  }
  
  /*
   プロダクト一覧を返す。
   */
  - (NSArray *)products {
    // 返り値用の配列を初期化。
    NSMutableArray *products = [NSMutableArray array];
  
    // プロダクトの内部表現(Product*)の配列を走査。
    for (Product *product in _products) {
      // 無効なプロダクトIDとして記録されている場合はスキップ。
      if ([_invalidProductIds containsObject:product.productId]) 
        continue;
  
      // そうでなければ返り値に追加。
      [products addObject:product];
    }
  
    return products;
  }
   

プロダクト情報が取得できたら、ストアUIを表示します。

ストアUIにはプロダクトの名前や説明、価格、および購入の意思を示すためのボタンなどが含まれ、アプリケーションの他の画面と統合された表示が推奨されています。

Countilでは、プロダクトの販売を行う「ストア画面」を用意するとともに、壁紙選択画面でのシームレスな購入経路を用意しています。




神経衰弱 - Melancholy」の現在開発中の新バージョンでは、明示的なストア画面を廃止し、より統合されたストアUIを提供する予定です。


■プロダクト情報取得の頻度について

プロダクト情報取得リクエストの送信は、基本的にはストアUIの表示の度に毎回行うべきだと筆者は考えています。利用者の端末でアプリケーションが実行されている最中に、iTunes Connectで価格等の変更が行われ得るためです。

Countilの「ストア画面」では正確な価格等を表示するため、プロダクト情報の取得が完了するまで利用者の操作をブロックしています。一方、壁紙選択画面では、利用者の操作を妨げないよう先に画面を表示し、プロダクト情報が取得できた時点で画面を更新する工夫をしています。


今回は、プロダクト情報の取得とストアUIの表示について紹介しました。
次回は、利用者の操作をトリガーとする、支払い処理について紹介する予定です。