タグ

ブックマーク / glassonion.hatenablog.com (7)

  • 失敗しない iOS In-App Purchase プログラミング - A Day In The Life

    最近、無料アプリや無料ゲームにアプリ内課金を設置してユーザにアイテムを購入してもらうタイプのものが増えています。App Store トップセールスのうち半数以上がこの無料 + アプリ内課金で占められています。今後アプリ内課金は iPhone/iPad アプリで儲けるための必須の機能になると言っても過言ではありません。 今回はアプリ内課金(In-App Purchase)のプログラミングについて StoreKit フレームワークの基的な使い方から失敗しないためのポイントまで説明していきます。 販売できるアイテムの種類は5種類 アプリ内課金で販売できるアイテムの種類は5種類あります。 Consumable 消費アイテム。ユーザがアイテムを使うと無くなる。例えばシューティングゲームの弾丸やコイン落としゲームのコインなど。同じアイテムを何回でも購入可能 Non-Consumable 非消費アイテ

    失敗しない iOS In-App Purchase プログラミング - A Day In The Life
    mollifier
    mollifier 2012/09/18
    InAppPurchase, アプリ内課金
  • iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する - A Day In The Life

    iOS は タッチパネル式端末用に最適化された OS で ユーザが端末を操作しやすいように GUI の仕組みが提供されています。iOS アプリ開発では主に GUI を操作するプログラムを実装していきます。iOS の GUI プログラムはイベント駆動型と言われるプログラミング方式に則ってプログラムを実装していきます。 iOS に限らず Mac OS 用のアプリ開発でも同じようにイベント駆動型のプログラムを実装しますが、 iOS はタッチパネル式モバイル端末用の OS という性質上 Mac OS のイベント駆動プログラムと少し違うところがあります。 この記事では iOS のイベント駆動の仕組みを「ライフサイクルイベント」と「ユーザアクションイベント」にわけて説明します。iOS のイベント駆動がどういったものなのか理解してその仕組みの上で自由にプログラムできるようになることが目的です。 イベント

    iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する - A Day In The Life
    mollifier
    mollifier 2012/07/08
    event, イベント, viewWillAppear, viewDidLoad
  • シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life

    iOS で HTTP 通信をするときはいつも ASIHTTPRequest を使っていました。 しかし残念なことに最近 ASIHTTPRequest の開発が終了してしまい Automatic Reference Counting(ARC) に対応する予定もないようなので自分で ARC に対応した HTTP 通信のライブラリを作成しました。 コードは github で公開しています。ライセンスはBSDライセンスです。 R9HTTPRequest 中身はただの NSURLConnection のラッパーです。コード量も少なく軽いライブラリです。 主な機能は以下の通りです。 HTTP GET POST PUT DELETE など HTTP の非同期通信 ※現在非同期通信のみサポートしています。 マルチパート POST(画像送信など) 自動リダイレクトのオン/オフ WSSE 認証のサポート R9

    シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life
    mollifier
    mollifier 2012/03/04
    ASIHTTPRequest の開発が終了してしまい
  • UIWebViewにJSのライブラリを動的に読み込ませる方法 - A Day In The Life

    UIWebView で表示している HTML ページに Javascript ライブラリを動的に読み込ませる方法です。 使う場面はそうないと思いますが、興味位で試してみたらできたので記事にしました。Google Libraries API という Javascript のライブラリを使うと簡単に出来ます。 下記は Google Maps のライブラリを動的に読み込んで位置情報を取得するサンプルコードです。 @interface SmapleViewController { UIWebView *webView; } @property (retain, nonatomic)IBOutlet UIWebView *webView; @end @implements SmapleViewController @synthesize webView; - (void)webViewDidFin

    UIWebViewにJSのライブラリを動的に読み込ませる方法 - A Day In The Life
  • iOS でデータを永続化する方法 - A Day In The Life

    iOS データ設計入門の続きです。前回は iOS であつかうデータ全般について書きましたが今回はデータをフラッシュドライブに保存する方法について説明します。 データの永続化って何? メモリにあるデータはアプリを終了すると消えてしまいます。 アプリを終了しても残しておきたいデータはフラッシュドライブに保存する必要があります。メモリにあるフラッシュドライブに保存することをデータの永続化といいます。永続化されたデータはフラッシュドライブが壊れない限り永続的に保存され残ります。以降 iOS でフラッシュドライブがどのように管理されているのかと、データを永続化するのにどのような方法があるのかについて説明していきます。 フラッシュドライブを構成する3つの領域 データを永続化する方法を説明する前に iOS でフラッシュドライブがどのように管理されているか見ていきましょう。 iOS ではフラッシュドライブ

    iOS でデータを永続化する方法 - A Day In The Life
  • iOSアプリ開発のメモリ管理で気をつけること - A Day In The Life

    Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS

    mollifier
    mollifier 2011/05/06
    メモリ, メモリ管理, メモリリーク
  • メソッド設計で守るべき10個のルール - A Day In The Life

    以前メソッド設計の原則に関する記事を書きましたが 質問をすることで答えは変更されない原則 メソッドの引数はオペランドのみにする原則 それ以前にメソッド設計する上で最低限守った方がよいルールをまとめてみました。 プロパティをメソッドの戻り値代わりに使ってはいけない ファンクションメソッドでプロパティの値を変更してはいけない プロパティをリターンしない インスタンス変数やプロパティをメソッドの引数に渡さない 参照渡の引数をリターンしてはいけない 例外処理を GoTo 文の代わりに使ってはいけない 理由なく id 型をメソッドの戻り値にしない 特定メソッドの呼びだしが前提になったメソッドを作ってはいけない パブリックメソッドからパブリックメソッドを呼ばない プライベートメソッドからパブリックメソッドを呼ばない 以下その詳細です。 プロパティをメソッドの戻り値代わりに使ってはいけない メソッドが呼

    メソッド設計で守るべき10個のルール - A Day In The Life
    mollifier
    mollifier 2010/09/05
  • 1